首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

善用交易記錄備份 還原 UPDATE/DELETE 誤刪資料

     編輯:關於SqlServer

前言

若執行 UPDATE 或 DELETE 未加 WHERE 子句、或條件不精確,導致大量資料異動,唯有透過交易記錄備份進行時間點還原。前提:資料庫必須為「完整」或「大量記錄」復原模式,且已有完整備份做基礎;若設定 trunc. log on checkpoint 導致記錄被截斷,則無法還原至誤操作前時間點。

還原步驟

  1. 立即備份尾端記錄
    BACKUP LOG dbName TO DISK = 'tail_log.bak'
    (若資料庫已設定自動截斷記錄,此步驟將失敗,資料將無法挽回。)
  2. 還原最近一次完整備份
    RESTORE DATABASE dbName FROM DISK = 'full.bak' WITH NORECOVERY
    若有差異/增量備份,依序還原,皆加 WITH NORECOVERY。
  3. 還原尾端記錄至誤操作前一刻
    RESTORE LOG dbName FROM DISK = 'tail_log.bak' WITH STOPAT = 'YYYY-MM-DD HH:MM:SS'
    指定 STOPAT 為誤操作發生前的時間點。

以上操作均可在 SQL Server 企業管理員圖形介面完成,難度不高。

限制

若誤操作為不記錄記錄的作業(如 TRUNCATE TABLE、SELECT INTO),上述方法無效,僅能回復至最近一次備份。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved