Sql-Server

SQL Server 數據庫遷移 - 在原始數據庫仍處於生產狀態時進行備份/恢復

  • December 29, 2015

我有一個非常大的數據庫處於完全恢復模式。我的 SQL Server 是 2008 R2。問題是我需要遷移到新伺服器,同時原始數據庫仍在生產中。

備份和恢復都需要幾個小時,所以…

  • 備份時添加到數據庫中的記錄會發生什麼?如果我是對的,這不是問題,.bak文件將包含所有數據,直到備份結束。我是否標記了僅複製?
  • 備份完成後,我開始恢復……在新伺服器中恢復時獲取已添加到原始數據庫的其餘記錄的最佳選擇是什麼?

我已經嘗試過完整+差分,但我收到了一條消息

無法恢復差異備份,因為數據庫尚未恢復到正確的早期狀態

在我的測試環境中。

可以確定這是最後一次完整備份,因為我只是在修改一條記錄後一分鐘後進行的。

另外,我用 norecovery 恢復完整,用 recovery 恢復差異。

我做錯了什麼?

備份將保存到磁碟,因為我需要盡快完成。

編輯:

我仍然收到消息“無法恢復差異備份,因為…”。有什麼問題?

在備份到磁碟時我必須做一些特別的事情嗎?這些是 LSN:

+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-
| BackupType |  |     FirstLSN      |  |          LastLSN  |  | CheckpointLSN     |  | DatabaseBackupLSN | 
+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-
| FullBackup |  | 99000000025100209 |  | 99000000034000001 |  | 99000000033800001 |  | 98000002545900051 | 
| DiffBackup |  | 99000000033800001 |  | 99000000036800001 |  | 99000000035000041 |  | 98000002545900051 | 
+------------+--+-------------------+--+-------------------+--+-------------------+--+-------------------+-

第一步是將恢復模式更改為 FULL。

進行完整備份(帶壓縮),並將完整備份還原到新伺服器with NORECOVERY。這將允許您恢復額外的日誌備份。

現在配置從主(舊)伺服器到輔助(新)伺服器的日誌傳送。

在切換期間,進行尾部日誌備份並通過恢復日誌備份使輔助伺服器聯機WITH RECOVERY

確保在兩台伺服器上都啟用了即時文件初始化,以減少恢復時間。

有關更詳細的步驟,請參閱我對將數據庫移動到新數據中心的回答。

引用自:https://dba.stackexchange.com/questions/123398