關於 Oracle GoldenGate 中的資料複製元件
資料複製組態類型
Oracle GoldenGate 可以針對下列目的進行設定:
-
從一個資料庫靜態擷取資料記錄,並將這些記錄載入另一個資料庫或資料來源。
-
交易資料處理語言 (DML) 作業和資料定義語言 (DDL) 變更 (支援的資料庫) 的持續擷取和複寫,讓來源和目標資料保持一致。
-
使用 Oracle GoldenGate 分散式應用程式和分析,從支援的資料庫來源擷取資料,以及複製至大數據和檔案目標。
Oracle GoldenGate 處理作業
擷取
Extract 處理作業設定為在來源端點上執行,此來源端點需要擷取已確認的資料庫交易。此處理作業是 Oracle GoldenGate 的擷取或資料擷取機制。
您可以設定「擷取」處理,以從下列資料來源類型擷取資料:
-
來源表格:此來源類型用於初始載入。
-
資料庫復原日誌或交易日誌:從日誌擷取時,實際的方法會根據資料庫類型而有所不同。此來源類型的範例為 Oracle AI Database 重做日誌。
如需詳細資訊,請參閱關於擷取。
Replicat
Replicat 處理作業會將歷程檔的更新套用至目標資料庫。它會讀取目標資料庫上的歷程檔、重新建構 DML 或 DDL 作業,然後將它們套用到目標資料庫。
Replicat 處理作業使用動態 SQL 來編譯 SQL 敘述句一次,然後以不同的連結變數執行多次。您可以設定 Replicat 處理作業,讓它在將複製的作業套用至目標資料庫之前,等待一段特定的時間。
例如,延遲可能希望避免傳輸錯誤的 SQL、控制資料到達不同時區,或允許時間發生其他計劃事件。
對於 Oracle GoldenGate 的兩個常見使用案例,Replicat 函數如下所示:
-
初始載入:當您設定 Oracle GoldenGate 進行初始載入時,Replicat 處理作業會將靜態資料複本套用至目標物件,或將資料遞送至高速大量載入公用程式。
-
變更同步化:當您設定 Oracle GoldenGate 讓目標資料庫與來源資料庫保持同步時,Replicat 處理作業會根據資料庫類型,使用原生資料庫介面或 ODBC 將來源作業套用至目標物件。
您可以同時使用一或多個 Extract 處理作業來設定多個 Replicat 處理作業,以增加傳輸量。為了保持資料完整性,每一組程序會處理一組不同的物件。若要區分 Replicat 處理作業,您可以建立含有唯一群組名稱的 Replicat 群組。
如需瞭解不同類型的 Replicat 模式,請參閱關於 Replicat 。
資料傳輸的分配路徑
分送路徑或 DISTPATH 定義端點之間的歷程檔路徑。分送路徑是從「分送服務」設定。若要深入瞭解,請參閱配銷服務。
目標起始的分送路徑也稱為接收端路徑,或 RECVPATH 定義歷程檔的路徑,從「接收端服務」至具有安全目標端點之環境中的「分送服務」。請參閱新增接收者服務路徑。
Oracle GoldenGate 物件
不應直接修改 Oracle GoldenGate 物件。只能透過使用 AdminClient 和 Web 介面的 REST API 呼叫修改參數檔、歷程檔、檢查點檔案及表格。
歷程檔
歷程檔是磁碟上的一系列檔案,Oracle GoldenGate 會儲存擷取的變更,以支援持續擷取及複製資料庫變更。
視您如何設定 Oracle GoldenGate 而定,來源系統、中介系統、目標系統或這些系統的任何組合上都可以有歷程檔。在本機系統上,它稱為 Extract 歷程檔 (或本機歷程檔)。在遠端系統上,稱為遠端歷程檔。Oracle GoldenGate 透過使用儲存軌跡來支援資料準確性和容錯性。使用歷程檔也可以讓擷取和複製活動彼此獨立發生。這些處理程序分開後,您就有更多資料處理與傳遞方式的選擇。例如,您可以不用持續擷取和複寫變更,而是可以持續擷取變更,並在稍後目標應用程式需要這些變更時,將其儲存在歷程檔中以複寫至目標。
此外,軌跡允許 Oracle AI Database 在異質環境中運作。資料會以一致的格式儲存在歷程檔中,因此 Replicat 處理作業可以讀取所有支援的資料庫。
寫入歷程檔的處理
Oracle GoldenGate Extract 會寫入歷程檔。雖然您可以在不同的路徑中使用相同的歷程檔名稱,但所有本機歷程檔都必須具有不同的完整路徑名稱。
在 Oracle GoldenGate MA 中,會使用分送路徑和接收器路徑來分送遠端歷程檔。「分送服務」和「接收服務」分別用來設定分送路徑和接收者路徑。分送路徑會將網路上的歷程檔傳輸至定義的目標。歷程檔可能包含來自多個 Extract 的資料,這些 Extract 會傳輸至遠端系統。
從歷程檔讀取的處理作業
Replicat 處理作業和從歷程檔讀取的「分送路徑」。Extract 會使用本機歷程檔擷取 DML 和 DDL 作業、視需要執行進一步的處理,並將資料傳輸至下一個 Oracle GoldenGate 處理作業 (即 Replicat) 所讀取的歷程檔。
分散式部署時,「分送服務」處理作業將會讀取遠端歷程檔,並將它透過網路傳送至等待中的「接收者服務」處理作業。
Replicat 處理作業會讀取歷程檔,並將複製的 DML 和 DDL 作業套用至目標資料庫。
歷程檔建立與維護
系統會在處理期間視需要建立追蹤檔。將歷程檔新增至 Oracle GoldenGate 組態時,您可以指定兩個字元的歷程檔名稱。歷程檔預設會儲存在 Oracle GoldenGate 目錄的子目錄中。您可以為歷程檔指定 9 位數的序號。
建立每個新檔案時,會繼承兩個字元的歷程檔名稱,後面加上 00000000 到 999999999 的唯一 9 位數序號。當序號達到 999,999,999 或 999,999 (視先前的設定而定) 時,「摘錄」處理程序將會中止。
您可以透過設定自動維護作業來永久清除歷程檔,或從「管理服務」手動刪除歷程檔,定期永久清除歷程檔。請參閱刪除歷程檔與永久清除歷程檔
您可以建立多個歷程檔來區隔不同物件或應用程式的資料。為了將傳輸量最大化,並將系統上的 I/O 載入降到最低,系統會將擷取的資料傳送至大型區塊中的歷程檔,並將其從中取出。系統會保留歷程檔或歷程檔順序的交易順序。
參數檔
大多數 Oracle GoldenGate 功能是由參數檔中指定的參數控制。參數檔是關聯之 Oracle GoldenGate 處理作業所讀取的純文字檔。
Oracle GoldenGate Microservices Architecture 使用下列程式實際執行參數:
-
全域程式實際執行參數:這些參數與 GLOBALS 參數不同。它們會套用至參數檔中指定的所有資料庫物件。部分全域程式實際執行參數會影響處理作業行為,而其他全域程式實際執行參數則會影響記憶體使用量等項目。
USERIDALIAS是全域執行時期參數的範例。全域參數應該只會在檔案中列出一次。列出多次時,只會啟用最後一個執行處理,並忽略所有其他執行處理。 -
物件特定參數:這些參數可讓您針對不同的資料庫物件集套用不同的處理規則。
GETINSERTS和IGNOREINSERTS是物件特定參數的範例。每個敘述句前面都會有一個指定受影響物件的MAP敘述句。物件特定參數會依其在檔案中的清單順序生效。
程式實際執行參數允許控制 Oracle GoldenGate 同步的各種層面,例如:
-
資料選擇、對應、轉換及複製
-
DDL 與順序選擇、對應及複製 (如支援)
-
錯誤解決
-
記錄日誌
-
狀態和錯誤報告
-
系統資源使用
-
啟動和程式實際執行行為
雖然您可以在單一部署中執行多個 Extract 和 Replicat,但每個 Extract 只能與單一參數檔關聯。Extract 和 Replicat 是以不區分大小寫的名稱識別。例如,名為 exte 的 Extract 會有 1 個名為 exte.prm 的相關參數檔。
檢查點檔案和表格
Oracle GoldenGate 會使用檢查點檔案、檢查點表格以及歷程檔內的對應值組合,以確保資料完全套用到目標平台一次。當來源資料庫、目標資料庫或 Oracle GoldenGate 本身發生中斷或損毀時,Oracle GoldenGate 會使用這些物件來確保資料正確複製,並用於復原。這些物件對於 Oracle GoldenGate 的運作狀況至關重要,未經 Oracle Support 的直接指導,不得進行修改或更改。
請參閱檢查點表格其他詳細資訊。
依 Extract、Path 和 Replicat 區分的檢查點使用狀況
線上變更同步期間會使用檢查點來儲存處理的目前讀取和寫入位置。檢查點可確保擷取標示為同步化的資料變更,並防止多餘的擷取。如果需要重新啟動系統、網路或 Oracle GoldenGate 處理作業,它們可提供容錯功能,以防止資料遺失。
「擷取」、「路徑 (擷取)」以及「傳遞 (Replicat)」會將位置儲存至檢查點檔案,以允許在失敗時復原。Extract 會為其在資料來源和歷程檔中的位置建立檢查點。Replicat 會為其在歷程檔中的位置建立檢查點。下圖示範此工作流程:

