Sql-Server

是否可以將備用數據庫設置為活動,進行更改然後繼續恢復鏈?

  • April 14, 2016

基本上,我在 sql 2012 上使用自定義日誌傳送方法,其中事務文件被手動複製到異地位置。然後使用類似的方法恢復文件:

RESTORE LOG xyz
   FROM MyAdvWorks_log2
   WITH STANDBY = 'c:\undo.bak'

我真的很希望能夠將該備用數據庫短暫設置為活動,執行各種操作(不僅僅是讀取),然後回滾/丟棄這些更改並允許恢復繼續。

這甚至可能嗎?如果沒有,我可以復製備用伺服器並將其設置為活動狀態(然後在完成後將其刪除)嗎?

(因為這比評論長..所以發布這個作為答案)

在 sql server 企業版中,您可以利用數據庫快照。

如果我理解您的問題,您想對數據庫的備用(非實時)副本進行一些更改,然後丟棄這些?

如果這是真的,那麼您可以使用以下命令創建主數據庫的數據庫快照:

CREATE DATABASE snapshotDBName... AS SNAPSHOT OF yourPRODDBNAME

然後進行修改 - 使用正常 TSQL 插入/更新/刪除,完成修改後,您可以使用刪除快照

DROP DATABASE snapshotDBName

您可以閱讀有關SQL Server 數據庫快照的更多資訊

注意:如果這不是您想要的,那麼我將刪除這個答案..我假設的東西。

鑑於您的情況和此處提供的資訊,請考慮以下…

如果磁碟空間允許,請將您的自定義日誌傳送配置為在輔助伺服器上擁有 2 個數據庫,這兩個數據庫都在不斷地從主伺服器恢復日誌。數據庫 A 的用途是用於災難恢復,應單獨使用,以免危及您在緊急情況下使用它的能力。然後,數據庫 B 將用於上述目的,您可以在需要時將其聯機並按照您認為合適的方式進行操作。完成後,以 NORECOVERY 模式恢復必要的完整數據庫備份,以使數據庫 B 再次恢復日誌。

目標實際上是將您的 DR 需求與其他需求分開,因為兩者可能會發生衝突(如您所見)。在不知道您的自定義日誌傳送過程的詳細資訊的情況下,無法就如何進行此操作提供建議,但希望這在概念上對可以完成的操作有所幫助。

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