用改變跟蹤技術加速Oracle遞增備份

  oracle 8i引進了恢復管理(rman),首次實現了真正的遞增備份。在rman之前,資料庫輸出也能夠遞增進行,但一旦某個表的任何一塊發生改變,整個表都需要重寫。rman遞增備份則僅需在給定的數據檔案中重寫被修改的部分,由此可大大節約了空間。

然而在版本10g之前,遞增備份需要對整個數據檔案進行掃描以確定哪些數據塊發生了改變。對於大型資料庫而言,儘管節約了空間,但其時間複雜度並不比完全備份好很多。

改變跟蹤技術(有時也稱塊改變跟蹤技術)通過在一個獨立的跟蹤檔案中記錄發生改變的數據塊以解決上述問題,這些改變由一個後台進程實時地寫入檔案。

最初的遞增備份仍需要進行一次完整的掃描。其後,備份時通過參考改變跟蹤檔案,可以直接訪問需要備份的塊。

為了創建並激活改變跟蹤檔案,首先確保資料庫是打開或可被訪問,然後運行如下資料庫改變(alter database)命令:


alter database
enable block change tracking
using file <pathname>;
 

為改變跟蹤檔案在作業系統中的存儲位置。(如果你激活了oracle管理檔案,則using從句是可選的,改變跟蹤檔案將創建於db_create_file_dest目錄下。)

無論該檔案的路徑位於哪個位置,其最初大小都是10mb,且根據需要每次增加10mb。

使用改變跟蹤技術將影響系統性能,因此除非你需要使用rman遞增備份功能,否則你最好將其設為不可用。