Sql-Server
從特定事務恢復日誌傳送
是否可以強制 SQL 日誌傳送從給定的 .trn 文件開始執行?
我有兩個數據庫,一個發送到另一個數據庫,這工作正常。但是我不得不恢復主數據庫,並在此期間創建了另一個 .trn 文件。(這將是垃圾,因為數據庫已恢復,因此無法在任何地方應用。)對於下一個事務,我手動備份了整個數據庫,並可以手動將其恢復到日誌目的地。(以下 13.trn)
創建的下一個事務文件也可以手動恢復。但是,作業在完全備份之前(下面的 12.trn)卡在事務上,當然作業失敗了,因為它位於目標數據庫後面。
如果我可以將它設置為嘗試 15.trn,它應該(可能)工作!我嘗試更改 msdb..log_shipping_secondary_databases 無濟於事。
那麼,是否可以設置 sqllogship.exe 下一個使用哪個文件?
下面的基本範例!
10.trn 11.trn <DB Was Restored> 12.trn 13.trn (contains full backup) 14.trn 15.trn
我通過將備用伺服器上表中的
last_restored_file
列更新log_shipping_monitor_secondary
為成功恢復的最後一個事務日誌來手動重置日誌傳送。像這樣的東西:
UPDATE lsms SET lsms.last_restored_file = '{transaction log file}' FROM dbo.log_shipping_monitor_secondary lsms WHERE lsms.secondary_database = '{DB Name}';
我建議使用嚮導從頭開始重新創建日誌傳送。此外,如果您的數據庫很大,則壓縮備份(取決於您使用的版本),然後從備份初始化輔助。