新增 MongoDB 擷取
Extract 是針對來源資料來源連線和擷取或擷取資料執行的處理作業。瞭解如何新增 MongoDB 的 Extract。
新增擷取 (26ai)
在開始之前,請確認您:
-
設定 MongoDB Replicat 集:
-
OCI GoldenGate for Big Data 使用作業日誌 (oplog) 讀取變更資料擷取 (CDC) 記錄。此 oplog 是 MongoDB 中上限的集合,可維護修改資料庫之所有作業的輪流記錄。在 MongoDB 中啟用複本集時,便會建立 Oplog 檔案。
-
MongoDB Atlas 已預先設定 Replicat 集。若為內部部署 MongoDB 部署,您必須手動設定並部署 Replicat 集,以啟用 Oplog 和 CDC 功能。對於內部部署 MongoDB,您必須部署複本集。
-
-
MongoDB 版本 3.6 或更新版本。
-
支援 OCI GoldenGate 以擷取下列作業:
INSERT、UPDATE、DELETE。
在 MongoDB 中新增 Extract:
-
在 OCI GoldenGate 部署主控台導覽功能表中,選取擷取。
-
在「擷取」頁面上,選取新增擷取。
-
在「新增擷取」面板的擷取資訊頁面中,視需要完成下列欄位,然後選取下一步:
-
輸入長度不超過 8 個字元的程序名稱。
-
輸入描述 (選擇性),以協助您區分此處理與其他處理。
-
從下拉式清單中選取來源。
-
-
在擷取選項頁面上,視需要完成下列欄位,然後選取下一步:
-
若為擷取歷程檔:
-
輸入 Extract 處理作業的名稱。
-
輸入子目錄名稱,為產生的歷程檔設定自訂位置。
-
輸入歷程檔順序以設定歷程檔的起始號碼。
-
輸入歷程檔大小,以設定所產生歷程檔的大小上限。
-
選取一個加密設定檔。如果未建立加密設定檔,預設會選取本機公事包設定檔。
-
選取加密演算法:
-
NONE
-
AES256
-
AES192
-
AES128
-
-
-
在來源證明資料中,選取:
-
網域
-
別名
-
時間 / 地點開始
-
-
-
在受管理選項頁面上,視需要完成下列選擇性欄位,然後選取下一步:
-
設定檔名稱
-
對於部署狀況具有重大影響
-
自動啟動
-
自動重新啟動
注意:新增設定檔並設定「自動啟動」和「自動重新啟動」選項,可讓您的部署在網路中斷後自動重新啟動。請參閱設定受管理處理作業以瞭解詳細資訊。
-
-
在「參數檔」頁面上,使用
TABLE source.*;更新來源對應注意:這是來源資料庫 / 集合對應。
TABLE *.*;會從所有資料庫 / 集合擷取處理程序。 -
選取建立並執行以建立並啟動 Extract。如果您選取建立,則稍後可以從「擷取」頁面手動啟動「擷取」。
新增擷取 (21c)
-
在 OCI GoldenGate 部署主控台中,確定您位於「管理服務總覽」頁面,然後選取新增擷取 (加上圖示)。
-
在「新增擷取」頁面上,針對「擷取」類型選取下列其中一項,然後選取下一步:
-
起始載入
-
變更資料擷取
-
-
在「擷取選項」頁面上,依下列方式完成欄位,然後選取下一步:
-
在程序名稱中,輸入 Extract 的名稱。
-
對於連線別名,請從下拉式清單中選取連線別名。
-
對於來源,請選取檔案。
-
在檔案名稱中,至少為檔案名稱輸入三個字元。
-
(選擇性) 在「受管理的選項」下,您可以設定下列項目:
-
設定檔名稱
-
自動啟動
-
自動重新啟動
注意:新增設定檔並設定「自動啟動」和「自動重新啟動」選項,可讓您的部署在網路中斷後自動重新啟動。請參閱設定受管理處理作業以瞭解詳細資訊。
-
-
-
在「參數檔」頁面上,使用
TABLE source.*;更新來源對應注意:這是來源資料庫 / 集合對應。
TABLE *.*;會從所有資料庫 / 集合擷取處理程序。 -
選取建立並執行。
您會返回「管理服務總覽」頁面。選取擷取名稱以檢視擷取的詳細資料與報表。
已知問題
使用 BINARY_JSON_FORMAT 從 MongoDB Extract 使用歷程檔時,Replicat 失敗
當 Replicat 在 Extract 參數檔中使用以 BINARY_JSON_FORMAT 產生的 MongoDB Extract 歷程檔時,Replicat 會因下列錯誤而失敗:
ERROR 2023-08-04 17:13:13.000421 [main] - Unable to decode column 0 : Input length = 1
java.nio.charset.MalformedInputException: Input length = 1 at
java.nio.charset.CoderResult.throwException(CoderResult.java:281) ~[?:1.8.0_311]at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:816) ~[?:1.8.0_311] at
oracle.goldengate.datasource.UserExitDataSource.createColumnValue(UserExitDataSource.java:1106)
[ggdbutil-21.9.0.0.3.001.jar:21.9.0.0.3.001] Exception in thread "main"
oracle.goldengate.util.GGException: Unable to decode column 0 : Input length = 1 at
oracle.goldengate.datasource.UserExitDataSource.createColumnValue(UserExitDataSource.java:1203)
解決方法:從 Extract 參數移除 BINARY_JSON_FORMAT 時,Replicat 會順利執行,並以 Extended JSON 格式表示文件。