Sql-Server
是否可以將備用數據庫設置為活動,進行更改然後繼續恢復鏈?
基本上,我在 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 需求與其他需求分開,因為兩者可能會發生衝突(如您所見)。在不知道您的自定義日誌傳送過程的詳細資訊的情況下,無法就如何進行此操作提供建議,但希望這在概念上對可以完成的操作有所幫助。