SQL SERVER 移動系統數據庫


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

  • 故障恢復。例如,數據庫處於可疑模式下或因硬件故障而關閉。

  • 計划的重定位。

  • 為預定的磁盤維護操作而進行的重定位。

移動 Master 數據庫                                                                                                                                                                         

  1. “開始”菜單中,依次指向“所有程序”Microsoft SQL Server 和“配置工具”,再單擊 SQL Server 配置管理器

  2. “SQL Server 服務”節點中,右鍵單擊 SQL Server 實例(如 SQL Server (MSSQLSERVER)),並選擇“屬性”

  3. “SQL Server (實例名) 屬性”對話框中,單擊“高級”選項卡。

  4. 編輯“引導參數”值以指向 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
    
  5. ALTER DATABASE [master] MODIFY FILE(NAME='tempdev',FILENAME='E:\SQLData\master.mdf')

  6. 通過右鍵單擊實例名稱並選擇“停止”,停止 SQL Server 實例。
  7. 將 master.mdf 和 mastlog.ldf 文件移動到新位置(這個位置就是上面參數所指定的位置,即:E:\SQLData)。

  8. 重新啟動 SQL Server 實例。

  9. 通過運行以下查詢,驗證 master 數據庫的文件更改。

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID('master');
    GO

移動 Resource 數據庫                                                                                                                                                                    

Resource 數據庫的位置為 <drive>:\Program Files\Microsoft SQL Server\MSSQL10_50.<instance_name>\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;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
GO
ALTER 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM