Sql-Server

SQL Server 是否允許使用備用文件向後移動?

  • August 26, 2018

我有一個數據庫standby模式。

-- STEP 1
-- Restore path F1 > T7
RESTORE DATABASE [TestRestore] FROM DISK = N'C:\Temp\F1.BAK' WITH FILE = 1, 
NORECOVERY, NOUNLOAD, REPLACE, STATS = 5
GO

-- STEP 1
RESTORE LOG [TestRestore] FROM DISK = N'C:\Temp\T7.TRN' WITH FILE = 1, 
STANDBY = N'C:\Temp\TestRestore_RollbackUndoFile.tuf', NOUNLOAD, STATS = 5
GO

現在我要做日誌運輸。我的數據庫是可訪問的(read only),因此很容易確定我需要停下來的特定時間點。

-- STEP 3
-- Restore T8
USE [master]
RESTORE LOG [TestRestore] FROM DISK = N'C:\Temp\T8.TRN' WITH FILE = 1, 
STANDBY = N'C:\Temp\TestRestore_RollbackUndoFile.tuf', 
NOUNLOAD, STATS = 10, STOPAT = N'2013-10-25T19:55:26'
GO

-- STEP 4
-- ckecking
SELECT * FROM TestRestore.dbo.TranRecord
GO

STOPAT通過增加子句中指定的時間,我可以重複執行相同的事務日誌還原,直到到達所需的時間點。

但是,例如,我是否需要再次重新執行整個恢復,以防我意識到我已經恢復得太早了?(我的意思是刪除目前恢復的dbF1 > T7 > T8再次恢復並在我需要的地方停止)。或者可以只撤消最後一個日誌傳送?(在我的範例中是STEP 3)。

Msdn給了它相當有爭議的內涵。

指定允許撤銷恢復效果的備用文件。

您必須重新啟動恢復序列。

我相信 SQL Server 理論上可以允許及時向後移動,因為日誌包含撤消和重做資訊。但這要麼沒有實現,要麼由於某種原因不可能。

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