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

Oracle 資料庫 SCN 四大核心概念與恢復裁決矩陣實戰圖解

     編輯:Oracle 資料庫基礎

四大 SCN 概念速查表

SCN 名稱定義儲存位置查詢 SQL
系統檢查點 SCN全域檢查點完成後的 SCN控制檔SELECT checkpoint_change# FROM v$database;
資料檔檢查點 SCN每個資料檔對應的檢查點 SCN控制檔SELECT name, checkpoint_change# FROM v$datafile;
啟動 SCN資料檔檔頭記錄的檢查點 SCN,啟動時判斷是否需恢復資料檔檔頭SELECT name, checkpoint_change# FROM v$datafile_header;
終止 SCN資料檔關閉時的 SCN,正常關閉有值,異常為 NULL控制檔SELECT name, last_change# FROM v$datafile;

控制檔重建與 RESETLOGS 決策樹

-- 重建控制檔語法
CREATE CONTROLFILE [RESETLOGS | NORESETLOGS] ...
  • NORESETLOGS:Datafile Checkpoint 來自 Online Redo Log Current Log 頭。
  • RESETLOGS:Datafile Checkpoint 來自各資料檔檔頭;**拋棄所有歷史 Redo**,重置 Log Sequence 為 1,**必須配合不完全恢復或備份控制檔使用**,開庫後需立即完整備份。

六大啟動場景 SCN 關係與恢復動作對照表

場景SCN 關係介質恢復實例恢復RESETLOGS備註
1. 正常關閉System=Datafile=Start=Stop否否否最乾淨
2. 異常關閉System=Datafile=Start, Stop=NULL否是否自動前滾
3. 舊資料檔System=Datafile > Start是視 Stop SCN否需應用 Redo
4. 備份控制檔System=Datafile ≤ Start是視 Stop SCN是USING BACKUP CONTROLFILE
5. 重建 NORESETLOGSCurrent Log SCN = System=Datafile ≥ Start是否否Datafile CP 來自 Current Log
6. 重建 RESETLOGSSystem ≥ Datafile = Start是否是Datafile CP 來自檔頭,Log 已失效

實戰判斷流程

  1. 收集四大 SCN:v$database、v$datafile、v$datafile_header。
  2. 比對 System、Datafile、Start 三者是否相等 → 決定是否介質恢復。
  3. 檢查 Stop SCN 是否 NULL → 決定是否實例恢復。
  4. 若使用備份控制檔或重建 RESETLOGS → 強制 RESETLOGS 開庫。

結語

掌握四大 SCN 定義、儲存位置與六大場景裁決矩陣,是 DBA 從「會備份」進階到「懂恢復原理」的分水嶺。建議在測試環境模擬各場驗證,建立肌肉記憶。

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