Sql-Server
複製數據庫移動
我有 2TB 的數據庫參與 SQL Server 事務複製。我想以最少的停機時間將發布者數據庫文件移動到較新的磁碟,並且不會中斷複製。請讓我知道這是否可能。我的數據庫在 SQL Server 2008 R2 EE 版本上。如果您需要更多詳細資訊,請告訴我。
如果需要最大限度地減少停機時間,則使用本機 SQL 完整備份、差異備份和日誌備份並還原到新磁碟,使用 NORECOVERY 進行還原,並使用不同的數據庫名稱。這與將數據庫移動到新伺服器相同(您只需為數據庫使用備用臨時名稱)。在您最終停機期間,停止應用程序和所有 repl 作業,對現有數據庫執行日誌尾備份,在新數據庫上恢復並恢復。分離舊數據庫,將新數據庫重命名為原始數據庫名稱,重置 DBO(以及可信賴的、clr 和服務代理,如果它們在原始數據庫上啟用),重新啟動回復作業。
我想以最少的停機時間將發布者數據庫文件移動到較新的磁碟,並且不會中斷複製。
由於您想將數據庫移動到不同的磁碟,因此停機時間應該不會那麼長。
以下是您應該遵循的步驟:
- 停止日誌閱讀器代理/作業並禁用它。下面的腳本將為您生成命令。
SELECT 'exec msdb..sp_stop_job N'''+ name+'''' + ';'+'exec msdb..sp_update_job @job_name = N'''+ name+''', @enabled = 0' as 'CommandToStop/Disable Job', [id] ,[name] ,[publisher_id] ,[publisher_db] ,[publication] ,[local_job] ,[job_id] FROM [distribution].[dbo].[MSlogreader_agents] where publisher_db = 'AdventureWorksDW2012' -- change here !
- 使用 . 修改物理數據庫文件位置
ALTER DATABASE .. MODIFY FILE
。這將修改系統表中的名稱。- 使數據庫離線並將數據庫文件物理移動到新目標。
- 線上數據庫
- 啟用並啟動日誌讀取器代理。
您可以編寫腳本並自動化執行上述所有步驟。您可以參考我編寫的腳本來重命名數據庫 - 邏輯和物理,並根據您的需要進行調整。