徵狀
假設您使用的是 Linux 上的 SQL Server 2017。 根據預設,master database 位於 [位置] /var/opt/mssql/data。現在,您想要將主資料庫檔案和錯誤記錄檔的位置變更至不同的位置。
解決方案
此更新包含在 SQL Server 的下列累積更新中:
安裝 SQL server 2017 CU4 之後,您就可以變更 master 資料庫檔案和錯誤記錄檔位置的位置。
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
其他相關資訊
設定 Errorlogfile 位置:
-
使用下列命令來設定新的錯誤日誌位置。 確定資料夾結構是預先建立的,而「mssql」帳戶具有建立檔案的許可權。
-
/mssql-conf 設定 filelocation errorlogfile/home/user/sqlserver/log/errorlog
-
錯誤記錄的環境變數是 MSSQL_ERROR_LOG_FILE。
-
以下是設定主資料基底檔案位置的案例和步驟:
注意: 請務必在進行任何變更前,先完成包括主資料庫在內的所有資料庫備份。
案例1:在現有的 SQL 安裝上變更 master 資料庫檔案的位置。
-
您可以在 mssql 會議公用程式中使用新的選項,以提供主要版 .mdf、mastlog 和錯誤日誌的位置。
-
以下是設定位置的命令。
-
/mssql-conf 設定 filelocation masterdatafile/home/user/sqlserver/data/master.mdf
-
/mssql-conf 設定 filelocation masterlogfile/home/user/sqlserver/data/mastlog.ldf
-
在設定設定之前,請確定提供的路徑已存在,且「mssql」使用者擁有該資料夾的完整許可權。
-
設定 [停止 mssql-伺服器] (systemctl [停止 mssql-伺服器]),然後將 master. .mdf 和 mastlog 移至設定的位置,然後重新開機 sql server (systemctl [啟動 mssql-server])。
案例2:在安裝前預先設定 master 資料庫檔案的位置。
-
在您安裝 mssql Server 之後(例如: apt-取得安裝 mssql-server)。
-
您可以設定環境變數,如下所示:
-
export MSSQL_MASTER_DATA_FILE =/home/user/sqlservr/data/master.mdf
-
export MSSQL_MASTER_LOG_FILE =/home/user/sqlservr/data/mastlog.ldf
-
或者,您可以使用案例1中所提及的步驟來設定設定,然後再按下 mssql 帳戶所擁有之 /var/opt/mssql/ 資料夾的許可權。 如果您設定了環境變數與 mssql 會議設定,則環境變數將會優先。
注意:主要資料基底的檔案名應該是 ".master" ,而主版記錄在安裝期間應該是 "mastlog" 。 檔案名可能會在稍後進行變更。
如果未建立資料夾結構或 mssql 帳戶沒有適當的許可權,您將會在安裝期間收到下列錯誤。
錯誤: BootstrapSystemDataDirectories ()失敗(HRESULT 0x80070002)
初次設定 Microsoft SQL Server 失敗。 請參閱錯誤日誌
案例3:變更主資料庫檔案的名稱
-
[停止 mssql-伺服器]。
-
使用 mssql 會議設定檔案名
-
將主資料庫檔案重新命名為已設定的檔案名。
-
開始 mssql-伺服器
下列是變更主資料庫檔案名稱的命令。
systemctl [停止 mssql-伺服器]
/mssql-conf 設定 filelocation masterdatafile/home/sqlservr/data/testmaster.mdf
/mssql-conf 設定 filelocation masterlogfile/home/sqlservr/data/testmastlog.ldf
mv/home/sqlservr/data/master.mdf/home/sqlservr/data/testmaster.mdf
mv/home/sqlservr/data/mastlog.ldf/home/sqlservr/data/testmastlog.ldf
systemctl [開始 mssql-伺服器]
參考
瞭解 Microsoft 用於描述軟體更新的 詞彙。