使用初始載入擷取來精確建立 PostgreSQL
從來源 PostgreSQL 資料庫到 Oracle GoldenGate 目標的資料同步,可以使用使用精確建立的選擇性方法來完成。此方法使用 Oracle GoldenGate 21c (21.8.0) 導入。
精確的建立功能不需在目標 Replicat 中進行任何衝突處理。這對於不支援衝突處理 (例如純文字檔) 的目標非常重要。此方法使用資料庫快照,將初始載入 Extract 的輸出與「變更資料擷取擷取」的起始位置同步。此快照是由初始載入 Extract 所管理,因此多個初始載入 Extract 無法使用相同的快照。因此,使用多個初始載入 Extract 將工作負載平行化時,不支援此方法。
下列範例使用 Microservices 架構內的 Admin Client。假設您熟悉 Oracle GoldenGate,並已正確設定來源和目標資料庫與所有必要的先決條件。這些步驟至少需要 Oracle GoldenGate 21c (21.8.0) 或更新的版本。
執行下列步驟,以使用精確的建立方法來設定端對端初始載入與同步處理:
-
在來源 PostgreSQL 資料庫註冊「變更資料擷取 (CDC)」擷取。
DBLOGIN USERIDALIAS src_alias REGISTER EXTRACT extecdc在此範例中,
extecdc是 Extract 名稱。對於 Microservices 架構,請使用DBLOGIN USERIDALIAS來設定資料庫連線。 -
建立初始載入 Extract。
ADD EXTRACT extinit, SOURCEISTABLE EDIT PARAMS extinit初始載入 Extract 參數檔必須包含
INITIALLOADOPTIONS USESNAPSHOT參數。舉例而言:EXTRACT extinit INITIALLOADOPTIONS USESNAPSHOT SOURCEDB USERIDALIAS src_alias EXTFILE west/ei, MEGABYTES 500, PURGE TABLE public.*;請參閱
INITIALLOADOPTIONS,瞭解此參數與USESNAPSHOT選項的用法。 -
開始初始載入 Extract。
START EXTRACT extinit -
初始載入擷取完成並停止後,請複查其報表檔案以決定「CDC 擷取」要使用的定位 LSN。
例如,在下列輸出中,CDC 擷取要使用的定位 LSN 將會是 '0/173F770'。
INFO OGG-100001 A consistent point is established in database 'tpcc' using replication slot ogg_initx_1234 at LSN 0/173F770 and snapshot name '00000003-00000026-1'.INFO OGG-100002 Create or position the CDC extract to LSN 0/173F770. Example: ADD EXTRACT <cdc-extract> TRANLOG LSN 0/173F770 or ALTER EXTRACT <cdc-extract> LSN 0/173F770. -
建立並啟動從起始載入 Extract 讀取歷程檔的起始載入 Replicat。
DBLOGIN USERIDALIAS tgt_aliasADD CHECKTPOINTTABLE ggs.checkpointADD REPLICAT repinit, EXTTRAIL west/ei, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repinit以下是初始載入 Replicat 參數檔的範例:
REPLICAT repinit TARGETDB USERIDALIAS tgt_alias BATCHSQL MAP public.*, TARGET public.*; -
使用初始載入「擷取」報表檔案中參考的一致 LSN 值來新增並啟動「CDC 擷取」(
extecdc)。ADD EXTRACT extecdc, TRANLOG, LSN 0/173F770ADD EXTTRAIL ea, EXTRACT extecdcSTART EXTRACT extecdc以下是「CDC 擷取」參數檔的範例:
EXTRACT extecdc SOURCEDB USERIDALIAS src_alias EXTTRAIL west/ea TABLE public.*; -
初始載入 Replicat 已處理所有初始載入記錄時,請新增並啟動從「CDC 擷取」讀取歷程檔的「CDC Replicat」。
ADD REPLICAT repecdc, EXTTRAIL west/ea, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repecdc -
監控 CDC Extract 和 CDC Replicat 中的延遲,以及兩者都接近零秒數時,來源至目標資料庫的資料串流應接近即時。