Sql-Server
將每小時事務日誌恢復到每 10 分鐘間隔
我為我的生產數據庫執行每小時的事務日誌備份。我必須實施以下方案來檢查已刪除的數據。
我有兩個tlog。
- tlog1.trn 上午 10 點
- tlog2.trn 上午 11 點
我已經恢復了最近的完整備份並恢復到早上 9 點之前的差異。我想
tlog1.trn
每 10 分鐘恢復一次並將數據從一個表複製到同一個數據庫或不同數據庫中的table1
另一個表table2
。使用 SQL Server 2016。
這是可能的情況嗎?我必須使用游標嗎?我知道恢復
STANDBY
模式會讓我讀取數據。請幫助我如何恢復到每 10 分鐘的還原點?我知道恢復命令中有 STOPAT 選項,但我怎樣才能恢復到每 10 分鐘的間隔。有什麼語法嗎?
您應該能夠編寫一系列還原日誌(帶備用)並指定
STOPAT
10 分鐘增量--Full database restore with standby USE master GO RESTORE DATABASE [StandbyTest] FROM DISK = N'c:\StandbyTest\StandbyTest.bak' WITH FILE = 1 ,REPLACE ,STANDBY = N'C:\StandbyTest\ROLLBACK_UNDO_StandbyTest.BAK' GO --Pretend this was created at 10am RESTORE LOG [StandbyTest] FROM DISK = N'C:\StandbyTest\StandbyTest.trn' WITH FILE = 1 ,NOUNLOAD ,STATS = 10 ,STANDBY = N'C:\StandbyTest\ROLLBACK_UNDO_StandbyTest.BAK' ,stopat = '2018-07-26 09:10:00' --10 minute interval GO --Copy data to another table RESTORE LOG [StandbyTest] FROM DISK = N'C:\StandbyTest\StandbyTest.trn' WITH FILE = 1 ,NOUNLOAD ,STATS = 10 ,STANDBY = N'C:\StandbyTest\ROLLBACK_UNDO_StandbyTest.BAK' ,stopat = '2018-07-26 09:20:00' --10 minute interval GO --Copy data to another table RESTORE LOG [StandbyTest] FROM DISK = N'C:\StandbyTest\StandbyTest.trn' WITH FILE = 1 ,NOUNLOAD ,STATS = 10 ,STANDBY = N'C:\StandbyTest\ROLLBACK_UNDO_StandbyTest.BAK' ,stopat = '2018-07-26 09:30:00' --10 minute interval GO --Copy data to another table RESTORE LOG [StandbyTest] FROM DISK = N'C:\StandbyTest\StandbyTest.trn' WITH FILE = 1 ,NOUNLOAD ,STATS = 10 ,STANDBY = N'C:\StandbyTest\ROLLBACK_UNDO_StandbyTest.BAK' ,stopat = '2018-07-26 09:40:00' --10 minute interval GO --Copy data to another table RESTORE LOG [StandbyTest] FROM DISK = N'C:\StandbyTest\StandbyTest.trn' WITH FILE = 1 ,NOUNLOAD ,STATS = 10 ,STANDBY = N'C:\StandbyTest\ROLLBACK_UNDO_StandbyTest.BAK' ,stopat = '2018-07-26 09:50:00' --10 minute interval GO
–
然後,繼續查看在上午 11 點創建的下一個事務日誌並重複恢復命令,但更改
STOPAT
每個命令的時間。