SQLServer數據庫使用日志備份還原至指定時間點


SQLServer數據庫使用日志備份還原至指定時間點

 

現場正常情況:

         某客戶數據庫數據文件約1T,日志文件忽略大小,每日凌晨0點做數據庫完整備份,每日中午12點做數據庫差異備份。

異常問題:

         某日晚19點01分,因某誤操作,導致某大表近2億條數據被刪除,約19點30分,發現問題,客戶分別在19點31分、19點50分、20點00分執行了日志備份(本文為了簡化說明,假定備份均立即完成,實際備份過程中產生數據及耗時不做考慮),之后在20點30分做數據庫全備,最后請求支持。

支持處理操作:

         1、立即斷開前台業務,確保不再有新業務寫入(否則新寫入的業務會在恢復時丟失)

         2、由於客戶最后又做了一次數據庫全備,因此可以直接忽略最后一次完備。協調客戶使用新服務器。

         3、首先還原當日凌晨0點數據庫備份,並將數據庫處於還原模式

         4、繼續還原當日12點數據庫差異備份,同樣處於還原模式(該步驟實際可以忽略)

         5、最后還原晚上做的第一次日志備份,注意還原時選擇時間點為19點00分00秒,選在回滾事務。

         6、檢查數據庫數據情況,若仍有數據誤刪情況,考慮重復還原數據庫日志(需要先將數據庫調整成還原狀態),並調整還原時間點。

 

備注:

         第4步所謂的可以忽略是因為差異備份與完整備份之間相差時間不長,但假如情況如下:周一0點完備,周二、周三、周四、周五12點差異備份,在周五18點進行日志備份,此時想將數據恢復至17點。

此時同樣可以直接使用周一0點的完備+周五18點的日志備份。但日志備份數據量較大,耗時可能較長;也可以使用周一0點完備+周五12點差異備份,加周五18點日志備份,這樣耗時相對較短。

 

總結:

         日志恢復的重點在於上一次的完整備份,如果有多個日志備份,那么就按照時間先后順序,逐個還原日志備份。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM