程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 基於Oracle數據庫的數據同步技術

基於Oracle數據庫的數據同步技術

編輯:Oracle數據庫基礎
 

基於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數據庫,在這種方式下,目標庫通過介質恢復的方式保持與源數據庫同步,這種方式支持任何類型的數據對象和數據類型,一些對數據庫物理結構的操作如數據文件的添加,刪除等也可支持。如果需要,Physical Standby數據庫可以只讀方式打開,用於報表查詢、數據校驗等操作,待這些操作完成後再將數據庫置於日志應用模式下。

Logical Standby數據庫,在這種方式下,目標庫處於打開狀態,通過LogMiner挖掘從源數據庫傳輸過來的日志,構造成SQL語句,然後在目標庫上執行這些SQL,使之與源數據庫保持同步。由於數據庫處於打開狀態,因此可以在SQL Apply更新數據庫的同時將原來在源數據庫上執行的一些查詢、報表等操作放到目標庫上來執行,以減輕源數據庫的壓力,提高其性能。

DataGuard數據同步技術有以下優勢:

1) Oracle數據庫自身內置的功能,與每個Oracle新版本的新特性(如ASM)都完全兼容,且不需要另外付費;

2) 配置管理較簡單,不需要熟悉其他第三方的軟件產品;

3) Physical Standby數據庫支持任何類型的數據對象和數據類型;

4) Logical Standby數據庫處於打開狀態,可以在保持數據同步的同時執行查詢等操作;

5) 在最大保護模式下,可確保數據的零丟失;

 

DataGuard數據同步技術的劣勢體現在以下幾個方面:

1) 由於傳輸整個日志文件,因此需要較高的網絡傳輸帶寬;

2) Physical Standby數據庫雖然可以只讀方式打開,然後做些查詢、報表等操作,但需要停止應用日志,這將使目標庫與源數據不能保持同步,如果在此期間源數據庫發生故障,將延長切換的時間;

3) Logical Standby數據庫不能支持某些特定的數據對象和數據類型;

4) 不支持一對多復制,不支持雙向復制,因此無法應用於信息集成的場合;

5) 只能復制整個數據庫,不能選擇某個schema或表空間進行單獨復制;

6) 不支持異構的系統環境,需要相同的操作系統版本和數據庫版本;
DataGuard技術是Oracle推薦的用於高可用災難恢復環境的數據同步技術。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved