Oracle 10g 引入 區塊變更追蹤,讓 RMAN 增量備份無需掃描整個資料檔即可找出變更區塊,大幅縮短備份窗口。本文完整說明啟用/停用/查詢/故障處理四大操作,並解釋運作原理與最佳實務。
一、運作原理
- 啟用後,背景進程
CTWR (Change Tracking Writer) 將變更區塊位置記錄於二進位追蹤檔。
- RMAN 增量備份讀取追蹤檔,直接定位變更區塊,跳過未變更區塊,避免全表掃描。
- 追蹤檔大小約為資料庫大小的 1/30,000 ~ 1/100,000,極小。
二、核心指令
1. 啟用追蹤
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE '/u01/app/oracle/rman/change.log' REUSE;
REUSE:檔案存在時覆寫。
- 建議放置於快速儲存體(ASM / SSD / 獨立磁碟),避免 I/O 爭用。
2. 停用追蹤
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
3. 查詢狀態與檔案資訊
SELECT filename, status, bytes
FROM v$block_change_tracking;
回傳範例:
FILENAME STATUS BYTES
--------------------------------- -------- ----------
/u01/app/oracle/rman/change.log ENABLED 10485760
三、故障場景與應對
| 場景 | 影響 | 解決方案 |
| 追蹤檔遺失/損壞 | 後續增量備份退回全資料庫掃描(FULL SCAN) | 1. 停用追蹤 2. 刪除舊檔 3. 重新啟用追蹤 4. 必須執行一次 Level 0 完整備份 重建基準 |
| 資料庫異常關機 | 追蹤檔可能不一致 | 啟動時自動修復;若失敗同「遺失」處理 |
| Standby 資料庫 | Primary 啟用時 Standby 同步建立追蹤 | 無需額外操作;切換角色後自動生效 |
四、最佳實務清單
- 所有生產庫預設啟用:除非極少變更的唯讀/歸檔庫。
- 監控追蹤檔大小:納入日常巡檢,異常暴增可能代表大量 DML(如批次匯入),需評估備份窗口。
- 備份策略配合:Level 0 完整備份 + 每日 Level 1 增量;追蹤檔讓 Level 1 只讀取變更區塊,典型縮短 70%~90% 備份時間。
- 測試恢復:定期演練「追蹤檔遺失 → 重建 → Level 0 → Level 1」完整鏈路,確保 RTO 可控。
- 11g+ 新功能:
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DG_RMAN/change.log' 直接支援 ASM 路徑。
五、驗證增量備份確實使用追蹤
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
-- 查看輸出日誌
-- "using block change tracking file" 表示已使用
-- "full datafile scan" 表示未使用(回退掃描)
區塊變更追蹤是 Oracle 10g 以降「零成本、高收益」的備份加速功能,五分鐘配置、終身受益。將其納入資料庫建立標準清單,讓 RMAN 增量備份真正做到「只備份變更」。
- 上一篇文章: Windows 徹底卸載 Oracle 10g 13 步驟:從服務停止到登錄表清理的標準化流程
- 下一篇文章: Oracle 效能長青秘笈:分區表、索引重建、段碎片整理、自由區塊合併四大支柱
Copyright ©
程式碼之家 All Rights Reserved