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

SQL Server 時間點還原操作指南:利用交易記錄備份復原誤刪資料

     編輯:關於SqlServer

適用情境

執行 UPDATE 或 DELETE 忘記 WHERE 子句,或條件不精確導致資料誤損。前提:資料庫採用完整復原模式,且有近期的完整備份與交易記錄備份。

還原步驟

  1. 立即備份目前的交易記錄 (防止後續操作覆寫關鍵記錄):
    BACKUP LOG DatabaseName TO DISK = 'Path\LogBackup_AfterMistake.trn'
  2. 還原完整備份,指定 WITH NORECOVERY 保持資料庫處於還原狀態:
    RESTORE DATABASE DatabaseName FROM DISK = 'Path\FullBackup.bak' WITH NORECOVERY
  3. 依序還原差異/記錄備份 (若有),最後還原步驟 1 的記錄備份,指定 STOPAT 至誤操作前的時間點:
    RESTORE LOG DatabaseName FROM DISK = 'Path\LogBackup_AfterMistake.trn'
    WITH STOPAT = 'YYYY-MM-DD HH:MM:SS', NORECOVERY
  4. 完成還原並上線:
    RESTORE DATABASE DatabaseName WITH RECOVERY

企業管理器圖形化操作

所有上述指令均可在 SQL Server 企業管理器「還原資料庫」精靈中完成:選取備份裝置、指定時間點、勾選「保持資料庫不可運作狀態」等。

無法復原的操作

  • TRUNCATE TABLE:非記錄操作,無法時間點還原。
  • SELECT INTO:最小記錄操作,同樣無法精確還原。
  • 資料庫為簡單復原模式:無交易記錄備份,僅能還原至最近一次完整/差異備份點。

最佳實務建議

  • 生產環境務必使用完整復原模式並排程定期記錄備份 (如每 15-60 分鐘)。
  • 誤操作發生後立即停止所有寫入活動,優先備份尾部記錄。
  • 定期演練還原流程,驗證備份檔案可用性與 RTO/RPO 指標。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved