利用事務(wù)日志來恢復(fù)數(shù)據(jù)庫------利用事務(wù)日志來恢復(fù)Update、Delete誤操作引起的數(shù)據(jù)丟失
可能有不少朋友遇到過這樣的問題:update或delete語句忘帶了where子句,或where子句精度不夠,執(zhí)行之后造成了嚴(yán)重的后果,
這種情況的數(shù)據(jù)恢復(fù)只能利用事務(wù)日志的備份來進(jìn)行,所以如果你的SQL沒有進(jìn)行相應(yīng)的全庫備份
或不能備份日志(truncate log on checkpoint選項(xiàng)為1),那么就無法進(jìn)行數(shù)據(jù)的恢復(fù)了,或者
只能恢復(fù)到最近一次的備份的數(shù)據(jù)了。
以下簡(jiǎn)單說明恢復(fù)數(shù)據(jù)方法:
1,如果誤操作之前存在一個(gè)全庫備份(或已有多個(gè)差異備份或增量備份),首先要做的事就是進(jìn)
進(jìn)行一次日志備份(如果為了不讓日志文件變大而置trunc. log on chkpt.選項(xiàng)為1那你就死翹翹了)
backup log dbName to disk='fileName'
2,恢復(fù)一個(gè)全庫備份,注意需要使用with norecovery,如果還有其他差異或增量備份,則逐個(gè)恢
復(fù)
restore database dbName from disk='fileName' with norecovery
3,恢復(fù)最后一個(gè)日志備份即剛做的日志備份,指定恢復(fù)時(shí)間點(diǎn)到誤操作之前的時(shí)刻
restore log dbName from disk='fileName'
with stopat='date_time'
以上這些操作都可以在SQL SERVER企業(yè)管理器里完成,難度不大。。。
當(dāng)然,如果誤操作是一些不記日志的操作比如truncate table,select into等操作,那么是無法利
用上述方法來恢復(fù)數(shù)據(jù)的...
posted on 2006-09-30 16:12 liaojiyong 閱讀(463) 評(píng)論(0) 編輯 收藏 所屬分類: MSSQL