为 MongoDB 添加提取
提取是对源数据源连接运行的进程,并提取或捕获数据。学习为 MongoDB 添加提取。
添加提取 (26ai)
开始之前,请确保:
-
配置 MongoDB 复制集:
-
OCI GoldenGate for Big Data 使用操作日志 (oplog) 读取更改数据捕获 (CDC) 记录。oplog 是 MongoDB 中的一个上限集合,用于维护修改数据库的所有操作的滚动记录。Oplog 文件是在 MongoDB 中启用副本集时创建的。
-
MongoDB Atlas 预配置了 Replicat 集。对于内部部署 MongoDB 部署,必须手动配置和部署 Replicat 集以启用 oplog 和 CDC 功能。对于本地 MongoDB,您需要部署副本集。
-
-
MongoDB 版本 3.6 或更高版本。
-
获取 OCI GoldenGate 支持来捕获以下操作:
INSERT、UPDATE、DELETE。
要为 MongoDB 添加提取:
-
在 OCI GoldenGate 部署控制台导航菜单中,选择提取。
-
在“提取”页上,选择添加提取。
-
在“添加提取”面板的提取信息页上,根据需要填写以下字段,然后选择下一步:
-
输入进程名称,长度不超过 8 个字符。
-
输入说明(可选)以帮助您区分此流程与其他流程。
-
从下拉列表中选择源。
-
-
在提取选项页上,根据需要填写以下字段,然后选择下一步:
-
对于提取线索:
-
输入“提取”流程的名称。
-
输入子目录名称以设置生成的线索文件的定制位置。
-
输入线索序号以设置线索文件的起始编号。
-
输入线索大小以设置生成的线索文件的最大大小。
-
选择 Encryption Profile(加密配置文件)。如果未创建加密配置文件,则默认情况下会选择本地 Wallet 配置文件。
-
选择加密算法:
-
NONE(无)
-
AES256
-
AES192
-
AES128
-
-
-
对于源身份证明,选择:
-
域
-
别名
-
何时/何地开始
-
-
-
在托管选项页面上,根据需要填写以下可选字段,然后选择下一步:
-
概要文件名
-
对于部署的健康状况至关重要
-
自动启动
-
自动重新启动
注:通过添加配置文件和配置“自动启动”和“自动重新启动”选项,您的部署可以在网络中断后自动重新启动。要了解详细信息,请参阅配置托管流程。
-
-
在“参数文件”页上,使用
TABLE source.*;更新源映射注:这是源数据库/集合映射。
TABLE *.*;将导致从所有数据库/集合中提取流程。 -
选择创建并运行以创建并启动提取。如果选择创建,则稍后可以从“提取”页面手动启动提取。
添加提取 (21c)
-
在 OCI GoldenGate 部署控制台中,确保您位于“管理服务概览”页上,然后选择添加提取(加号图标)。
-
在“添加提取”页面上,对于“提取”类型,选择以下选项之一,然后选择下一步:
-
初始加载
-
更改数据捕获
-
-
在“提取选项”页面上,按如下方式填写字段,然后选择下一步:
-
在流程名称中,输入提取的名称。
-
对于连接别名,请从下拉列表中选择连接别名。
-
对于源,选择文件。
-
对于文件名,至少为文件名输入三个字符。
-
(可选)在“Managed Options(托管选项)”下,可以配置以下各项:
-
概要文件名
-
自动启动
-
自动重新启动
注:通过添加配置文件和配置“自动启动”和“自动重新启动”选项,您的部署可以在网络中断后自动重新启动。有关详细信息,请参阅配置托管进程。
-
-
-
在“参数文件”页上,使用
TABLE source.*;更新源映射注:这是源数据库/集合映射。
TABLE *.*;将导致从所有数据库/集合中提取流程。 -
选择创建并运行。
返回“Administration Service Overview(管理服务概览)”页面。选择“提取”名称以查看提取的详细信息和报表。
已知问题
将 MongoDB 提取中的线索文件与 BINARY_JSON_FORMAT 配合使用时,复制失败
当 Replicat 使用从 Extract 参数文件中包含 BINARY_JSON_FORMAT 的 MongoDB Extract 生成的 Trail 文件时,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)
解决方法:从提取参数中删除 BINARY_JSON_FORMAT 时,复制将成功运行,文档将以扩展 JSON 格式表示。