檢查點資訊是在預設 Oracle GoldenGate 目錄的檢查點檔案中維護:$OGG_VAR_HOME/lib/checkpt
這不會與儲存在資料庫中的選擇性檢查點表格混淆。Extract 會將寫入檢查點 (稱為目前的檢查點) 置於歷程檔中。目前的檢查點是 Extract 目前寫入之歷程檔中的位置。
檢查點會儲存處理的目前讀取 / 寫入位置。它們可防止冗餘擷取並提供容錯能力。
Oracle GoldenGate 只會將檢查點用於資訊用途,因為事實的來源位於歷程檔內。
路徑檢查點
在部署之間傳輸歷程檔時,「分送服務路徑」檢查點會為 Microservices Architecture 新增一層額外的可靠性。下列影像描述部署中使用的 DISTPATH 檢查點機制。

目前的「讀取」是上次讀取的檢查點。檢查點每秒會檢查一次變更。這個頻率可供設定。「寫入」檢查點會識別上次寫入歷程檔的內容。Oracle GoldenGate 會追蹤歷程檔中的寫入位置。
「分送服務路徑」並不知悉任何未結的交易,因為它們只會處理已確認的記錄。
複製檢查點
Replicat 會在檢查點表格中建立檢查點,以標示其上次讀取和套用位置。
若要檢視處理作業檢查點,請使用 INFO REPLICAT 命令搭配 SHOWCH 選項。基本命令會顯示目前的檢查點。
目前的檢查點是 Replicat 在歷程檔中讀取並套用至資料庫的最後一個記錄的位置。套用交易的事實來源為檢查點資料表。Replicat 和 INFO 命令所使用的檢查點檔案僅為概略和建議資訊。請參閱下列影像以瞭解此工作流程:
