1前言2實時備份容災原理
2.1Oracle事務日誌架構
2.2鏡像引擎架構
2.3複製流程
2.4實時事務捕捉及解析
2.5傳輸控制
2.6應用數據
3技術特性
浪擎·鏡像系統是業界成熟的應用系統實時備份容災解決方案,無需源和目標硬件規格或配置相同,具有準實時複製、系統和網絡資源佔用少、應用方式靈活等特點。
鏡像系統的Oracle鏡像通過數據庫邏輯層的複製技術,可以方便地實現Oracle數據庫的實時備份容災,嚴格保障事務的一致性和完整性,在實時備份、本地和異地容災領域具有非常大的優勢。目標數據庫系統處於運行狀態,無需進行恢復提高容災切換能力。
2實時備份容災原理
2.1Oracle事務日誌架構
Oracle通過事務日誌記錄所有事務和每個事務對數據庫所做的修改。其中記錄了對數據庫中的每一個變化,日誌包含的數據有已修改數據的前像(undo)和後像(redo)兩種類型。前像是操作執行前的數據複本;後像是操作執行後的數據複本。
Oracle使用預寫日誌技術。預寫日誌確保在相關的日誌記錄之後纔將數據修改寫入磁盤。在將任何數據寫入數據文件之前,都必須保證該數據對應的日誌已經寫入到日誌文件中, 一個事務提交的時候,必須保證該事務中產生的所有日誌記錄都已經寫入到日誌文件中。
日誌文件是按順序寫入的文件,塊大小一般爲字節512字節,日誌文件有一個文件頭信息。緊隨文件頭之後,是按照順序寫入的一個個重做記錄。
重做記錄(Redo Record)通常由redo record header信息和一組改變向量組成,是一個改變向量的集合,代表一個數據庫的變更(INSERT、UPDATE、DELETE等操作),構成數據庫變更的最小恢復單位。例如,一個Update的重做記錄包括相應的回滾段的改變向量和相應的數據塊的改變向量等。改變向量(Change Vector)表示對數據庫內某一個數據塊所做的一次變更。改變向量中包含了變更的數據塊的版本號、事務操作代碼、變更從屬數據塊的地址(DBA)以及更新後的數據。
基於上述事務日誌架構,Oracle數據庫鏡像通過實時分析日誌文件塊,並解析還原成數據庫記錄,再執行到目標數據庫,即可實現Oracle數據庫實時備份容災。
2.2鏡像引擎架構
Oracle數據庫鏡像引擎包括代理、鏡像服務器兩大部件。代理包含事務日誌捕獲器、事務日誌分析器、自適應數據字典、初步過濾器、傳輸控制器和任務隊列等;鏡像服務器包含接收隊列、事務隊列和Snapshot存儲、SQL應用機構等。
2.3複製流程
事務日誌實時捕獲器實時監控源Oracle Redo Log事務日誌文件和捕獲其變化數據;事務日誌分析器通過數據字典將日誌數據解析還原成數據庫記錄,並過濾不需要鏡像的用戶、表或其他數據庫對象;傳輸控制器從任務隊列中取出記錄數據傳輸至鏡像服務器。鏡像服務器接收隊列將記錄數據保存至事務隊列和Snapshot文件中;SQL應用機構掃描事務隊列,將提交事務應用到目標Oracle。
2.4實時事務捕捉及解析
Oracle鏡像中由捕獲進程來收集發生變化的數據,此進程的獨特之處在於它幾乎不對生產數據庫帶來任何開銷。
此捕獲過程中完成的操作爲:捕獲進程從Oracle redo log中讀取信息,因此複製過程不會給生產數據庫實例帶來性能問題。只有發生改變的數據被傳輸,而不是Redo Log中的全部信息,因此鏡像的網絡負載非常小,源數據庫不需要參與到數據捕獲和傳輸過程中
浪擎鏡像代理的捕獲進程不但可以讀取在線的Redo Log,而且可以讀取Archive Log。這種能力極大地增強了系統的冗餘功能。例如,如果捕獲進程由於某種原因被停止,在線日誌來不及分析就被覆蓋,當它重新啓動後可以從歸檔日誌中分析,數據同步不會受到影響,
捕獲進程駐留在源系統上,自動讀取Oracle的在線Redo Log。這種讀操作是從操作系統的角度來完成的,而不是通過數據庫。通過將Redo Log作爲獲取變化信息的源泉,可以完成數據的複製而不會給生產系統帶來額外的開銷。由於Oracle使用Redo Log進行系統恢復,因此Redo Log信息足夠,其數據格式也足夠穩定。
捕獲進程連續監控Redo Log用以捕捉變化信息。當Redo Log中出現一條新記錄時,事務日誌分析器判斷其是否屬於被複制對象,如果是,則爲該條記錄加入存儲隊列,存儲隊列存在於數據庫進程之外。發生改變的數據被立即處理並被髮送到目標系統中而不等待提交或回滾動作的完成,因爲等待提交或回滾完成將帶來延遲。當提交或回滾信息被寫入Redo Log時,它們也將被髮送到目標系統中,從而在目標系統中完成相對應的操作。
事務日誌分析器根據數據字典依次解析日誌文件塊,獲取該記錄的操作類型、涉及對象等,忽略不在數據字典中的對象並放棄該日誌記錄的後續解析。
當DDL語言更改了數據庫結構時,事務日誌分析器將通知數據字典使其動態調整對象結構。因此數據字典具備自適應能力,無需重新啓動即可解析後續日誌文件塊。
2.5傳輸控制
鏡像系統的傳輸協議基於TCP/IP實現。傳輸控制器記錄當前傳輸成功的事務點。當連接中斷等因素導致傳輸失敗,傳輸控制則停止傳輸工作,嘗試連接直至成功。
鏡像系統可創建多個通道進行並行傳輸,提高傳輸效率。
2.6應用數據
鏡像系統將客戶端傳送到信息轉化爲SQL語句,並按照在源數據庫中的Commit順序發送給目標Oracle數據庫執行。
3技術特性
1)目標數據庫狀態
目標Oracle數據庫處於運行狀態,能讀能寫,運行的目標系統保證了系統的一致性。
2)兩階段檢查(2PC)
在傳輸階段和數據庫記錄提交階段均設置成功檢查點。兩階段檢查可防止如網絡連接斷開、目標數據庫沒有運行、進程崩潰等意外因素髮生造成的事務丟失。
說明 | |
複製原理 |
捕獲Oracle的增量事務進行復制 |
複製粒度 |
數據庫記錄 |
複製DDL語言 |
複製數據庫定義語言,如:
1) 增加、刪除、修改表
2) 增加、刪除、修改字段定義
3) 增加、刪除、修改觸發器、存儲過程
… |
複製DML語言 |
複製應用程序提交的數據 |
保存事務日誌 |
系統保存捕獲的事務日誌 |
源與目標硬件規格要求 |
無需一致 |
網絡帶寬佔用 |
遠小於存儲層複製 |
複製時延 |
異步複製,秒級延時 |
複製最大距離 |
無限制 |
對系統性能的影響 |
源系統CPU佔用率不超過5% |
支持應用方式 |
一對一、一對多、多對一 |
事務完整性 |
完整、一致 |
目標應用系統狀態 |
運行狀態,能讀能寫 |
複製方向 |
單向,從源至目標 |
支持過濾 |
可設置過濾條件 |
支持版本 |
Oracle 8i/9i |
支持操作系統 |
Windows、Linux、AIX、Solaris、HPUX |
不支持字段 |
用戶自定義字段類型 |
Archive Log配置 |
無需開啓Archive Log |
4)其他功能
定時鏡像計劃,定時鏡像計劃,系統還提供便捷的定時鏡像計劃。鏡像計劃作業可配置信息字段:開始時間、結束時間和日期以及在這段時間之內的鏡像頻率、需要鏡像表。定時鏡像計劃通過exp/imp實現。
數據庫備份存儲,鏡像系統可將基準裝載或定時鏡像計劃使用的數據庫備份保存在磁盤上;系統採用時間戳命名備份文件。用戶可調節保存的備份版本數量或時間;用戶可手工通過imp命令裝載定時鏡像的數據。
基於Web的任務和狀態監控,鏡像系統提供基於WEB的監控、管理平臺,用戶可以通過瀏覽器即可管理全網的鏡像代理、鏡像服務器、傳輸備份策略以及任務監控。
鏡像任務監控是鏡像系統的一個組成部分,用來實時的監控信息包括:
ü 從主(源)服務器到備(目標)服務器數據複製的結果;
ü 鏡像客戶端和鏡像服務器的工作狀態。