在分析 Oracle 控制檔 Trace 文件時,常見 Controlfile Checkpointed at scn: 0x0000.0006c3dc 記錄。本文引用官方文檔 (DSI) 精確定義其含義與更新機制。
Controlfile Checkpoint at SCN: It is updated after every checkpoint (may it be tablespace, thread, or database) and is always greater than or equal to the database checkpoint when the database is open.
| 特性 | Database Checkpoint SCN | Controlfile Checkpoint SCN |
|---|---|---|
| 定義 | 資料庫層級全局 Checkpoint 位置 | 控制檔記錄的最新 Checkpoint 位置 (含所有類型) |
| 更新頻率 | CKPT 進程週期性 / Log Switch | **每次** Checkpoint (含表空間/線程) 後更新 |
| 典型值關係 | ≤ Controlfile Checkpoint SCN | ≥ Database Checkpoint SCN |
| 用途 | 實例恢復起始點、備份一致性點 | 控制檔持久化進度、多類型 Checkpoint 統一視圖 |
-- 查詢當前 Database Checkpoint SCN
SELECT checkpoint_change# FROM v$datafile_header;
-- 查詢控制檔記錄的 Checkpoint SCN (需 Dump 控制檔或查詢 X$ 表)
SELECT * FROM x$kcccp; -- 內部表,謹慎查詢
ALTER TABLESPACE BEGIN BACKUP 觸發表空間 Checkpoint,推進 Controlfile Checkpoint SCN,標記熱備份起始點。