ONLY三行腳本, SQL數據恢復到指定時間點
經常看到有人誤刪數據,或者誤操作,特別是Update和Delete的時候沒有加WHERE ... 然后就喊爹喊娘了,怕是親爹媽也無奈搖肩。
話說,如果沒有犯過錯誤,那你還算是搞程序的嗎?!沒了偶爾的心跳,注定一輩子的孤獨啊,哈哈哈....
OK,書歸正傳,要分享一下我的當時的處理方案,與諸君共勉,歡迎吐槽,多多溝通。
遇到這種情況,一般都是沒有做備份,或者備份不及時(比如,當時我公司的數據,就沒有做實時備份,不過還好的是我25號數據誤操作,組長也然在19號做了備份,萬幸萬幸哦!),不然也不會來發問了。首先要淡定,否則會有更大的麻煩。
不過,不用擔心,現在就告訴你,三行sql腳本,數據恢復到指定的時間。客官,請上眼..
首先,你要確定的是你數據恢復模式是哪一種。具體方法:選擇操作的數據庫,“屬性”——》“選項”——》“恢復模式”,是否選擇的是“完整”。
確保在誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進進行一次日志備份(如果為了不讓日志文件變大而置trunc. log on chkpt.選項為1那你就死翹了)
backup database Demo to disk='D:\db.bak'
確保數據庫的恢復模式最起碼不能為【簡單】。至于如何修改成完整模式,這個應該沒必要多說了。

或者使用腳本檢查:
select recovery_model,recovery_model_desc
from sys.databases
where name ='AdventureWorks'
然后,要確保別人不再鏈接數據庫 ,然后做一次日志尾部備份
看下這段剁手都來不及的腳本吧 ...
UPDATE Person SET Gender='女'




如果,這是張客戶表,呃,,,
當然,我相信你是無心之舉,無論如何,淡定,淡定,相信我,這個時候,老板是不會炒了你的,但是,你抓雞也是要趕緊找回丟失的數據。
ONLY三行腳本, SQL數據恢復到指定時間點
--1、 首先,備份事務日志(還原日志必須在 還原完全備份的基礎上進行。而使用事務日志才能還原到指定的時間點)
BACKUP LOG Demo TO disk='D:\\db_log.bak' WITH FORMAT
</div>


ps, 操作這些腳本的時候 ,建議是在master 數據庫下進行,很好, 解決數據恢復嘍
After All:
平時不做備份,出了問題就抓雞,這也是你們咎由自取!如果你的公司是這樣,建議你趕緊離去,一個對數據不重視的公司,你留著有何意義。
但是,任誰也避免不了工作中的一些失誤,關鍵是咱們解決問題的能力。但作為久經沙場的戰友們,此時,不是要你想到多少種方案解決,你的朋友圈有多少酒友可以求助,有多路大神求支援 ...
你只需做兩件事:1、30秒認真想想你前后都做了哪些操作;
2、15秒內向你的直屬領導如實匯報。
這種方法有幾個缺點(此處杜撰被人,也然找不到作者何人):
1、如果你發現誤操作以后還有很多人做了操作,那么你還原成功后,別人的操作就會沖掉,所以發生誤操作后,要馬上停止別人對數據庫的操作。
2、這個方法要對數據庫獨占,所以你想偷偷恢復是不行的了。勇敢承認錯誤吧。
對于核心數據表,還是要先做好預防操作。
</div>來自:http://www.cnblogs.com/fuguoliang/p/4642004.html