f SQL Server PITR 還原到某一時間點 ~ 迪貝之家

Pages

SQL Server PITR 還原到某一時間點

今天我要啟動一個log shipping的standby 資料庫
就在想....sql server 到底能不能像oracle一樣回到某個時間點
我就查了internet
還真可以啊.....
挖哩~~
管理sql server 好幾年了
我還真不知道可以做到這一步
真是鄙視我自己啊.....
人家的文章 [SQL SERVER]如何利用交易紀錄檔還原到某一時間點
restore log urdb
from disk = 'e:\logshipping\urdb_log.bak'
WITH RECOVERY, STOPAT = '2020-06-11 13:15:00.000'
以前是拿到多少交易記錄檔備份檔
就做多少restore
沒想過要限定時間
========20201116 =================

終於有了實務案例
上個把standby 啟動後交付給AP
說是資料異動太快
她沒辦法驗資料
真是腦袋三條線
討論之後
只好挑選了昨天早上8~9點的時段
進行point in time recovery
這是我的步驟
1. 8點上來,先把log shipping的job都停掉
2. 08:16手動進行log backup , 傳檔到板橋後
也確認所有的之前的log都restore了
3. 進行PITR Recovery
原本我想說我照著微軟的官方文件來處理stopat的時間資料好了
Restore a SQL Server Database to a Point in Time (Full Recovery Model)
結果不work
restore log urdb from disk='s:\log_ship\urdb_20201114234651.trn' with stopat = 'Nov 15, 2020 08:15 AM' , norecovery;
restore log urdb from disk='s:\log_ship\urdb_20201115000141.trn' with stopat = 'Nov 15, 2020 08:15 AM' , norecovery;
restore log urdb from disk='s:\log_ship\urdb_log.bak' with stopat = 'Nov 15, 2020 08:15 AM' , norecovery;
RESTORE DATABASE urdb WITH RECOVERY;
GO
就更換為一般所知的時間格式
restore log urdb from disk='s:\log_ship\urdb_20201114234651.trn' with stopat = '2020-11-15 08:15:00.000' , norecovery;
restore log urdb from disk='s:\log_ship\urdb_20201115000141.trn' with stopat = '2020-11-15 08:15:00.000' , norecovery;
restore log urdb from disk='s:\log_ship\urdb_log.bak' with stopat = '2020-11-15 08:15:00.000' , norecovery;
RESTORE DATABASE urdb WITH RECOVERY;
GO