極高風險操作,僅限實驗環境研究 SCN 機制,嚴禁生產庫嘗試! 透過十六進制編輯器修改控制檔中的 SCN,觀察資料庫啟動後 SCN 變化,驗證 SCN 存儲與推進邏輯。
SQL> SELECT checkpoint_change# FROM v$database; CHECKPOINT_CHANGE# ------------------ 271743118
SHUTDOWN ABORT。STARTUP MOUNT; RECOVER DATABASE; ALTER DATABASE OPEN;
SQL> SELECT checkpoint_change# FROM v$database; CHECKPOINT_CHANGE# ------------------ 57253932991028 -- 略大於修改值,符合 SCN 遞增邏輯
| SCN 類型 | 存儲位置 | 用途 |
|---|---|---|
| 啟動 SCN (Start SCN) | 每個數據檔檔頭 | Instance 啟動時比對,判斷是否需 Instance Recovery |
| 終止 SCN (Stop SCN) | 控制檔 | 檔案離線/唯讀狀態變更時記錄,正常狀態為 NULL |
| 檢查點 SCN (Checkpoint SCN) | 控制檔、數據檔頭 | 標記所有 dirty buffer 已刷盤的位點,恢復起點 |
| 系統 SCN (Current SCN) | 控制檔、SGA | 全資料庫單調遞增的邏輯時鐘 |