程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 利用事務日志來恢復Update、Delete誤操作引起的數據丟

利用事務日志來恢復Update、Delete誤操作引起的數據丟

編輯:關於SqlServer
 可能有不少朋友遇到過這樣的問題:
update或delete語句忘帶了where子句,或where子句精度不夠,執行之後造成了嚴重的後果,
這種情況的數據恢復只能利用事務日志的備份來進行,所以如果你的SQL沒有進行相應的全庫備份
或不能備份日志(truncate log on checkpoint選項為1),那麼就無法進行數據的恢復了,或者
只能恢復到最近一次的備份的數據了。

以下簡單說明恢復數據方法:
1,如果誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進
進行一次日志備份(如果為了不讓日志文件變大而置trunc. log on chkpt.選項為1那你就死翹了)
backup log dbName to disk='fileName'
2,恢復一個全庫備份,注意需要使用with norecovery,如果還有其他差異或增量備份,則逐個恢

restore database dbName from disk='fileName' with norecovery
3,恢復最後一個日志備份即剛做的日志備份,指定恢復時間點到誤操作之前的時刻
restore log dbName from disk='fileName'
with stopat='date_time'

以上這些操作都可以在SQL Server企業管理器裡完成,難度不大。。。

當然,如果誤操作是一些不記日志的操作比如truncate table,select into等操作,那麼是無法利
用上述方法來恢復數據的...

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved