使用多個處理程序群組
一般而言,只有一個 Extract 群組才能有效地從資料庫擷取。不過,視重做 (交易) 值或資料和作業類型而定,您可能會發現必須將一或多個 Extract 群組新增至組態。
同樣地,如果在協調模式中使用 Replicat,通常只需要一個 Replicat 群組即可將資料套用至目標資料庫。不過,即使在某些情況下,在協調模式中使用 Replicat,您也可能需要使用多個 Replicat 群組。如果您在傳統模式中使用 Replicat,且應用程式會產生大量交易量,則可能需要使用平行 Replicat 群組。
每個 Oracle GoldenGate 元件 (Extract、Trail、DISTPATH 和 Replicat) 都是一個獨立的模組,因此您可以根據需求來結合它們。您可以使用多個歷程檔和平行 Extract 和 Replicat 處理作業來處理大量交易量、提升效能、消除瓶頸、減少延遲,或隔離特定資料的處理。
下圖顯示設定 Oracle GoldenGate 以提升傳輸量速度及克服網路頻寬問題的一些方式。

影像標籤代表下列項目:
-
A :平行擷取會分割載入。例如,依綱要或隔離產生擷取的表格。
-
B :具有本機歷程檔的 Extract 可用於篩選、轉換以及網路誤差。
-
C :多個 DISTPATHS 可用於每個處理頻寬限制的網路,以啟用 TCP/IP 傳輸量。在其中劃分
TABLE參數陳述式。 -
D :平行 Replicat 可增加資料庫的傳輸量。一或多個 Replicat 可以讀取所有歷程檔。在其中劃分
MAP敘述句。
使用多個處理程序群組的準則
設定多個處理群組之前,請先複查下列準則,確定您的組態會產生預期的結果並維護資料完整性。
維護資料完整性
並非所有工作負載均可跨多個群組進行分割,但仍可保留原始交易原子性。您必須判斷一個群組中的物件是否將相依於任何其他群組、交易或其他群組中的物件。例如,無法輕易地分割工作負載定期更新主索引鍵的表格。DDL 複製 (如果資料庫支援) 在此模式中不可用,也無法使用以特定記錄為基礎的某些 SQLEXEC 或 EVENTACTIONS 功能。
如果您的表格沒有任何外來索引鍵相依性或主索引鍵更新,您便可以使用多個處理作業。將相關的 DML 放在相同的處理作業串流中,以確保資料完整性。
群組數目
可在系統上執行的並行 Extract 和 Replicat 處理作業群組數目取決於可用的系統記憶體大小。每個 Extract 和傳統 Replicat 處理作業需要大約 25-55 MB 的記憶體或更多記憶體,視交易大小和並行交易數目而定。Oracle GoldenGate 命令介面可完全支援每個 Oracle GoldenGate 執行處理最多 5,000 個並行 Extract 和 Replicat 群組 (組合)。在支援的層次,所有群組都可以使用 INFO 和 STATUS 命令等命令來完整控制與檢視。
除了支援的層級之外,不會顯示群組資訊,也可能會發生錯誤。Oracle GoldenGate 建議將 Extract 與 Replicat 群組 (組合) 的數目維持在更易於管理的層次 (例如 100 或更少),以有效地管理環境。群組數目上限是由 MAXGROUPS 參數控制,其預設值為 1000。
對於 Windows Server 環境,可執行的處理作業群組數目會與「非互動式」的 Windows 桌面堆集記憶體設定值緊密結合。Windows 桌面堆集的預設設定可能足以執行非常少量的處理群組,但當您接近 60 個以上的處理群組時,需要調整 ' 根據 Microsoft (Windows 桌面堆集記憶體) 的這項資訊,登錄中 SharedSection 欄位的非互動式值,或增加 Oracle GoldenGate 本位目錄的數目,並將想要的處理作業群組總數分散至這些本位目錄。注意:如需修改「Windows 桌面堆集」記憶體的詳細資訊,請複查下列 Oracle Knowledge Base 文件 (文件 ID 2056225.1)。
記憶體
每個執行中的 Oracle GoldenGate Extract 和 Replicat 處理作業,系統都必須要有足夠的交換空間。若要判斷必要的交換空間,請執行下列動作:
-
啟動一個 Extract 或 Replicat。
-
執行管理用戶端。
-
檢視報表檔案並尋找行
PROCESS VM AVAIL FROM OS (min)。 -
視需要將值進位至下一個完整 GB。例如,將 1.76GB 進位為 2 GB。
-
將該值乘以將執行的 Extract 和 Replicat 處理作業數目。結果就是需要的最大交換空間量
請參閱 Oracle GoldenGate 的參數與函數參照中的 CACHEMGR 參數,瞭解如何管理記憶體的詳細資訊。
隔離處理密集表格
您可以使用多個處理程序群組來支援特定種類的表格,這些表格往往會干擾正常處理,並造成在目標上建置延遲。舉例而言:
-
由於資料欄的資料類型、參數設定或執行 SQL 程序的緣故,擷取可能需要從資料庫執行擷取。當必須從資料庫擷取資料時,會影響 Extract 的效能。如果您在 Extract 參數檔中包含
STATOPTIONS REPORTFETCH參數,則可以從STATS EXTRACT命令取得擷取統計資料。接著,您可以將這些表格隔離到自己的 Extract 群組中,以假設可以維護異動完整性。 -
在經典模式中,Replicat 處理作業可能是效能瓶頸的來源,因為它是單一繫線的處理作業,使用一般 SQL,一次套用一個作業。即使啟用
BATCHSQL(請參閱 Parameters and Functions Reference for Oracle GoldenGate),Replicat 仍可能需要較長的時間來處理具有大型或長時間執行之交易、大量資料、非常大量變更的資料欄,以及 LOB 資料的表格。接著,您可以將這些表格隔離到自己的 Replicat 群組中,假設可以維護交易完整性。