基於Oracle資料庫的資料同步技術大體上可分為兩類:Oracle自己提供的資料同步技術和第三方廠商提供的資料同步技術。Oracle自己的同步技術有DataGuard,Streams,Advanced Replication和今年剛收購的一款叫做GoldenGate的資料同步軟體。第三方廠商的資料同步技術有Quest公司的SharePlex和DSG的RealSync。下面對這些技術逐一進行介紹。
一、DataGuard資料同步技術
DataGuard是Oracle資料庫內建的資料同步功能,基本原理是將記錄檔從原資料庫傳輸到目標資料庫,然後在目標資料庫上應用(Apply)這些記錄檔,從而使目標資料庫與來源資料庫保持同步。DataGuard提供了三種日誌傳輸(Redo Transport)方式,分別是ARCH傳輸、LGWR同步傳輸和LGWR非同步傳輸。在上述三種日誌傳輸方式的基礎上,提供了三種資料保護模式,即最大效能(Maximum Performance Mode)、最大保護(Maximum Protection Mode)和最大可用(Maximum Availability Mode),其中最大保護模式和最大可用模式要求日誌傳輸必須用LGWR同步傳輸方式,最大效能模式下可用任何一種日誌傳輸方式。
最大效能模式:這種模式是預設的資料保護模式,在不影響來源資料庫效能的條件下提供儘可能高的資料保護等級。在該種模式下,一旦日誌資料寫到來源資料庫的聯機記錄檔,事務即可提交,不必等待日誌寫到目標資料庫,如果網路頻寬充足,該種模式可提供類似於最大可用模式的資料保護等級。
最大保護模式:在這種模式下,日誌資料必須同時寫到來源資料庫的聯機記錄檔和至少一個目標庫的備用記錄檔(standby redo log),事務才能提交。這種模式可確保資料零丟失,但代價是來源資料庫的可用性,一旦日誌資料不能寫到至少一個目標庫的備用記錄檔(standby redo log),來源資料庫將會被關閉。這也是目前市場上唯一的一種可確保資料零丟失的資料同步解決方案。
最大可用模式:這種模式在不犧牲來源資料庫可用性的條件下提供了儘可能高的資料保護等級。與最大保護模式一樣,日誌資料需同時寫到來源資料庫的聯機記錄檔和至少一個目標庫的備用記錄檔(standby redo log),事務才能提交,與最大保護模式不同的是,如果日誌資料不能寫到至少一個目標庫的備用記錄檔(standby redo log),來源資料庫不會被關閉,而是運行在最大效能模式下,待故障解決並將延遲的日誌成功應用在目標庫上以後,來源資料庫將會自動回到最大可用模式下。
根據在目標庫上日誌應用(Log Apply)方式的不同,DataGuard可分為Physical Standby(Redo Apply)和Logical Standby(SQL Apply)兩種。
Physical Standby資料庫,在這種方式下,http://www.bkjia.com目標庫通過介質恢複的方式保持與來源資料庫同步,這種方式支援任何類型的資料對象和資料類型,一些對資料庫物理結構的操作如資料檔案的添加,刪除等也可支援。如果需要,Physical Standby資料庫可以唯讀方式開啟,用於報表查詢、資料校正等操作,待這些操作完成後再將資料庫置於日誌應用模式下。
Logical Standby資料庫,在這種方式下,目標庫處於開啟狀態,通過LogMiner挖掘從來源資料庫傳輸過來的日誌,構造成SQL語句,然後在目標庫上執行這些SQL,使之與來源資料庫保持同步。由於資料庫處於開啟狀態,因此可以在SQL Apply更新資料庫的同時將原來在來源資料庫上執行的一些查詢、報表等操作放到目標庫上來執行,以減輕來源資料庫的壓力,提高其效能。
DataGuard資料同步技術有以下優勢:
1) Oracle資料庫自身內建的功能,與每個Oracle新版本的新特性(如ASM)都完全相容,且不需要另外付費;
2) 組態管理較簡單,不需要熟悉其他第三方的軟體產品;
3) Physical Standby資料庫支援任何類型的資料對象和資料類型;
4) Logical Standby資料庫處於開啟狀態,可以在保持資料同步的同時執行查詢等操作;
5) 在最大保護模式下,可確保資料的零丟失;