Oracle遞增備份如何確定哪些數據塊發生改變
我們大家都知道因為Oracle 8.0引進了相關的恢復管理,才實現真正意義上的Oracle遞增備份。RMAN之前,Oracle數據庫的輸出也是能相關的進行遞增,但是一旦某個表的任何一塊發生改變,整個表都需要重寫。RMAN遞增備份則僅需在給定的數據文件中重寫被修改的部分,由此可大大節約了空間。
然而在版本10g之前,Oracle遞增備份需要對整個數據文件進行掃描以確定哪些數據塊發生了改變。對于大型數據庫而言,盡管節約了空間,但其時間復雜度并不比完全備份好很多。
Oracle 8.0引進了恢復管理(RMAN),首次實現了真正的遞增備份。在RMAN之前,數據庫輸出也能夠遞增進行,但一旦某個表的任何一塊發生改變,整個表都需要重寫。RMAN遞增備份則僅需在給定的數據文件中重寫被修改的部分,由此可大大節約了空間。
然而在版本10g之前,遞增備份需要對整個數據文件進行掃描以確定哪些數據塊發生了改變。對于大型數據庫而言,盡管節約了空間,但其時間復雜度并不比完全備份好很多。
改變跟蹤技術(有時也稱塊改變跟蹤技術)通過在一個獨立的跟蹤文件中記錄發生改變的數據塊以解決上述問題,這些改變由一個后臺進程實時地寫入文件。
最初的Oracle遞增備份仍需要進行一次完整的掃描。其后,備份時通過參考改變跟蹤文件,可以直接訪問需要備份的塊。
為了創建并激活改變跟蹤文件,首先確保數據庫是打開或可被訪問,然后運行如下數據庫改變(ALTER DATABASE)命令:
- ALTER DATABASE
- ENABLE BLOCK CHANGE TRACKING
- USING FILE ;
為改變跟蹤文件在操作系統中的存儲位置。(如果你激活了Oracle管理文件,則USING從句是可選的,改變跟蹤文件將創建于DB_CREATE_FILE_DEST目錄下。)
無論該文件的路徑位于哪個位置,其最初大小都是10MB,且根據需要每次增加10MB。
使用改變跟蹤技術將影響系統性能,因此除非你需要使用RMAN遞增備份功能,否則你最好將其設為不可用(缺省設置)。
文章出自:http://www.programbbs.com/doc/class10-2.htm
【編輯推薦】
- Oracle 10g如何用FIRALL來處理非連續數組
- Oracle開發面試題集錦
- Oracle 調優的最終的目標是什么
- JDBC連接Oracle數據庫10大技巧描述
- Oracle PL/SQL基礎知識及其相關概念