本章包含的信息可幫助您確定適用於數據庫環境的捕獲和應用模式。
主題:
- Oracle GoldenGate捕獲和應用進程概述
- 決定使用哪種捕捉方法
- 決定使用哪種應用方法
- 同時使用不同的捕捉和應用模式
- 切換到不同的過程模式
4.1 Oracle GoldenGate捕獲和應用進程概述
Oracle GoldenGate捕獲過程稱為“提取”。 Extract進程的每個實例都稱為一個組,其中包括進程本身和支持它的關聯文件。
建議在源系統上使用額外的Extract進程(稱為數據泵),以便捕獲的數據可以在本地保存到一系列稱為蹤跡的文件中。數據泵不捕獲數據,而是讀取本地路徑並通過網絡將數據傳播到目標。
Oracle GoldenGate應用程序稱為Replicat。 Replicat進程的每個實例都稱為一個組,其中包括進程本身和支持它的關聯文件。 Replicat讀取發送到本地存儲的數據(稱為蹤跡),並將其應用到目標數據庫。
圖4-1說明了基本的Oracle GoldenGate進程配置。有關Oracle GoldenGate進程的更多信息,請參閱管理Oracle GoldenGate。
Figure 4-1 The Basic Configuration
Oracle數據庫必須處於ARCHIVELOG模式,以便Extract可以處理日志文件。
4.2 決定使用哪種捕捉方法
對於Oracle源數據庫,您可以運行經典捕捉或集成捕捉模式下的提取。您使用的方法決定了如何配置Oracle GoldenGate進程,並取決於以下因素:
- 涉及的數據類型
- 數據庫配置
- Oracle數據庫的版本
以下說明這些模式以及每種模式支持的數據庫版本。
- 關於Classic Capture
- 關於集成捕獲
4.2.1關於經典捕捉
在傳統捕獲模式下,Oracle GoldenGate Extract進程會捕獲源系統上的Oracle重做或歸檔日志文件或備用系統上出廠的歸檔日志中的數據更改。圖4-2顯示了經典捕捉模式下的提取配置。
Figure 4-2 Classic Capture
經典捕獲完全支持大多數Oracle數據類型,對復雜數據類型提供有限的支持。經典捕獲是最初的Oracle GoldenGate捕獲方法。對於Oracle GoldenGate支持的任何源Oracle RDBMS,您可以使用經典捕獲,但多租戶容器數據庫除外。
您可以使用經典捕捉來支持以下內容:
- UDTs, VARRAYs,
NOLOGGING
LOBs 其源數據庫兼容性設置在11.2.0.0.0以下。 - 透明數據加密支持,源數據庫兼容性設置在11.0.0.0.0以下。
- SECUREFILE LOB支持將源數據庫兼容性設置為低於11.2.0.0.0。
- NOLOGGING LOB支持,源數據庫兼容性設置在11.2.0.0.0以下。
有關更多信息,請參閱支持的Oracle數據類型和每個捕獲模式的對象摘要。
4.2.2關於集成捕獲
在集成捕獲模式下,Oracle GoldenGate Extract進程直接與數據庫logmining server交互,以邏輯更改記錄(LCR)的形式接收數據更改。圖4-3顯示了集成捕獲模式下的提取配置。
Figure 4-3 Integrated Capture
與經典捕捉相比,集成捕捉支持更多數據和存儲類型,並且支持更加透明。有關更多信息,請參閱支持的Oracle數據類型和每個捕獲模式的對象摘要。
以下是集成捕獲的一些額外好處:
- 由於集成捕獲與數據庫完全集成,因此不需要其他設置即可與Oracle RAC,ASM和TDE配合使用。
- 集成捕獲使用數據庫logmining server來訪問Oracle重做流,其優點是能夠在歸檔日志的不同副本或聯機日志的不同鏡像版本之間自動切換。因此,集成捕獲可以透明地處理由於磁盤損壞,硬件故障或操作員錯誤而導致的日志文件缺失(假設存檔和在線日志的額外副本可用)
- 集成捕捉可以更快地過濾表格。
- 集成捕捉可以更有效地處理時間點恢復和RAC集成。
- 集成捕捉功能集成日志管理。 Oracle Recovery Manager(RMAN)會自動保留Extract所需的歸檔日志。
- 集成捕獲是支持從多租戶容器數據庫捕獲的唯一模式。 One Extract可以挖掘多租戶容器數據庫中的多個可插拔數據庫。
- 對於版本11.2.0.4源數據庫及更高版本(源兼容性設置為11.2.0.4或更高版本),DDL的捕獲由logmining server異步執行,並且不需要安裝特殊的觸發器,表或其他數據庫對象。可以在不停止用戶應用程序的情況下執行Oracle GoldenGate升級。當Extract處於集成模式且Oracle 11g源數據庫早於版本11.2.0.4時,需要使用DDL觸發器和支持對象。
- 由於集成捕獲和集成應用都是數據庫對象,因此對象的命名遵循與其他Oracle數據庫對象相同的規則,請參閱管理Oracle GoldenGate中的指定Oracle GoldenGate輸入中的對象名稱。
- 集成捕獲支持的數據庫版本
- 集成捕捉部署選項
4.2.2.1集成捕獲支持的數據庫版本
數據庫版本通過集成捕獲來確定可用的數據類型支持:
- Full support: 要支持所有Oracle數據和存儲類型,源數據庫的兼容性設置必須至少為11.2.0.3,集成Extract 11.2.x(My Oracle Support文檔ID 1557031.1)的11.2.0.3數據庫特定捆綁軟件修補程序。要從My Oracle Support獲得此修補程序,請轉到:
https://support.oracle.com/oip/faces/secure/km/DocumentDisplay.jspx?id=1557031.1
- 為了在不安裝DDL支持對象的情況下支持DDL捕獲,源數據庫必須至少為Oracle 11.2.0.4或更高版本。對於早期的數據庫版本,需要DDL支持對象,請參閱安裝基於觸發器的DDL捕獲。
- Limited support: 對於兼容性小於11.2.0.3的源數據庫,您可以在11.2.0.3下游挖掘數據庫上使用集成捕獲,但在此模式下,SECUREFILE LOB,XML列,透明數據加密和UDT基於數據庫版本和兼容性。下游采礦數據庫必須具有適用於Integrated Extract 11.2.x(Doc ID 1557031.1)的11.2.0.3數據庫特定捆綁軟件修補程序。請參閱集成捕捉部署選項。下游采礦數據庫必須與正在開采的源數據庫版本相同(或更高)的數據庫版本(最低11.2.0.3)。
要了解不同RDBMS版本之間數據類型支持的差異,請參閱支持的Oracle數據類型和每個捕獲模式的對象摘要。
4.2.2.2集成捕捉部署選項
本節介紹集成捕獲的部署選項,並取決於部署挖掘數據庫的位置。挖掘數據庫是部署登錄服務器的數據庫。
- Local deployment: 對於本地部署,源數據庫和挖掘數據庫是相同的。源數據庫是要挖掘重做流以捕獲更改的數據庫,以及部署登錄服務器的位置。由於集成捕獲與數據庫完全集成,此模式不需要任何特殊的數據庫設置。
- Downstream deployment: 在下游部署中,源數據庫和挖掘數據庫是不同的數據庫。您在下游數據庫創建logmining server。您可以在源數據庫中配置重做傳輸,以將重做日志傳送到下游挖掘數據庫以在該位置進行捕獲。使用下游挖掘服務器進行捕獲可能需要從生產服務器卸載捕獲開銷和其他任何來自轉換或其他處理的開銷,但需要日志傳送和其他配置。
在使用下游采礦配置時,源數據庫和采礦數據庫必須具有相同的平台。例如,如果源數據庫在Windows 64位上運行,則下游數據庫也必須位於Windows 64位平台上。請參閱配置下游挖掘數據庫和示例下游挖掘配置以配置下游挖掘數據庫。
- Downstream Oracle Active DataGuard deployment:您可以使用FETCHUSERID或FETCHUSERIDALIAS參數從Oracle Active Data Guard(ADG)獲取配置userid / pwd @ adg。
從ADG備用數據庫執行提取操作與從ADG備用數據庫進行捕獲不同。實際的集成提取組件需要在READ / WRITE數據庫中運行。這兩個參數只控制從哪個數據庫獲取數據。
- Downstream sourceless Extract deployment:在Extract參數文件中,將USERID參數替換為NOUSERID。您必須使用TRANLOGOPTIONS MININGUSER。此部署要求源數據庫REDO與大於或等於11.2.0.4的Oracle GoldenGate版本兼容。 Extract從下游采礦數據庫獲取所有必需的信息。提取不依賴於到源數據庫的任何連接。源數據庫可以關閉並重新啟動而不影響提取。
如果遇到需要從源數據庫提取數據的重做更改,則抽取將異常終止。
此方法也可以與FETCHUSERID和FETCHUSERIDALIAS一起用於從ADG待機中提取。
4.3 決定使用哪種應用方法
Replicat進程負責將復制的數據應用到Oracle目標數據庫。有關Oracle GoldenGate進程的更多信息,請參閱管理Oracle GoldenGate。
對於Oracle目標數據庫,可以以非集成模式或集成模式運行Replicat。以下說明這些模式以及每種模式支持的數據庫版本。
- 非集成Replicat
- 集成Replicat
4.3.1 關於非集成Replicat
在非集成模式下,Replicat進程使用標准SQL將數據直接應用於目標表。在這種模式下,Replicat的操作如下:
- 閱讀Oracle GoldenGate跟蹤。
- 執行數據過濾,映射和轉換。
- 構造代表源數據庫DML或DDL事務的SQL語句(按提交順序)
- 通過Oracle調用接口(OCI)將SQL應用於目標。
圖4-4說明了非集成模式下Replicat的配置。
Figure 4-4 Nonintegrated Replicat
在以下情況下使用非集成的Replicat:
- 目標Oracle數據庫是早於Oracle 11.2.0.4的版本。
- 您希望大量使用集成Replicat模式中不支持的功能,請參閱關於Integrated Replicat。
通過使用協調的Replicat配置,您可以與非集成Replicat並行應用事務。請參閱管理Oracle GoldenGate以獲取更多信息。
4.3.2 關於集成復制
在集成模式下,Replicat進程利用Oracle數據庫中可用的應用處理功能。在這種模式下,Replicat的操作如下:
- 讀取Oracle GoldenGate trail文件
- 執行數據過濾,映射和轉換
- 構造表示源數據庫DML事務的邏輯更改記錄(LCR)(按落實順序)。 DDL直接由Replicat應用。
- 通過輕量級流媒體接口,將目標數據庫中的后台進程附加到數據庫入站服務器。
- 將LCR傳輸到入站服務器,該入站服務器將數據應用於目標數據庫。
圖4-5顯示了集成模式下Replicat的配置。
Figure 4-5 Integrated Replicat
在單個Replicat配置中,稱為應用服務器的多個入站服務器子進程並行應用事務,同時保留原始事務的原子性。您可以根據目標系統在配置Replicat過程時或根據需要動態增加此並行度。圖4-6說明了使用兩個並行應用程序服務器配置的集成Replicat。
Figure 4-6 Integrated Replicat with Two Parallel Apply Servers
Integrated Replicat異步應用事務。不具有相互依賴性的事務可以安全地執行並按順序執行以實現快速吞吐量。具有依賴性的事務保證以與源上相同的順序應用。
入站服務器中的讀取器進程根據目標數據庫中定義的約束(主鍵,唯一鍵,外鍵)計算工作負載中事務之間的依賴關系。障礙事務和DDL操作也是自動管理的。協調員進程協調多個事務並在應用服務器之間維護順序。
如果入站服務器不支持配置的功能或列類型,則Replicat會脫離入站服務器,等待入站服務器完成其隊列中的事務,然后通過OCI以直接應用模式將事務應用於數據庫。應用直接事務后,Replicat在集成模式下恢復處理。
Replicat在直接模式下應用以下功能:
- DDL操作
- 序列操作
- TABLE或MAP參數中的SQLEXEC參數
- EVENTACTIONS處理
- UDT請注意,如果提取使用USENATIVEOBJSUPPORT捕獲UDT,則集成的Replicat將將其應用於入站服務器,否則將由Replicat直接處理。
由於交易是以直接應用模式串行應用的,因此大量使用此類操作可能會降低集成復制模式的性能。當大多數應用處理可以在集成模式下執行時,Integrated Replicat表現最佳,請參閱實例化后的監視和控制處理。
用戶出口在集成模式下執行。但是,如果退出代碼取決於復制流中的數據,則用戶出口可能會產生意外的結果。
4.3.2.1集成Replicat的好處
以下是使用集成Replicat與非集成Replicat的好處。
- Integrated Replicat可以在並行應用進程中自動分配繁重的工作負載,並行應用多個事務,同時保留源事務的完整性和原子性。應用進程的最小和最大數量都可以使用PARALLELISM和MAX_PARALLELISM參數進行配置。當工作負載增加時,Replicat會自動添加額外的服務器,然后在工作負載減輕時再次向下調整。
- 集成Replicat需要最少的工作來配置。所有工作都在一個Replicat參數文件中配置,無需配置范圍分區。
- 通過Replicat和入站服務器之間的輕量級應用程序編程接口(API)為集成的Replicat啟用高性能應用流式傳輸。
- 障礙事務由多個服務器應用程序中的集成復制器進行協調。
- DDL操作作為直接事務進行處理,通過在執行DDL之前等待服務器處理完成來強制執行屏障。
- 集成Replicat以無縫方式處理瞬時復制主鍵更新。
- Integrated Replicat可與單個或可插拔數據庫配合使用
4.3.2.2 集成Replicat的要求
要使用集成的Replicat,必須滿足以下條件。
- 目標Oracle數據庫必須是Oracle 11.2.0.4或更高版本。
- 必須在源數據庫上啟用補充日志記錄,以支持計算表之間的依賴關系並調度目標上的並發事務。啟用所需日志記錄的說明位於配置日志記錄屬性中。此日志記錄可以在任何時候啟用Oracle GoldenGate進程,但在此之前啟用。
- 集成的Parallel Replicat在Oracle Database 12.2.0.1及更高版本上受支持。
4.4 同時使用不同的捕捉和應用模式
您可以一起使用以下捕捉和應用模式:
- 經典捕獲(Oracle或非Oracle源)和非集成Replicat
- 經典捕捉(Oracle或非Oracle源)和集成的Replicat
- 集成捕獲和非集成Replicat
- 集成捕獲和集成Replicat
您可以在同一個源Oracle GoldenGate實例內同時使用集成捕獲和經典捕獲,並且可以在同一個目標Oracle GoldenGate實例內同時使用集成的Replicat和非集成Replicat。此配置需要將對象仔細放置在相應的過程組中,因為在經典和集成捕捉模式之間以及在非集成和集成復制模式之間沒有DDL或DML的協調。每個提取組必須根據表數據類型和屬性處理適合處理模式的對象。一個Extract中沒有對象可以對另一個Extract中的對象具有DML或DDL依賴關系。 Replicat配置必須應用相同類型的隔離。
推薦的Oracle GoldenGate配置(如果受Oracle版本支持)將在Oracle目標上使用一個Oracle源上的集成捕獲和每個源數據庫上的一個集成Replicat。集成捕捉比傳統捕捉更全面地支持某些數據類型。一個集成的Replicat配置通過入站服務器支持所有Oracle數據類型,或通過在必要時切換為直接應用程序來支持所有Oracle數據類型,並保持源事務完整性。您可以根據需要將並行度設置調整為所需的應用性能級別。
如果目標數據庫是不支持集成Replicat的Oracle版本,或者它是非Oracle數據庫,則可以使用協調的Replicat配置。請參閱管理Oracle GoldenGate以獲取更多信息。
4.5 切換到不同的過程模式
您可以在過程模式之間切換。例如,您可以從經典捕捉切換到集成捕捉,或從集成捕捉切換到經典捕捉。有關說明,請參閱在管理Oracle GoldenGate中執行管理操作。
參考資料
https://docs.oracle.com/goldengate/c1230/gg-winux/GGODB/choosing-capture-and-apply-modes.htm#GGODB-GUID-46EEC8E7-F1A3-41F6-ABEE-706B48DC338F