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

Oracle 備份與恢復核心觀念:實例恢復 vs 介質恢復、完整 vs 不完整恢復詳解

     編輯:Oracle 資料庫基礎

資料庫恢復兩大分類

故障發生後,重構完整資料庫的過程稱為「資料庫恢復」,分為 復原 與 恢復 兩階段。

1. 實例故障一致性恢復

觸發條件:掉電、背景進程異常終止、SHUTDOWN ABORT。
特點:Oracle 下次啟動時自動執行,無需 DBA 介入。

四大步驟:

  1. 前滾:讀取線上重做日志,重演已提交但未寫入資料檔的變更(含回滾段)。
  2. 回滾:利用重做日志重建的回滾段,撤銷未提交交易。
  3. 釋放資源:釋放故障時持有的鎖與資源。
  4. 解決分散式交易:處理處於「準備階段」的懸掛分散式交易。

2. 介質故障/檔案錯誤不一致恢復

觸發條件:資料檔/控制檔/重做日志檔損壞、遺失、誤刪。
特點:資料庫處於不一致狀態,需 DBA 手動介入,視備份策略與歸檔模式分兩類:

類型前提條件適用場景
完整介質恢復有備份 + 歸檔模式 + 可用歸檔日志恢復所有遺失變更,資料零損失
不完整介質恢復缺少歸檔日志 / 不需恢復到最新恢復至某時間點/SCN/取消點,接受部分資料遺失

不完整恢復三種形式

  • 基於 CANCEL:歸檔日志損壞,手動控制在可用日志結束點停止。
  • 基於 TIME:恢復至指定時間點(如誤刪表前)。
  • 基於 SCN:恢復至指定系統變更號(精確到交易提交點)。

關鍵觀念釐清

  • Restore (復原):從備份還原檔案到磁碟。
  • Recover (恢復):應用 Redo/Archive Log 讓資料前滾到一致狀態。
  • 兩者常搭配執行:RESTORE DATABASE; RECOVER DATABASE;

實務建議

  1. 生產環境強制啟用歸檔模式,配合 RMAN 定期完整/增量備份。
  2. 定期演練恢復流程,驗證備份可用性與 RTO/RPO。
  3. 善用 Flashback Database/Table/Query 替代傳統不完整恢復,縮短 RTO。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved