使用 SOURCEISTABLE 建立起始載入擷取

使用 SOURCEISTABLE 參數對初始載入 Extract 使用此程序。此程序並非使用 Oracle Data Pump 或任何精確的建立方法來建立。此程序使用 HANDLECOLLISIONS 而非精確的定位,以便在載入初始資料時,來源資料庫可以保持作用中狀態。

這些範例使用 Oracle 來源和目標、HR 綱要,以及這些歷程檔名稱:

注意:請將範例別名、URL、主機、連接埠、綱要名稱以及歷程檔名稱取代為您環境的值。

步驟 1:建立並啟動主要 TRANLOG Extract

連線至來源部署。對於 Oracle 來源,啟用補充日誌記錄、建立並註冊整合的主要 Extract,然後在開始初始載入之前啟動它。記錄 REGISTER EXTRACT 傳回的註冊 SCN;請勿只重新執行命令來擷取該值。

ADMINCLIENT: Source deployment
OGG (not connected) 1> CONNECT https://<source-admin-url> AS <deployment-user> PASSWORD "<deployment-password>"
OGG (https://<source-admin-url> source_deployment) > DBLOGIN USERIDALIAS <source-db-alias>
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > ADD SCHEMATRANDATA hr

如果選取的表格需要記錄日誌而非整個綱要,請對這些表格使用 ADD TRANDATA,例如:

ADD TRANDATA hr.*

建立並登錄主要 Extract,然後建立其參數檔:

OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > ADD EXTRACT extprim INTEGRATED TRANLOG BEGIN NOW
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > REGISTER EXTRACT extprim DATABASE
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > EDIT PARAMS extprim

主要 Extract 參數檔 (EXTPRIM):

EXTRACT extprim
USERIDALIAS <source-db-alias>
EXTTRAIL AA
TABLE hr.*;

建立本機來源歷程檔並啟動主要 Extract:

OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > ADD EXTTRAIL AA EXTRACT extprim MEGABYTES 2000
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > START EXTRACT extprim

若為容器資料庫,請使用適當的三部分物件名稱或有效的 SOURCECATALOG 敘述句。對於其他來源資料庫類型,請使用資料庫特定的註冊、記錄和開始位置語法。

步驟 2:建立並啟動初始載入 Extract

初始載入 Extract 是一個任務 Extract。它會讀取來源表格,並將記錄寫入本機初始載入歷程檔 CC。Oracle 特定的 SQLPREDICATE "AS OF SCN" 子句會在選擇的一致點選取表格內容。

開始初始載入 Replicat 之前,請確定啟動主要「TRANLOG 擷取」時開啟的所有交易都已確認。初始載入 Extract 或主要 TRANLOG Extract 並不會擷取保持未結的異動,因此可能會遺失。

建立初始載入 Extract 及其參數檔:

ADMINCLIENT: Source deployment
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > ADD EXTRACT extinit SOURCEISTABLE
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > EDIT PARAMS extinit

初始載入 Extract 參數檔 (EXTINIT):

EXTRACT extinit
USERIDALIAS <source-db-alias>
EXTFILE CC MEGABYTES 2000 PURGE
TABLE hr.*, SQLPREDICATE "AS OF SCN <instantiation-scn>";

從 Oracle GoldenGate 26ai 開始,初始載入 Extract 中的萬用字元 TABLE 敘述句無法解析視觀表。若要包括檢視,請個別指定不含萬用字元的檢視,例如:

TABLE hr.employees_view;

啟動與監視初始載入 Extract:

OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > START EXTRACT extinit
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > INFO EXTRACT extinit DETAIL
OGG (https://<source-admin-url> source_deployment as <source-db-alias>) > VIEW REPORT extinit

步驟 3:建立並啟動分送服務路徑

從來源部署建立路徑。SOURCE URI 可識別來源「分送服務」和本機歷程檔。TARGET URI 可識別目標「接收端服務」和目標歷程檔。來源和目標歷程檔名稱必須與為對應串流建立的歷程檔相符。

建立進行中變更資料的路徑 (AA 至 BB):

ADMINCLIENT: Source deployment
OGG (https://<source-admin-url> source_deployment) > ADD DISTPATH aabb SOURCE trail://<source-dist-host>:<source-dist-port>/services/v2/sources?trail=AA TARGET wss://<target-recv-host>:<target-recv-port>/services/v2/targets?trail=BB
OGG (https://<source-admin-url> source_deployment) > START DISTPATH aabb
OGG (https://<source-admin-url> source_deployment) > INFO DISTPATH aabb DETAIL

建立初始載入資料的路徑 (CC 到 DD):

OGG (https://<source-admin-url> source_deployment) > ADD DISTPATH ccdd SOURCE trail://<source-dist-host>:<source-dist-port>/services/v2/sources?trail=CC TARGET wss://<target-recv-host>:<target-recv-port>/services/v2/targets?trail=DD
OGG (https://<source-admin-url> source_deployment) > START DISTPATH ccdd
OGG (https://<source-admin-url> source_deployment) > INFO DISTPATH ccdd DETAIL

對於需要路徑認證的安全目標,請將下列子句附加至每個 ADD DISTPATH 命令:

AUTHENTICATION USERIDALIAS <target-path-alias> DOMAIN <target-path-domain>

當別名在預設網域中時,省略 DOMAIN。必須為來源部署中的目標路徑認證設定別名和網域。

如果使用傳統 ogg 協定取代 ws 或 wss,也請在 ADD DISTPATH 指令上指定適當的 TARGETTYPE 選項。

步驟 4:建立並啟動初始載入 Replicat

連線至目標部署、建立檢查點表格,以及新增讀取目標歷程檔 DD 的未整合初始載入 Replicat。Replicat 可以在起始載入歷程檔到達之前啟動;它會在「分送路徑」執行後等待來自 DD 的資料。

ADMINCLIENT: Target deployment
OGG (not connected) 1> CONNECT https://<target-admin-url> AS <deployment-user> PASSWORD "<deployment-password>"
OGG (https://<target-admin-url> target_deployment) > DBLOGIN USERIDALIAS <target-db-alias>
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > ADD CHECKPOINTTABLE ggadmin.ggcheckpoint
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > ADD REPLICAT repinit EXTTRAIL DD CHECKPOINTTABLE ggadmin.ggcheckpoint
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > EDIT PARAMS repinit

初始載入 Replicat 參數檔 (REPINIT):

REPLICAT repinit
USERIDALIAS <target-db-alias>
MAP hr.*, TARGET hr.*;

啟動及監督初始載入 Replicat:

OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > START REPLICAT repinit
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > INFO REPLICAT repinit DETAIL

步驟 5:完成初始載入並移除一次性物件

等到初始載入 Extract 達到輸入結束為止,CC 至 DD 路徑已將所有記錄傳遞至 DD,而 REPINIT 已套用這些記錄。使用下列檢查:

ADMINCLIENT: Source deployment
OGG (https://<source-admin-url> source_deployment) > INFO EXTRACT extinit DETAIL
OGG (https://<source-admin-url> source_deployment) > INFO DISTPATH ccdd DETAIL
ADMINCLIENT: Target deployment
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > INFO REPLICAT repinit DETAIL
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > SEND REPLICAT repinit, LOGEND

驗證初始載入結果後,僅移除一次性路徑與處理物件。保留主要 Extract EXTPRIM 和主要路徑 AABB。

從來源部署:

STOP DISTPATH ccdd
DELETE DISTPATH ccdd
STOP EXTRACT extinit
DELETE EXTRACT extinit

如果目標部署仍在執行中,請停止 REPINIT,然後將其刪除:

STOP REPLICAT repinit
DELETE REPLICAT repinit

DELETE EXTRACT 需要 Oracle 的適當來源資料庫登入,而 DELETE REPLICAT 需要目標資料庫登入。刪除處理群組不一定會刪除其參數檔或歷程檔;透過部署支援的管理作業來管理保留的使用者自建物件。

步驟 6:使用 HANDLECOLLISIONS 建立並啟動主要 Replicat

在目標上建立主要 Replicat。此程序使用 HANDLECOLLISIONS,而主要 Replicat 套用可能與初始載入資料重疊的變更。

對於 HANDLECOLLISIONS 工作流程,請在支援時使用非整合的主要 Replicat。請勿將 HANDLECOLLISIONS 與整合式 Oracle Replicat 搭配使用;當需要整合式 Replicat 時,請使用精確的建立方法。

ADMINCLIENT: Target deployment
OGG (https://<target-admin-url> target_deployment) > DBLOGIN USERIDALIAS <target-db-alias>
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > ADD REPLICAT repprim EXTTRAIL BB CHECKPOINTTABLE ggadmin.ggcheckpoint
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > EDIT PARAMS repprim

主要 Replicat 參數檔 (REPPRIM):

REPLICAT repprim
USERIDALIAS <target-db-alias>
HANDLECOLLISIONS
MAP hr.*, TARGET hr.*;

啟動及監控主要 Replicat:

OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > START REPLICAT repprim
OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > INFO REPLICAT repprim DETAIL
OGG (https://<source-admin-url> source_deployment) > INFO DISTPATH aabb DETAIL

主要 Replicat 在初始載入期間擷取並處理佇列的變更之後,停用 HANDLECOLLISIONS:

OGG (https://<target-admin-url> target_deployment as <target-db-alias>) > SEND REPLICAT repprim, NOHANDLECOLLISIONS

SEND REPLICAT ... NOHANDLECOLLISIONS 會停用目前執行的衝突處理,但不會從參數檔移除 HANDLECOLLISIONS。下次重新啟動前,請先從參數檔中移除 HANDLECOLLISIONS,或在受影響的 MAP 敘述句之前新增 NOHANDLECOLLISIONS。