使用 mssql-conf 工具在 Linux 上設定 SQL Server
適用於:SQL Server - Linux
mssql-conf 是一個設定指令碼,會使用適用於 Red Hat Enterprise Linux、SUSE Linux Enterprise Server 和 Ubuntu 的 SQL Server 2017 (14.x) 進行安裝。 其會修改儲存設定值的 mssql.conf 檔案。 您可以使用 mssql-conf 公用程式來設定下列參數:
參數 | 描述 |
---|---|
代理程式 | 啟用 SQL Server Agent。 |
使用 Windows 進行驗證 | Windows Server Active Directory 驗證的設定。 |
定序 | 為 Linux 上的 SQL Server 設定新的定序。 |
客戶意見反應 | 選擇 SQL Server 是否要將意見反應傳送給 Microsoft。 |
Database Mail 設定檔 | 為 Linux 上的 SQL Server 設定預設 Database Mail 設定檔。 |
預設資料目錄 | 變更新 SQL Server 資料庫資料檔案 (.mdf) 的預設目錄。 |
預設記錄目錄 | 變更新 SQL Server 資料庫記錄 (.ldf) 檔案的預設目錄。 |
預設 master 資料庫目錄 | 變更 master 資料庫和記錄檔的預設目錄。 |
預設 master 資料庫檔案名稱 | 變更 master 資料庫檔案的名稱。 |
預設傾印目錄 | 變更新記憶體傾印和其他疑難排解檔案的預設目錄。 |
預設錯誤記錄檔目錄 | 變更新 SQL Server 錯誤記錄檔、預設分析工具追蹤、系統健康情況工作階段 XE,以及 Hekaton 工作階段 XE 檔案的預設目錄。 |
預設備份目錄 | 變更新備份檔案的預設目錄。 |
傾印類型 | 選擇要收集的傾印記憶體傾印檔案類型。 |
版本(Edition) | 設定 SQL Server 的版本。 |
高可用性 | 啟用可用性群組。 |
本機稽核目錄 | 設定目錄來新增本機稽核檔案。 |
地區設定 | 設定要針對 SQL Server 使用的地區設定。 |
記憶體限制 | 設定 SQL Server 的記憶體限制。 |
網路設定 | 適用於 SQL Server 的其他網路設定。 |
Microsoft 分散式交易協調器 | 設定和疑難排解 Linux 上的 MSDTC。 |
TCP 連接埠 | 變更 SQL Server 接聽連線所在的連接埠。 |
TLS | 設定傳輸層級安全性。 |
追蹤旗標 \(機器翻譯\) | 設定服務即將使用的追蹤旗標。 |
mssql-conf 是一個設定指令碼,會使用適用於 Red Hat Enterprise Linux、SUSE Linux Enterprise Server 和 Ubuntu 的 SQL Server 2019 (15.x) 進行安裝。 您可以使用此公用程式來設定下列參數:
參數 | 描述 |
---|---|
代理程式 | 啟用 SQL Server Agent |
使用 Windows 進行驗證 | Windows Server Active Directory 驗證的設定。 |
定序 | 為 Linux 上的 SQL Server 設定新的定序。 |
客戶意見反應 | 選擇 SQL Server 是否要將意見反應傳送給 Microsoft。 |
Database Mail 設定檔 | 為 Linux 上的 SQL Server 設定預設 Database Mail 設定檔。 |
預設資料目錄 | 變更新 SQL Server 資料庫資料檔案 (.mdf) 的預設目錄。 |
預設記錄目錄 | 變更新 SQL Server 資料庫記錄 (.ldf) 檔案的預設目錄。 |
預設 master 資料庫檔案目錄 | 在現有 SQL 安裝上變更 master 資料庫檔案的預設目錄。 |
預設 master 資料庫檔案名稱 | 變更 master 資料庫檔案的名稱。 |
預設傾印目錄 | 變更新記憶體傾印和其他疑難排解檔案的預設目錄。 |
預設錯誤記錄檔目錄 | 變更新 SQL Server 錯誤記錄檔、預設分析工具追蹤、系統健康情況工作階段 XE,以及 Hekaton 工作階段 XE 檔案的預設目錄。 |
預設備份目錄 | 變更新備份檔案的預設目錄。 |
傾印類型 | 選擇要收集的傾印記憶體傾印檔案類型。 |
版本(Edition) | 設定 SQL Server 的版本。 |
高可用性 | 啟用可用性群組。 |
本機稽核目錄 | 設定目錄來新增本機稽核檔案。 |
地區設定 | 設定要針對 SQL Server 使用的地區設定。 |
記憶體限制 | 設定 SQL Server 的記憶體限制。 |
Microsoft 分散式交易協調器 | 設定和疑難排解 Linux 上的 MSDTC。 |
Machine Learning Services EULA | 接受適用於 mlservices 套件的 R 和 Python EULA。 僅適用於 SQL Server 2019 (15.x)。 |
網路設定 | 適用於 SQL Server 的其他網路設定。 |
outboundnetworkaccess | 針對 Machine Learning Services R、Python 及 Java 延伸模組啟用輸出網路存取。 |
TCP 連接埠 | 變更 SQL Server 接聽連線所在的連接埠。 |
TLS | 設定傳輸層級安全性。 |
追蹤旗標 \(機器翻譯\) | 設定服務即將使用的追蹤旗標。 |
mssql-conf 是一個設定指令碼,會使用適用於 Red Hat Enterprise Linux 和 Ubuntu 的 SQL Server 2022 (16.x) 進行安裝。 您可以使用此公用程式來設定下列參數:
參數 | 描述 |
---|---|
代理程式 | 啟用 SQL Server Agent |
使用 Microsoft Entra 識別碼驗證 | 使用 Microsoft Entra ID 進行驗證 (先前稱為 Azure Active Directory) 的設定。 |
使用 Windows 進行驗證 | Windows Server Active Directory 驗證的設定。 |
定序 | 為 Linux 上的 SQL Server 設定新的定序。 |
客戶意見反應 | 選擇 SQL Server 是否要將意見反應傳送給 Microsoft。 |
Database Mail 設定檔 | 為 Linux 上的 SQL Server 設定預設 Database Mail 設定檔。 |
預設資料目錄 | 變更新 SQL Server 資料庫資料檔案 (.mdf) 的預設目錄。 |
預設記錄目錄 | 變更新 SQL Server 資料庫記錄 (.ldf) 檔案的預設目錄。 |
預設 master 資料庫檔案目錄 | 在現有 SQL 安裝上變更 master 資料庫檔案的預設目錄。 |
預設 master 資料庫檔案名稱 | 變更 master 資料庫檔案的名稱。 |
預設傾印目錄 | 變更新記憶體傾印和其他疑難排解檔案的預設目錄。 |
預設錯誤記錄檔目錄 | 變更新 SQL Server 錯誤記錄檔、預設分析工具追蹤、系統健康情況工作階段 XE,以及 Hekaton 工作階段 XE 檔案的預設目錄。 |
預設備份目錄 | 變更新備份檔案的預設目錄。 |
傾印類型 | 選擇要收集的傾印記憶體傾印檔案類型。 |
版本(Edition) | 設定 SQL Server 的版本。 |
高可用性 | 啟用可用性群組。 |
本機稽核目錄 | 設定目錄來新增本機稽核檔案。 |
地區設定 | 設定要針對 SQL Server 使用的地區設定。 |
記憶體限制 | 設定 SQL Server 的記憶體限制。 |
Microsoft 分散式交易協調器 | 設定和疑難排解 Linux 上的 MSDTC。 |
Machine Learning Services EULA | 接受適用於 mlservices 套件的 R 和 Python EULA。 僅適用於 SQL Server 2019 (15.x)。 |
網路設定 | 適用於 SQL Server 的其他網路設定。 |
輸出網路存取 | 針對 Machine Learning Services R、Python 及 Java 延伸模組啟用輸出網路存取。 |
SQL Server 連接器 | 設定 SQL Server 連接器的記錄層級。 |
TCP 連接埠 | 變更 SQL Server 接聽連線所在的連接埠。 |
TLS | 設定傳輸層級安全性。 |
追蹤旗標 \(機器翻譯\) | 設定服務即將使用的追蹤旗標。 |
提示
這其中一些設定也可以使用環境變數來設定。 如需詳細資訊,請參閱在 Linux 上使用環境變數設定 SQL Server 設定。
使用提示
對於 Always On 可用性群組和共用磁碟叢集,一律會在每個節點上進行相同的設定變更。
針對共用磁碟叢集案例,請勿嘗試重新開啟
mssql-server
服務來套用變更。 SQL Server 正以應用程式形式執行中。 相反地,讓資源離線,然後重新上線。這些範例會藉由指定此完整路徑來執行 mssql-conf:
/opt/mssql/bin/mssql-conf
。 如果您選擇改為瀏覽至該路徑,請在目前目錄的內容中執行 mssql-conf:./mssql-conf
。如果您想要修改容器內的
mssql.conf
檔案,請在其中容器以所需設定執行的主機上建立mssql.conf
檔案,然後重新部署您的容器。 例如,mssql.conf
檔案的下列新增內容會啟用 SQL Server Agent。[sqlagent] enabled = true
您可以使用下列命令來部署容器:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \ -p 5433:1433 --name sql1 \ -v /container/sql1:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2019-latest
警告
您的密碼應遵循 SQL Server 預設 密碼原則。 依預設,密碼長度必須至少有 8 個字元,並包含下列四種字元組合中其中三種組合的字元:大寫字母、小寫字母、以 10 為底數的數字以及符號。 密碼長度最多可達 128 個字元。 盡可能使用長且複雜的密碼。
如需詳細資訊,請參閱建立 SQL Server 容器所要使用的組態檔。
啟用 SQL Server Agent
sqlagent.enabled
設定會啟用 SQL Server Agent。 預設會停用 SQL Server Agent。 如果 sqlagent.enabled
配置檔中 mssql.conf
不存在,則 SQL Server 會在內部假設 SQL Server Agent 已停用。
若要變更此設定,請執行下列步驟:
啟用 SQL Server Agent:
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
為 Linux 上的 SQL Server 設定預設 Database Mail 設定檔
sqlagent.databasemailprofile
可讓您針對電子郵件警示設定預設的 DB Mail 設定檔。
sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>
SQL Agent 錯誤記錄檔
sqlagent.errorlogfile
和 sqlagent.errorlogginglevel
設定可讓您分別設定 SQL Agent 記錄檔路徑和記錄層級。
sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogfile <path>
SQL Agent 記錄層級是相當於各項的位元遮罩值:
1
= 錯誤2
= 警告4
= 資訊
如果您想要擷取所有層級,請使用 7
作為值。
sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogginglevel <level>
設定 Microsoft Entra 帳戶驗證
從 SQL Server 2022 (16.x) 開始,您可以設定 SQL Server 的 Microsoft Entra ID。 若要設定 Microsoft Entra ID,您必須在安裝 SQL Server 之後,安裝適用於 SQL Server 的 Azure 延伸模組。 如需設定 Microsoft Entra ID 方法的詳細資訊,請參閱教學課程:設定適用於 SQL Server 的 Microsoft Entra 驗證。
變更預設的 Microsoft Entra ID 憑證路徑
根據預設,Microsoft Entra 憑證檔案會儲存在 /var/opt/mssql/aadsecrets/
中。 如果您使用憑證存放區或加密磁碟機,則可以變更此路徑。 若要變更路徑,您可以使用下列命令:
sudo /opt/mssql/bin/mssql-conf set network.aadcertificatefilepath /path/to/new/location.pfx
在上述範例中,/path/to/new/location.pfx
是您包含憑證名稱的慣用路徑。
Microsoft Entra 驗證的憑證 (由適用於 SQL Server 的 Azure 延伸項目下載) 會儲存在此位置。 您無法將其變更為 /var/opt/mssql/secrets
。
注意
安裝 SQL Server 之後,您隨時都可以變更預設的 Microsoft Entra ID 憑證路徑,但必須在啟用 Microsoft Entra ID「之前」變更。
Microsoft Entra ID 組態選項
Microsoft Entra 驗證會針對在 Linux 上執行的 SQL Server 執行個體使用下列選項。
警告
Microsoft Entra ID 參數是由適用於 SQL Server 的 Azure 延伸模組所設定,不應手動重新設定。 此處所列資訊僅供參考之用。
選項 | 描述 |
---|---|
network.aadauthenticationendpoint |
Microsoft Entra 驗證的端點 |
network.aadcertificatefilepath |
用來向 Microsoft Entra ID 進行驗證的憑證檔案路徑 |
network.aadclientcertblacklist |
Microsoft Entra ID 用戶端憑證封鎖清單 |
network.aadclientid |
Microsoft Entra 用戶端 GUID |
network.aadfederationmetadataendpoint |
Microsoft Entra 同盟中繼資料的端點 |
network.aadgraphapiendpoint |
Azure AD 圖形 API 的端點 |
network.aadgraphendpoint |
Azure AD Graph 端點 |
network.aadissuerurl |
Microsoft Entra 簽發者 URL |
network.aadmsgraphendpoint |
Microsoft Entra MS 圖表化端點 |
network.aadonbehalfofauthority |
Microsoft Entra ID 代表授權單位 |
network.aadprimarytenant |
Microsoft Entra 主要租用戶 GUID |
network.aadsendx5c |
Microsoft Entra ID 傳送 X5C |
network.aadserveradminname |
將設為系統管理員的 Microsoft Entra 帳戶名稱 |
network.aadserveradminsid |
將設為系統管理員的 Microsoft Entra 帳戶 SID |
network.aadserveradmintype |
將設為系統管理員的 Microsoft Entra 帳戶類型 |
network.aadserviceprincipalname |
Microsoft Entra 服務主體名稱 |
network.aadserviceprincipalnamenoslash |
不使用正斜線的 Microsoft Entra 服務主體名稱 |
network.aadstsurl |
Microsoft Entra STS URL |
設定 Azure Active Directory 驗證
setup-ad-keytab
選項可用來建立金鑰表,但必須建立使用者和服務主體名稱 (SPN) 才能使用此選項。 Active Directory 公用程式 adutil 可用來建立使用者、SPN 和金鑰表。
如需使用 setup-ad-keytab
的選項,請執行下列命令:
sudo /opt/mssql/bin/mssql-conf setup-ad-keytab --help
validate-ad-config
選項會驗證 Active Directory 驗證的組態。
變更 SQL Server 定序
set-collation
選項會將定序值變更為任何支援的定序。 若要進行這項變更,必須停止 SQL Server 服務。
先在您的伺服器上備份所有使用者資料庫。
接著,使用 sp_detach_db 預存程序來中斷連結使用者資料庫。
執行
set-collation
選項並遵循提示:sudo /opt/mssql/bin/mssql-conf set-collation
mssql-conf 公用程式將嘗試變更為指定的定序值,並重新啟動服務。 如果發生任何錯誤,則會將定序復原為先前的值。
還原您的使用者資料庫備份。
如需支援的定序清單,請執行 fn_helpcollations 函數:SELECT Name from sys.fn_helpcollations()
。
設定客戶意見反應
telemetry.customerfeedback
設定會變更 SQL Server 是否要將意見反應傳送給 Microsoft。 預設會針對所有版本將此值設為 true
。 若要變更此值,請執行下列命令:
重要
您不能針對免費的 SQL Server 版本 (Express 和 Developer) 關閉客戶意見反應。
使用
telemetry.customerfeedback
的set
命令,以根身分執行 mssql-conf 指令碼。 下列範例藉由指定false
來關閉客戶意見反應。sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
如需詳細資訊,請參閱設定 Linux 上的 SQL Server 的使用方式和診斷數據收集和 SQL Server 隱私權補充。
變更預設資料或記錄目錄位置
filelocation.defaultdatadir
和 filelocation.defaultlogdir
設定會變更建立新資料庫和記錄檔的位置。 根據預設,此位置為 /var/opt/mssql/data
。 若要變更這些設定,請使用下列步驟:
為新的資料庫資料和記錄檔建立目標目錄。 下列範例會建立新的
/tmp/data
目錄:sudo mkdir /tmp/data
將目錄的擁有者和群組變更為
mssql
使用者:sudo chown mssql /tmp/data sudo chgrp mssql /tmp/data
使用 mssql-conf 搭配
set
命令來變更預設資料目錄:sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data
重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
現在,新建資料庫的所有資料庫檔案都將儲存於這個新位置。 如果您想要變更新資料庫的記錄 (.ldf) 檔案位置,您可以使用下列
set
命令:sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log
此命令也會假設 /tmp/log 目錄存在,而且它位於使用者和群組
mssql
之下。
變更預設 master
資料庫檔案目錄位置
filelocation.masterdatafile
和 filelocation.masterlogfile
設定會變更 SQL Server 資料庫引擎尋找 master
資料庫檔案的位置。 根據預設,此位置為 /var/opt/mssql/data
。
若要變更這些設定,請使用下列步驟:
為新的錯誤記錄檔建立目標目錄。 下列範例會建立新的
/tmp/masterdatabasedir
目錄:sudo mkdir /tmp/masterdatabasedir
將目錄的擁有者和群組變更為
mssql
使用者:sudo chown mssql /tmp/masterdatabasedir sudo chgrp mssql /tmp/masterdatabasedir
使用 mssql-conf 搭配
set
命令,來變更主要資料和記錄檔的預設master
資料庫目錄:sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /tmp/masterdatabasedir/master.mdf sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /tmp/masterdatabasedir/mastlog.ldf
注意
除了移動主要資料和記錄檔,這也會移動所有其他系統資料庫的預設位置。
停止 SQL Server 服務:
sudo systemctl stop mssql-server
移動
master.mdf
和mastlog.ldf
檔案:sudo mv /var/opt/mssql/data/master.mdf /tmp/masterdatabasedir/master.mdf sudo mv /var/opt/mssql/data/mastlog.ldf /tmp/masterdatabasedir/mastlog.ldf
啟動 SQL Server 服務:
sudo systemctl start mssql-server
注意
如果 SQL Server 在指定目錄中找不到
master.mdf
和mastlog.ldf
檔案,則會在指定目錄中自動建立系統資料庫的範本化複本,而 SQL Server 會成功啟動。 不過,新資料庫中不會更新master
使用者資料庫、伺服器登入、伺服器憑證、加密密鑰、SQL 代理程式作業或舊sa
密碼等元數據。 您將必須停止 SQL Server,並將舊的master.mdf
和mastlog.ldf
移到新的指定位置,然後啟動 SQL Server 以繼續使用現有的中繼資料。
變更 master
資料庫檔案的名稱
filelocation.masterdatafile
和 filelocation.masterlogfile
設定會變更 SQL Server 資料庫引擎尋找 master
資料庫檔案的位置。 您也可以使用此動作來變更 master
資料庫和記錄檔的名稱。
若要變更這些設定,請使用下列步驟:
停止 SQL Server 服務:
sudo systemctl stop mssql-server
使用 mssql-conf 搭配
set
命令,來變更master
資料和記錄檔的預期master
資料庫名稱:sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf sudo /opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data/mastlognew.ldf
重要
當 SQL Server 成功啟動之後,您就只能變更
master
資料庫和記錄檔的名稱。 初始執行之前,SQL Server 預期會將檔案命名為master.mdf
和mastlog.ldf
。變更
master
資料庫資料和記錄檔的名稱:sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf
啟動 SQL Server 服務:
sudo systemctl start mssql-server
變更預設傾印目錄位置
filelocation.defaultdumpdir
設定會變更在發生損毀時產生記憶體和 SQL 傾印的預設位置。 根據預設,這些檔案會在 /var/opt/mssql/log
中產生。
若要設定這個新位置,請使用下列命令:
為新的傾印檔案建立目標目錄。 下列範例會建立新的
/tmp/dump
目錄:sudo mkdir /tmp/dump
將目錄的擁有者和群組變更為
mssql
使用者:sudo chown mssql /tmp/dump sudo chgrp mssql /tmp/dump
使用 mssql-conf 搭配
set
命令來變更預設資料目錄:sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump
重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
變更預設錯誤記錄檔目錄位置
filelocation.errorlogfile
設定會變更建立新錯誤記錄檔、預設分析工具追蹤、系統健康情況工作階段 XE,以及 Hekaton 工作階段 XE 檔案的位置。 根據預設,此位置為 /var/opt/mssql/log
。 設定 SQL Server 錯誤記錄檔的目錄會成為其他記錄的預設記錄目錄。
變更這些設定:
為新的錯誤記錄檔建立目標目錄。 下列範例會建立新的
/tmp/logs
目錄:sudo mkdir /tmp/logs
將目錄的擁有者和群組變更為
mssql
使用者:sudo chown mssql /tmp/logs sudo chgrp mssql /tmp/logs
使用 mssql-conf 搭配
set
命令來變更預設錯誤記錄檔的檔案名稱:sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog
重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
errorlog.numerrorlogs
設定將可讓您指定在循環使用記錄之前所維護的錯誤記錄檔數目。
變更預設備份目錄位置
filelocation.defaultbackupdir
設定會變更產生備份檔案的預設位置。 根據預設,這些檔案會在 /var/opt/mssql/data
中產生。
若要設定這個新位置,請使用下列命令:
為新的備份檔案建立目標目錄。 下列範例會建立新的
/tmp/backup
目錄:sudo mkdir /tmp/backup
將目錄的擁有者和群組變更為
mssql
使用者:sudo chown mssql /tmp/backup sudo chgrp mssql /tmp/backup
使用 mssql-conf 搭配
set
命令來變更預設備份目錄:sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup
重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
指定核心傾印設定
如果其中一個 SQL Server 程序中發生例外狀況或損毀,SQL Server 就會建立記憶體傾印。 擷取記憶體傾印可能需要很長的時間,並佔用大量空間。 若要儲存資源並避免重複的記憶體傾印,您可以使用 coredump.disablecoredump
選項停用自動傾印擷取。
sudo /opt/mssql/bin/mssql-conf set coredump.disablecoredump <true or false>
停用自動核心傾印時 (將 coredump.disablecoredump
設定為 true
),使用者仍然可以手動產生記憶體傾印。
有兩個選項可控制 SQL Server 所收集的記憶體傾印類型:coredump.coredumptype
和 coredump.captureminiandfull
。 這些都與核心傾印擷取的兩個階段有關。
第一個階段的擷取是由 coredump.coredumptype
設定所控制,它會決定例外狀況期間所產生的傾印檔案類型。 第二個階段會在 coredump.captureminiandfull
設定時啟用。 如果將 coredump.captureminiandfull
設定為 true,則會產生 coredump.coredumptype
所指定的傾印檔案,同時也會產生第二個迷你傾印。 將 coredump.captureminiandfull
設定為 false,會停用第二次擷取嘗試。
決定是否要使用
coredump.captureminiandfull
設定來擷取迷你和完整傾印。sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
預設:
false
使用
coredump.coredumptype
設定來指定傾印檔案的類型。sudo /opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>
預設:
miniplus
下表列出可能的
coredump.coredumptype
值。類型 Description mini
Mini 是最小的傾印檔案類型。 它會使用 Linux 系統資訊來判斷程序中的執行緒和模組。 傾印僅包含主機環境執行緒堆疊和模組。 其中不包含間接記憶體參考或 Globals。 miniplus
MiniPlus 類似於 mini,但它包含額外的記憶體。 它瞭解 SQLPAL 和主機環境的內部,並將下列記憶體區域新增至傾印:
- 各種 Globals
- 所有高於 64 TB 的記憶體
- 在/proc/$pid/maps
中找到的所有具名區域
- 來自執行緒和堆疊的間接記憶體
- 執行緒資訊,包括相關聯的執行緒環境區塊 (TEB) 及處理序環境區塊 (PEB)
- 模組資訊
- VMM 和 VAD 樹狀filtered
Filtered 會使用以減法為基礎的設計,除非特別排除,否則會包含程序中的所有記憶體。 此設計瞭解 SQLPAL 和主機環境的內部,但不包括來自傾印的特定區域。 full
Full 是完整處理的傾印,其中包含位於 /proc/$pid/maps
的所有區域。 這不是由coredump.captureminiandfull
設定所控制。
版本
您可以使用 set-edition
選項來變更 SQL Server 版本。 若要變更 SQL Server 版本,必須先停止 SQL Server 服務。 若要深入了解 Linux 上的 SQL Server 可用版本,請參閱 SQL Server 版本。
高可用性
hadr.hadrenabled
選項會在您的 SQL Server 執行個體上啟用可用性群組。 下列命令藉由將 hadr.hadrenabled
設定為 1 來啟用可用性群組。 您必須重新啟動 SQL Server,才能使設定生效。
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server
如需如何搭配可用性群組使用此操作的詳細資訊,請參閱下列兩篇文章。
設定本機稽核目錄
telemetry.userrequestedlocalauditdirectory
設定會啟用本機稽核,並讓您能夠設定建立本機稽核記錄的目錄。
為新的本機稽核記錄建立目標目錄。 下列範例會建立新的
/tmp/audit
目錄:sudo mkdir /tmp/audit
將目錄的擁有者和群組變更為
mssql
使用者:sudo chown mssql /tmp/audit sudo chgrp mssql /tmp/audit
使用
telemetry.userrequestedlocalauditdirectory
的set
命令,以根身分執行 mssql-conf 指令碼:sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
如需詳細資訊,請參閱設定 Linux 上的 SQL Server的使用方式和診斷數據收集。
變更 SQL Server 地區設定
language.lcid
設定會將 SQL Server 地區設定變更為任何支援的語言識別碼 (LCID)。
下列範例會將地區設定變更為 [法文 (1036)]:
sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
重新啟動 SQL Server 服務以套用變更:
sudo systemctl restart mssql-server
設定記憶體限制
memory.memorylimitmb
設定會控制 SQL Server 可用的實體記憶體數量 (以 MB 為單位)。 實體記憶體的預設值為 80%,可避免記憶體不足 (OOM) 的狀況。
重要
memory.memorylimitmb
設定會限制 SQL Server 程序可用的實體記憶體數量。 最大伺服器記憶體 (MB) 設定可用來調整 SQL Server 緩衝集區可用的記憶體數量,但絕對不能超過 SQL Server 可用的實體記憶體數量。 如需最大服器記憶體 (MB) 伺服器組態選項的詳細資訊,請參閱伺服器記憶體組態選項。
使用
memory.memorylimitmb
的set
命令,以根身分執行 mssql-conf 指令碼。 下列範例會將 SQL Server 可用的記憶體變更為 3.25 GB (3,328 MB)。sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328
重新啟動 SQL Server 服務以套用變更:
sudo systemctl restart mssql-server
其他記憶體設定
下列選項可用來進行記憶體設定。
選項 | Description |
---|---|
memory.disablememorypressure |
SQL Server 可解除記憶體壓力。 值可以是 true 或 false (預設)。 停用記憶體壓力會禁止 SQL Server 用來將其實體記憶體使用量限制為 memory.memorylimitmb 的訊號,進而導致使用量最終超過該限制。 |
memory.memory_optimized |
啟用或停用 SQL Server 經記憶體最佳化的功能:持續性記憶體檔案啟蒙、記憶體保護。 值可以是 true 或 false 。 |
memory.enablecontainersharedmemory |
僅適用於 SQL Server 容器。 使用此設定可啟用 SQL Server 容器內的共用記憶體。 如需詳細資訊,請參閱在容器中啟用 VDI 備份與還原。 值可以是 true 或 false (預設)。 |
設定 MSDTC
network.rpcport
和 distributedtransaction.servertcpport
設定可用來設定 Microsoft 分散式交易協調器 (MSDTC)。 若要變更這些設定,請執行下列命令:
使用
network.rpcport
的set
命令,以根身分執行 mssql-conf 指令碼:sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
然後進行
distributedtransaction.servertcpport
設定:sudo /opt/mssql/bin/mssql-conf set distributedtransaction.servertcpport <servertcpport_port>
除了設定這些值,您還必須為連接埠 135 設定路由及更新防火牆。 如需實現方式的詳細資訊,請參閱如何在 Linux 上設定 Microsoft Distributed Transaction Coordinator (MSDTC)。
您可以使用其他數個適用於 mssql-conf 的設定來監視和疑難排解 MSDTC。 下表簡短描述這些設定。 如需其使用方式的詳細資訊,請參閱 Windows 支援文章中的詳細資料:如何在 Windows 10 電腦上啟動 MS DTC 啟用診斷追蹤。
選項 | Description |
---|---|
distributedtransaction.allowonlysecurerpccalls |
針對分散式交易設定僅安全的 RPC 呼叫 |
distributedtransaction.fallbacktounsecurerpcifnecessary |
針對分散式交易設定僅限安全性的 RPC 呼叫 |
distributedtransaction.maxlogsize |
DTC 交易記錄檔大小 (以 MB 為單位)。 預設值為 64 MB |
distributedtransaction.memorybuffersize |
儲存追蹤的循環緩衝區大小。 此大小以 MB 為單位,預設值為 10 MB |
distributedtransaction.servertcpport |
MSDTC rpc 伺服器連接埠 |
distributedtransaction.trace_cm |
連線管理員中的追蹤 |
distributedtransaction.trace_contact |
追蹤連絡人集區和連絡人 |
distributedtransaction.trace_gateway |
追蹤閘道來源 |
distributedtransaction.trace_log |
記錄追蹤 |
distributedtransaction.trace_misc |
無法分類到其他類別的追蹤 |
distributedtransaction.trace_proxy |
MSDTC Proxy 中所產生的追蹤 |
distributedtransaction.trace_svc |
追蹤服務和 .exe 檔案啟動 |
distributedtransaction.trace_trace |
追蹤基礎結構本身 |
distributedtransaction.trace_util |
追蹤從多個位置呼叫的公用程式常式 |
distributedtransaction.trace_xa |
XA 交易管理員 (XATM) 追蹤來源 |
distributedtransaction.tracefilepath |
應在其中儲存追蹤檔案的資料夾 |
distributedtransaction.turnoffrpcsecurity |
啟用或停用分散式交易的 RPC 安全性 |
接受 Machine Learning Services EULA
將機器學習 R 或 Python 套件新增至資料庫引擎,要求您接受適用於 R 和 Python 開放原始碼發行版本的授權條款。 下表列舉與 mlservices
EULA 相關的所有可用命令或選項。 根據您安裝的內容而定,會針對 R 和 Python 使用相同的 EULA 參數。
# For all packages: database engine and mlservices
# Setup prompts for mlservices EULAs, which you need to accept
sudo /opt/mssql/bin/mssql-conf setup
# Add R or Python to an existing installation
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml
# Alternative valid syntax
# Adds the EULA section to the INI and sets acceptulam to yes
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y
# Rescind EULA acceptance and removes the setting
sudo /opt/mssql/bin/mssql-conf unset EULA accepteulaml
您也可以將接受 EULA 直接新增至 mssql.conf 檔案:
[EULA]
accepteula = Y
accepteulaml = Y
啟用輸出網路存取
預設會在 SQL Server 機器學習服務功能中,停用 R、Python 和 JAVA 延伸模組的輸出網路存取。 若要啟用輸出要求,請使用 mssql-conf 設定 outboundnetworkaccess
Boolean 屬性。
設定屬性之後,重新啟動 SQL Server Launchpad 服務,以從 INI 檔案讀取更新後的值。 每當修改擴充性相關設定時,系統會顯示重新啟動訊息提醒您。
# Adds the extensibility section and property.
# Sets "outboundnetworkaccess" to true.
# This setting is required if you want to access data or operations off the server.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
# Turns off network access but preserves the setting
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 0
# Removes the setting and rescinds network access
sudo /opt/mssql/bin/mssql-conf unset extensibility.outboundnetworkaccess
您也可以將 outboundnetworkaccess
直接新增至 mssql.conf 檔案:
[extensibility]
outboundnetworkaccess = 1
變更記錄檔層級適用於 Azure Key Vault 的 SQL Server 連接器
在 SQL Server 2022 (16.x) CU 14 和更新版本中,Linux 上的 SQL Server 支援使用 Azure Key Vault 的 TDE 可延伸金鑰管理。 您可以為下列其中一個值設定記錄層級:
層級 | 描述 |
---|---|
0 (預設值) |
資訊 |
1 |
錯誤 |
2 |
無記錄 |
若要變更 SQL Server 連接器的記錄層級,請使用下列範例:
sudo /opt/mssql/bin/mssql-conf set sqlconnector.logginglevel 1
如需更多資訊,請參閱 搭配使用 SQL Server 連接器與 SQL 加密功能。
變更 TCP 通訊埠
network.tcpport
設定會變更 SQL Server 用來接聽連線的 TCP 連接埠。 此連接埠預設為 1433。 若要變更此連接埠,請執行下列命令:
使用
network.tcpport
的set
命令,以根身分執行 mssql-conf 指令碼:sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
目前在連線到 SQL Server 時,您必須在主機名稱或 IP 位址之後,以逗號 (,) 指定自訂連接埠。 例如,若要使用 sqlcmd 連線,您可以使用下列命令:
sqlcmd -S localhost,<new_tcp_port> -U test -P test
指定 TLS 設定
下列選項會針對在 Linux 上執行的 SQL Server 執行個體設定 TLS。
選項 | Description |
---|---|
network.forceencryption |
如果是 1,SQL Server 會強制加密所有連線。 根據預設,這個選項是 0。 |
network.tlscert |
SQL Server 針對 TLS 使用的憑證檔案絕對路徑。 範例:/etc/ssl/certs/mssql.pem 憑證檔案必須可由 mssql 帳戶存取。 Microsoft 建議使用 chown mssql:mssql <file>; chmod 400 <file> 來限制檔案的存取。 |
network.tlskey |
SQL Server 針對 TLS 使用的私密金鑰檔案絕對路徑。 範例:/etc/ssl/private/mssql.key 憑證檔案必須可由 mssql 帳戶存取。 Microsoft 建議使用 chown mssql:mssql <file>; chmod 400 <file> 來限制檔案的存取。 |
network.tlsprotocols |
SQL Server 所允許的 TLS 通訊協定清單 (以逗號分隔)。 SQL Server 一律會嘗試交涉允許的最強通訊協定。 如果用戶端不支援任何允許的通訊協定,SQL Server 就會拒絕連線嘗試。 若要取得相容性,預設允許所有支援的通訊協定 (1.2、1.1、1.0)。 如果您的用戶端支援 TLS 1.2,則 Microsoft 建議只允許 TLS 1.2。 |
network.tlsciphers |
指定 SQL Server 針對 TLS 允許哪些加密。 此字串必須根據每個 OpenSSL 的 Cipher 清單格式 \(英文\) 來格式化。 一般來說,您應該不需要變更此選項。 預設允許下列 Cipher: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA |
network.kerberoskeytabfile |
Kerberos keytab 檔案的路徑 |
如需使用 TLS 設定的範例,請參閱在 Linux 上加密 SQL Server 連線。
網路設定
請參閱教學課程:透過 Linux 上的 SQL Server 使用 Active Directory 驗證,以取得透過 Linux 上的 SQL Server 使用 Active Directory 驗證的完整資訊。
下列選項是可使用 mssql-conf 來設定的其他網路設定。
選項 | Description |
---|---|
network.disablesssd |
停用查詢 SSSD 的 Active Directory 帳戶資訊並預設為 LDAP 呼叫。 值可以是 true 或 false 。 |
network.enablekdcfromkrb5conf |
允許從 krb5.conf 查閱 KDC 資訊。 值可以是 true 或 false 。 |
network.forcesecureldap |
強制使用 LDAPS 來連絡網域控制站。 值可以是 true 或 false 。 |
network.ipaddress |
連入連線的 IP 位址。 |
network.kerberoscredupdatefrequency |
針對需要更新的 Kerberos 認證進行檢查之間的時間 (以秒為單位)。 值為整數。 |
network.privilegedadaccount |
用於 Active Directory 驗證的具特殊權限 Active Directory 使用者。 值為 <username> 。 如需詳細資訊,請參閱教學課程:在 Linux 上搭配使用 Active Directory 驗證與 SQL Server |
uncmapping |
將 UNC 路徑對應到本機路徑。 例如: sudo /opt/mssql/bin/mssql-conf set uncmapping //servername/sharename /tmp/folder 。 |
ldaphostcanon |
設定 OpenLDAP 是否應該在繫結步驟期間規範主機名稱。 值可以是 true 或 false 。 |
啟用或停用追蹤旗標
traceflag
選項會啟用或停用啟動 SQL Server 服務的追蹤旗標。 若要啟用/停用追蹤旗標,請使用下列命令:
使用下列命令啟用追蹤旗標。 例如,針對追蹤旗標 1234:
sudo /opt/mssql/bin/mssql-conf traceflag 1234 on
您可以分別指定多個追蹤旗標來加以啟用:
sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
同樣地,您可以藉由指定追蹤旗標並新增
off
參數來停用一或多個已啟用的追蹤旗標:sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off
重新啟動 SQL Server 服務以套用變更:
sudo systemctl restart mssql-server
移除設定
若要取消設定 mssql-conf set
所做的任何設定,請使用 unset
選項和設定的名稱來呼叫 mssql-conf。 這會清除設定,有效地使其返回預設值。
下列範例會清除
network.tcpport
選項。sudo /opt/mssql/bin/mssql-conf unset network.tcpport
重新啟動 SQL Server 服務。
sudo systemctl restart mssql-server
檢視目前設定
若要檢視任何已設定的設定,請執行下列命令以輸出 mssql.conf
檔案的內容:
sudo cat /var/opt/mssql/mssql.conf
此檔案中未顯示的任何設定都會使用其預設值。 下一節提供範例 mssql.conf
檔案。
檢視各種選項
若要檢視可使用 mssql-conf 公用程式設定的各種選項,請執行 help
命令:
sudo /opt/mssql/bin/mssql-conf --help
結果會為您提供各種設定選項,以及每個設定的簡短描述。
mssql.conf 格式
下列 /var/opt/mssql/mssql.conf
檔案提供每項設定的範例。 您可以視需要使用此格式,手動對 mssql.conf
檔案進行變更。 如果您手動變更檔案,則必須先重新啟動 SQL Server 之後才能套用變更。 若要搭配 Docker 使用 mssql.conf
檔案,您必須讓 Docker 保存您的資料。 首先,將完整的 mssql.conf
檔案新增至您的主機目錄,然後執行該容器。 設定 Linux 上的 SQL Server的使用方式和診斷數據收集中有一個範例。
[EULA]
accepteula = Y
[coredump]
captureminiandfull = true
coredumptype = full
[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/
[hadr]
hadrenabled = 0
[language]
lcid = 1033
[memory]
memorylimitmb = 4096
[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0
[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7
[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit
[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456
[EULA]
accepteula = Y
accepteulaml = Y
[coredump]
captureminiandfull = true
coredumptype = full
[distributedtransaction]
servertcpport = 51999
[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/
[hadr]
hadrenabled = 0
[language]
lcid = 1033
[memory]
memorylimitmb = 4096
[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
rpcport = 13500
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0
[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7
[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit
[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456
相關內容
參與編輯 SQL 文件
您知道您可以自行編輯 SQL 內容嗎? 這樣做不僅可以協助改善文件,也能名列該頁面的參與者。
如需詳細資訊,請參閱如何參與 SQL Server 文件