前言:最近項目接近了尾聲,隨之而來的是維護問題,當然涉及到數據庫的數據維護,通過資料和實際操作整理有關誤操作後根據日志還原數據庫。
前提:①必須有數據庫的完整備份(做個備份計劃);②數據庫恢復模式是完整的(FULL)。
步驟:①發現誤操作時,記錄下時間點date並備份日志文件(備份腳本:USE master BACKUP LOG 數據庫 TO disk=N'G:cclog.bak' WITH NORECOVERY);
②還原數據庫(還原腳本:USE master RESTORE DATABASE 數據庫 FROM DISK = N'G:cc.bak' WITH NORECOVERY, REPLACE);
③還原日志(還原日志腳本:USE master RESTORE LOG 數據庫 FROM DISK = N'G:cclog.bak' WITH STOPAT = N'date' , RECOVERY);
④以上3步都操作成功後則還原成功,此時查看數據庫發現誤刪除操作的數據又回來了。
說明:①"NORECOVERY"是用來備份尾日志的,這樣備份日志的時候數據庫處於恢復狀態,別的進程就不能再訪問數據庫,日志就不會再增加了,這樣在還原的時候就可以正常恢復了。還原備份的時候如果想同時還原之後的日志,必須加上Norecovery才可以還原日志。
②時間點"date"格式為"M/D/YYYY H:m:s PM",是12小時制,例如:1/23/2014 1:17:10 PM表示2014年1月23號下午1點17分10秒,此時間點只要在誤操作前就可以。