rman 的增量備份
差異增量(Differential)
備份低級別或者相同級別備份以來變化的所有數據塊,顧名思議,也就是要備前期備份以來的差異數據塊
累積增量(Cumulative)
是備份n-1級別(上級)或更低級別以來變化的所有數據塊

使用增量備份時,如何縮短RMAN 備份時間
Block ChangeTracking
Block ChangeTracking 是Oracle 10g里推出的特性。 Block change tracking 會記錄data file里每個block的update 信息,這些tracking信息保存在tracking 文件里。當啟動block change tracking 后,RMAN 使用trackingfile里的信息,只讀取改變的block信息,而不用在對整個data file進行掃描,從而提高了RMAN 備份的性能。
block change tracking file 是bitmap file。
默認是禁用Block change tracking的,如果使用增量備份,那么建議開啟block change tracking。啟用BCT后,不需要其他的維護操作。
第一個0級的增量備份掃描整個datafile。隨后的增量備份使用block change tracking file的信息,只掃描自上次備份以來被標記為change 的block。
block change tracking 文件是針對整個數據庫,默認情況下,change tracking file 會作為Oracle managed file,在DB_CREATE_FILE_DEST指定的目錄下創建。可以放到放到其他的目錄。 Oracle 不建議使用rawdevice 來存放change tracking file.如果是RAC 環境,change tracking file 必須放在共享設備上。
RMAN 不支持對change tracking file 的備份與恢復。當數據檢測到change tracking file 無效時,就會reset changetracking file。如果我們還原了數據庫,那么數據庫也會reset block change tracking,并從新進行tracking。
block change tracking file的大小和數據庫的大小及 enabled threads of redo 的數量有關系,tracking file 的大小會根據數據庫大小的變化和變化。和更新頻率沒有關系。典型的,單實例下大約DB的1/30000的block 會把track。如果是RAC 環境,在乘以threads。
以下因素會導致file 超過估計值:
(1)為了避免tracking file 占用太多的空間,初始值是10M,然后每次增加10M,如果數據庫接近300G,那么trackingfile 不能小于10M,如果接近600G,不能小于20M。
(2)每個datafile,在tracking file里最少需要分配320k的空間,所以如果有大量的小data file, change tracking file 也會相對較大。
啟用Block Change Tracking
數據庫在open 或者 mounted 狀態都可以啟用block change tracking.
1.檢查DB_CREATE_FILE_DEST參數配置,
DB_CREATE_FILE_DEST 參數用來指定默認的Oracle Managed datafiles 的位置。
在沒有指定DB_CREATE_ONLINE_LOG_DEST_n參數的情況下,這個參數也可以用來作為
Oracle-managed control files和online redo logs的默認位置。

SYS@hyyk> show parameter db_create_file_dest
如果使用文件系統目錄作為默認的位置,那么這個目錄必須是已經存在的,Oracle 不會創建這個目錄。并且Oracle對這個目錄有足有的操作的權限。使用OMF管理時,在這個目錄下生成文件每個名稱都是唯一的,這個文件也稱為Oracle-Manager file。
2.設置DB_CREATE_FILE_DEST
SYS@hyyk> alter system set db_create_file_dest = '/u01/app/oracle/oradata/hyyk/' scope=both sid='*';
3.驗證該參數
SYS@hyyk> show parameter db_create_file_dest
4.啟用Block change tracking
SYS@hyyk> alter database enable block change tracking;
5.可以使用v$block_change_tracking 視圖查看tracking 啟動情況。
col status format a8
col filename format a60
SYS@hyyk> select status, filename from v$block_change_tracking;
禁用Block Change Tracking
SQL> alter database disable block change tracking;
更改change tracking
可以使用alter database rename 語句來修改change tracking file 文件的位置,該命令會更新控制文件里的信息,命令必須在mount 下執行,如果DB 不能shutdown,那么可以先disable,然后指定新的位置在啟動,但是這樣會丟失以前在tracking file里的數據。
1. 查看當前文件的位置
SQL> select status, filename from v$block_change_tracking;
2.如果可能,關閉數據庫
SQL> shutdown immediate
如果可以關閉數據庫,跳過如下的sql 繼續操作
如果不能關閉,就執行如下的SQL并忽略第3步以后的步驟。
SQL> alter database disable block changetracking;
SQL> alter database enable block change tracking using file 'new_location';
注意:這里是禁用bct,在啟動時更改bct位置,這種情況,會丟失所有的bct 文件的內容。在下次執行0級增量備份時會掃描整個數據文件。
3.在操作系統級別移動change tracking file文件到新的位置。這個是在關閉數據庫的前提下進行。
mv /u01/app/oracle/oradata/hyyk/block_change_tracking.f /u01/ block_change_tracking.f
4. 啟動數據庫到mount狀態,移動change tracking 文件位置。
SQL> startup mount
SQL> alter database rename file '/u01/app/oracle/oradata/hyyk/block_change_tracking.f' to '/u01/ block_change_tracking.f';.
5.打開數據庫,驗證
SQL> alter database open;
SQL> select status, filename from v$block_change_tracking;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。