sql server 2008 數據庫回滾到某個時間點


數據庫回滾到時間的的前提: 事務日志完整,數據庫在完整恢復模式下進行過一次完整備份,數據庫沒有進行過還原操作(慘痛教訓)。

當數據庫誤操作時,切記冷靜,不然問題就是滾雪球, 在不做下一步錯誤前  可觀看該大神的方法:

http://blog.csdn.net/dba_huangzj/article/details/8491327

 

不成功的原因 :1.數據庫一直處於簡單恢復模式  ,進行完整備份和差異備份(這種狀態可以還原數據庫,日志會被截斷,且所占內存相對小些,日志鏈不完整)

                    2.二次錯誤的發生,

回首第一步,不碰原表,還原以前的備份數據庫,再單獨修改誤操作的表。

http://www.lwfree.cn/daima/16562.html

一、完全恢復模式下,在不同備份情況時,是否截斷了日志?
1、完全備份時
2、差異備份時
3、事務日志備份時
二、截斷日志后,
1、在不改變完全恢復模式情況下,進行收縮,日志文件大小是不發生改變的,此時,日志文件內的日志是否刪除了?
2、改變完全恢復模式為簡單模式,然后再從簡單模式改為完全模式,沒有進行收縮操作,此時,日志文件內的日志發生了變化沒?
3、改變完全恢復模式為簡單模式,進行收縮,然后再改為完全模式,此是比較明確的,日志沒有了,被刪除了。
三、截斷日志的理解。
如果日志a1部分被截斷了,然后又產生了a2部分日志,那a1和a2部分的日志是連續的嗎?在備份事務日志的時候,是兩部分日志都備份嗎?如果都備份,那在做時點還原時,可以還原到該兩部分日志的任何時刻嗎?

一、完全恢復模式下,在不同備份情況時,是否截斷了日志?
1、完全備份時
2、差異備份時
3、事務日志備份時
只有日志備份才截斷日志
二、截斷日志后,
1、在不改變完全恢復模式情況下,進行收縮,日志文件大小是不發生改變的,此時,日志文件內的日志是否刪除了?
會改變,但是所謂的截斷只是把日志中已提交的數據寫入mdf/ndf,然后刪除這部分的數據,以便重用,如果不收縮,大小不變,收縮了大小就小了。
2、改變完全恢復模式為簡單模式,然后再從簡單模式改為完全模式,沒有進行收縮操作,此時,日志文件內的日志發生了變化沒?
馬上切換的話應該是沒有改變的。但是用了一段時間就不同了
3、改變完全恢復模式為簡單模式,進行收縮,然后再改為完全模式,此是比較明確的,日志沒有了,被刪除了。
日志不可能沒有了,只是簡單模式下是自動截斷,所以一般簡單模式的ldf文件比較小而已,你換回完整恢復模式,用了一段時間還是會增大的。
三、截斷日志的理解。
如果日志a1部分被截斷了,然后又產生了a2部分日志,那a1和a2部分的日志是連續的嗎?在備份事務日志的時候,是兩部分日志都備份嗎?如果都備份,那在做時點還原時,可以還原到該兩部分日志的任何時刻嗎?
截斷的日志已經存進了mdf/ndf中,在ldf已經不存在了,a2會重用這部分(前提是連續的操作,不然會被其他部分重用a1的日志空間),已經截斷了的部分已經不存在與ldf中,所以日志備份的文件中沒有這部分的內容。做時間點還原的時候首先要先還原完整備份,這是因為已截斷的部分在完整備份中,不再日志備份中。

 

 

  

在數據庫的使用中,有幾點要必備,1.有一次完整恢復模式下的完整備份;(重新開始日志鏈)

bak文件理解成一個壓縮包,完整備份和差異備份的時候會把數據和日志一起帶進壓縮包,

而日志備份的時候只會把日志帶進壓縮包(當時還原了數據庫,可能也對數據庫的日志文件有影響了  對於日志文件的理解可以觀看  http://blog.csdn.net/duanbeibei/article/details/50264117 (目前看不太懂))


免責聲明!

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



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