Oracle block change tracking
Table of Contents
1 什么是塊追蹤
Block Change Tracking(塊跟蹤)主要用於RMAN備份的增量備份,將自從上一次備份以來數據塊的變化記錄到block change tracking文件中,相關后台進程CTWR(Change Tracking Writer), 主要目的是改善增量備份性能,RMAN可以不再掃描整個文件以查找變更數據。第一個0級的增量備份掃描整個datafile。 隨后的增量備份使用block changetracking file的信息,只掃描自上次備份以來被標記為change 的block,RMAN 不會對該文件進行備份。。從10g開始提供此功能。
Block change tracking 默認是禁用的,如果備份策略中使用incrementalbackup,那么建議開啟block change tracking。 啟用后,不需要其他的維護操作。
在備份期間,change tracking會維護已經標記為change 的block 的bitmap 信息。
trace 記錄保留
Oracle 會自動管理change tracking file的大小,只保留最近最近8次blockchange 的信息。 超過8次, 那么最前面的block bitmap 信息會被current change 覆蓋。要考慮change tracking file 的8次限制與備份策略的關系。 如果我們在0級備份之后又進行了7次不同的增量備份,那么這時block change tracking 就包含了8個bitmaps信息。 如果我們在進行1級的增量備份,那么此時的增量就不是最優的, 還會掃描整個data file。 因為我們之前0級的bitmap信息被我們當前的bitmap 信息覆蓋掉了,這樣就沒有了參考的依據。所以,兩次全量備份的時間間隔要控制在8天以內(包含)。
trace 文件存放
oracle 不建議使用RAWdevice來存放block tracking. 如果是RAC一定要放到共享存儲上。
trace 文件重置
- change tracking file 變為無效。
- RMAN 進行恢復時。
文件大小
- 與數據庫中的數據文件總大小相關,與數據量無關。每次遞增10M,初始化文件時,300G 數據文件會配置10M ,600G 數據文件會配置20m .1T 及以上數據文件以32M 為標准。
- 每個datafile,在tracking file里最少需要分配320k的空間,所以如果有大量的小data file, change tracking file 也會相對較大。
2 塊追蹤相關操作
-
開啟
alter database enable block change tracking using file '+DATA';
-
關閉
alter database disable block change tracking;
-
修改追蹤文件
在保留文件內容的前提下,修改文件的路徑與名稱,需要關閉實例。通過開啟與關閉 block_change_track的方式也可以修改文件路徑和名稱,但是會丟失文件中的內容。
- 關閉數據庫
- 操作系統全名移動文件到其他路徑,重命名等。
-
啟動數據庫實例到mount狀態,然后執行rename操作
alter database rename file '+DATA/BOSS/CHANGETRACKING/ctf.305.1029032819' to '+ARCH/BOSS/CHANGETRACKING/ctf.306.1040683553';
- 啟動數據庫
3 相關視圖
3.1 v$block_change_tracking
-
開啟前
select * from v$block_change_tracking; STATUS FILENAME BYTES ---------- ------------------------------ ---------- DISABLED
-
開啟后
SET LINES 32767 PAGES 5000 COL FILENAME FOR A60 select * from v$block_change_tracking; STATUS FILENAME BYTES CON_ID ---------- ------------------------------------------------------------ ---------- ---------- ENABLED +ARCH/BOSS/CHANGETRACKING/ctf.306.1040683553 32571392 0
Created: 2020-05-17 Sun 23:02
