SQL SERVER 移動系統資料庫

2021-09-08 16:55:10 字數 3269 閱讀 7265

移動系統資料庫在下列情況下可能很有用:

移動 master 資料庫

「開始」選單中,依次指向「所有程式」microsoft sql server「配置工具」,再單擊sql server 配置管理器

「sql server 服務」節點中,右鍵單擊 sql server 例項(如sql server (mssqlserver)),並選擇「屬性」

「sql server (例項名

) 屬性」對話方塊中,單擊「高階」選項卡。

編輯「引導引數」值以指向 master 資料庫資料和日誌檔案的計畫位置,然後單擊「確定」。可以選擇移動錯誤日誌檔案。

資料檔案的引數值必須跟在 -d 引數的後面,日誌檔案的引數值必須跟在 -l 引數的後面。下面的示例顯示 master 資料和日誌檔案預設位置的引數值。

-dc:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\data\

master.mdf;-ec:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\

log\errorlog;-lc:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\

data\mastlog.ldf

如果 master 資料和日誌檔案預先安排的重定位是 e:\sqldata,則引數值將更改為:

-de:\sqldata\master.mdf;-ec:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\log\errorlog;-le:\sqldata\mastlog.ldf
alter

database

[master]

modify

file

(name

='tempdev'

,filename

='e:\sqldata\master.mdf'

)通過右鍵單擊例項名稱並選擇「停止」,停止 sql server 例項。

將 master.mdf 和 mastlog.ldf 檔案移動到新位置(這個位置就是上面引數所指定的位置,即:e:\sqldata)。

重新啟動 sql server 例項。

通過執行以下查詢,驗證 master 資料庫的檔案更改。

select name, physical_name as

currentlocation, state_desc

from

sys.master_files

where database_id =

db_id('

master');

go

移動 resource 資料庫

resource 資料庫的位置為 :\program files\microsoft sql server\mssql10_50.\mssql\binn\。無法移動該資料庫。

移動其它系統資料庫

注意:由於每次啟動 sql server 例項時都將重新建立 tempdb,所以不必實際移動資料和日誌檔案。在重新啟動服務時,將在新位置中建立這些檔案。在重新啟動服務之前,tempdb 將繼續使用現有位置中的資料和日誌檔案。

以下為移動系統資料庫步驟:

1. 確定系統資料庫的邏輯檔案名稱以及在磁碟上的當前位置。

--

如tempdb

select name, physical_name as

currentlocation

from

sys.master_files

where database_id =

db_id(n'

tempdb');

go

2. 使用 alter database 更改每個檔案的位置。

use

master;

goalter

database

tempdb

modify

file (name = tempdev, filename =

'e:\sqldata\tempdb.mdf');

goalter

database

tempdb

modify

file (name = templog, filename =

'e:\sqllog\templog.ldf');

go

3. 停止服務並移動檔案到更改位置

4. 重新啟動 sql server 的例項服務。

5. 驗證檔案更改。

select name, physical_name as

currentlocation, state_desc

from sys.master_files

再將系統檔案,如 tempdb.mdf 和 templog.ldf 檔案從其原始位置刪除。

備乙個指令碼,可以對多例項的時候使用:

select

'alter database ['+

db_name([

database_id

])+'

] modify file(name=

'''+name+

''',filename=

'''+

replace([

physical_name

],'c:\program files\microsoft sql server\

','e:\sqldata\

')+''')'

from

sys.master_files

where physical_name like

'c:%

'and

[database_id

]<>

1

移動SQL SERVER資料庫的資料與日誌檔案位置

以下示例將移動乙個名為mydb的資料庫,該資料庫包含乙個資料檔案mydb.mdf和乙個日誌檔案mydblog.ldf。如果您要移動的資料庫還有其他資料或日誌檔案,請在儲存過程sp attach db中用乙個逗號分隔的列表將它們全部列出。無論資料庫包含多少檔案,儲存過程sp detach db都不會更...

SQL Server 2008系統的系統資料庫

系統資料庫是指安裝程式一起安裝,用於協助sql server 2008系統共同完成管理操作的資料庫,它們是sql server 2008執行的基礎。它們分別是 master model tempdb msdb資料庫。1 master資料庫 master資料庫是sql server 2008的最重要的...

SQL SERVER系統資料庫說明

sql server中的資料庫按照用途可以劃分為兩種 系統資料庫 使用者資料庫 其中,系統資料庫是管理和維護sql server所必需的資料庫,使用者資料庫是使用者自己建立的資料庫。microsoft sql server提供了一下4個系統資料庫。1.master 資料庫 master 資料庫記錄 ...