SQL Server 2008 數(shù)據(jù)庫回滾到某個(gè)時(shí)間點(diǎn)
數(shù)據(jù)庫回滾到時(shí)間的的前提: 事務(wù)日志完整,數(shù)據(jù)庫在完整恢復(fù)模式下進(jìn)行過一次完整備份,數(shù)據(jù)庫沒有進(jìn)行過還原操作(慘痛教訓(xùn))。
當(dāng)數(shù)據(jù)庫誤操作時(shí),切記冷靜,不然問題就是滾雪球, 在不做下一步錯(cuò)誤前 ?可觀看該大神的方法:
http://blog.csdn.net/dba_huangzj/article/details/8491327
不成功的原因 :1.數(shù)據(jù)庫一直處于簡(jiǎn)單恢復(fù)模式 ?,進(jìn)行完整備份和差異備份(這種狀態(tài)可以還原數(shù)據(jù)庫,日志會(huì)被截?cái)?,且所占?nèi)存相對(duì)小些,日志鏈不完整)2.二次錯(cuò)誤的發(fā)生,回首第一步,不碰原表,還原以前的備份數(shù)據(jù)庫,再單獨(dú)修改誤操作的表。
一、完全恢復(fù)模式下,在不同備份情況時(shí),是否截?cái)嗔巳罩荆?br />1、完全備份時(shí)
2、差異備份時(shí)
3、事務(wù)日志備份時(shí)
二、截?cái)嗳罩竞螅?br />1、在不改變完全恢復(fù)模式情況下,進(jìn)行收縮,日志文件大小是不發(fā)生改變的,此時(shí),日志文件內(nèi)的日志是否刪除了?
2、改變完全恢復(fù)模式為簡(jiǎn)單模式,然后再從簡(jiǎn)單模式改為完全模式,沒有進(jìn)行收縮操作,此時(shí),日志文件內(nèi)的日志發(fā)生了變化沒?
3、改變完全恢復(fù)模式為簡(jiǎn)單模式,進(jìn)行收縮,然后再改為完全模式,此是比較明確的,日志沒有了,被刪除了。
三、截?cái)嗳罩镜睦斫狻?br />如果日志a1部分被截?cái)嗔?,然后又產(chǎn)生了a2部分日志,那a1和a2部分的日志是連續(xù)的嗎?在備份事務(wù)日志的時(shí)候,是兩部分日志都備份嗎?如果都備份,那在做時(shí)點(diǎn)還原時(shí),可以還原到該兩部分日志的任何時(shí)刻嗎?
截?cái)嗟娜罩疽呀?jīng)存進(jìn)了mdf/ndf中,在ldf已經(jīng)不存在了,a2會(huì)重用這部分(前提是連續(xù)的操作,不然會(huì)被其他部分重用a1的日志空間),已經(jīng)截?cái)嗔说牟糠忠呀?jīng)不存在與ldf中,所以日志備份的文件中沒有這部分的內(nèi)容。做時(shí)間點(diǎn)還原的時(shí)候首先要先還原完整備份,這是因?yàn)橐呀財(cái)嗟牟糠衷谕暾麄浞葜校辉偃罩緜浞葜小??
在數(shù)據(jù)庫的使用中,有幾點(diǎn)要必備,1.有一次完整恢復(fù)模式下的完整備份;(重新開始日志鏈)bak文件理解成一個(gè)壓縮包,完整備份和差異備份的時(shí)候會(huì)把數(shù)據(jù)和日志一起帶進(jìn)壓縮包,而日志備份的時(shí)候只會(huì)把日志帶進(jìn)壓縮包(當(dāng)時(shí)還原了數(shù)據(jù)庫,可能也對(duì)數(shù)據(jù)庫的日志文件有影響了 ?對(duì)于日志文件的理解可以觀看 ?http://blog.csdn.net/duanbeibei/article/details/50264117 (目前看不太懂))





