为 MongoDB 添加提取

提取是对源数据源连接运行的进程,并提取或捕获数据。学习为 MongoDB 添加提取。

添加提取 (26ai)

开始之前,请确保:

要为 MongoDB 添加提取:

  1. 在 OCI GoldenGate 部署控制台导航菜单中,选择提取

  2. 在“提取”页上,选择添加提取

  3. 在“添加提取”面板的提取信息页上,根据需要填写以下字段,然后选择下一步

    • 输入进程名称,长度不超过 8 个字符。

    • 输入说明(可选)以帮助您区分此流程与其他流程。

    • 从下拉列表中选择

  4. 提取选项页上,根据需要填写以下字段,然后选择下一步

    1. 对于提取线索

      1. 输入“提取”流程的名称

      2. 输入子目录名称以设置生成的线索文件的定制位置。

      3. 输入线索序号以设置线索文件的起始编号。

      4. 输入线索大小以设置生成的线索文件的最大大小。

      5. 选择 Encryption Profile(加密配置文件)。如果未创建加密配置文件,则默认情况下会选择本地 Wallet 配置文件。

      6. 选择加密算法

        • NONE(无)

        • AES256

        • AES192

        • AES128

    2. 对于源身份证明,选择:

      1. 别名

      2. 何时/何地开始

  5. 托管选项页面上,根据需要填写以下可选字段,然后选择下一步

    • 概要文件名

    • 对于部署的健康状况至关重要

    • 自动启动

    • 自动重新启动

      注:通过添加配置文件和配置“自动启动”和“自动重新启动”选项,您的部署可以在网络中断后自动重新启动。要了解详细信息,请参阅配置托管流程

  6. 在“参数文件”页上,使用 TABLE source.*; 更新源映射

    注:这是源数据库/集合映射。TABLE *.*; 将导致从所有数据库/集合中提取流程。

  7. 选择创建并运行以创建并启动提取。如果选择创建,则稍后可以从“提取”页面手动启动提取。

添加提取 (21c)

  1. 在 OCI GoldenGate 部署控制台中,确保您位于“管理服务概览”页上,然后选择添加提取(加号图标)。

  2. 在“添加提取”页面上,对于“提取”类型,选择以下选项之一,然后选择下一步

    • 初始加载

    • 更改数据捕获

  3. 在“提取选项”页面上,按如下方式填写字段,然后选择下一步

    1. 流程名称中,输入提取的名称。

    2. 对于连接别名,请从下拉列表中选择连接别名。

    3. 对于,选择文件

    4. 对于文件名,至少为文件名输入三个字符。

    5. (可选)在“Managed Options(托管选项)”下,可以配置以下各项:

      • 概要文件名

      • 自动启动

      • 自动重新启动

      注:通过添加配置文件和配置“自动启动”和“自动重新启动”选项,您的部署可以在网络中断后自动重新启动。有关详细信息,请参阅配置托管进程

  4. 在“参数文件”页上,使用 TABLE source.*; 更新源映射

    注:这是源数据库/集合映射。TABLE *.*; 将导致从所有数据库/集合中提取流程。

  5. 选择创建并运行

返回“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 格式表示。