Openflow Connector for Oracle:选择使用 时默认使用的角色和仓库。维护

备注

此连接器受 Snowflake 连接器条款 的约束。

备注

除标准连接器服务条款外,Openflow Connector for Oracle 还需遵守其他服务条款。有关更多信息,请参阅 Openflow Connector for Oracle 附录

本主题介绍了 Openflow Connector for Oracle 的维护任务,例如重新安装连接器或设置重做日志的起始位置。

这些操作常与 快照增量复制 结合使用。

重新安装连接器

本部分说明如何重新安装连接器,以及如何继续复制相同表的数据,而无需再次创建快照。它涵盖了新连接器安装在同一运行时中以及移动到新运行时的情况。

警告

若要使连接器能从重新安装前停止的同一 CDC 流位置继续复制,源数据库必须保留足够长时间的存档重做日志,以覆盖从前一个连接器停止到新连接器启动的时间段。确保 Oracle 数据库的存档重做日志保留期足够长,并将重新安装时间保持在最低限度。

通常,24 小时的保留期就足够了,但为了确保有足够的重新安装时间,可能需要更长的时间。有关配置存档重做日志保留的更多信息,请参阅 Openflow Connector for Oracle:选择使用 时默认使用的角色和仓库。配置 Oracle 数据库

先决条件

查看并记下连接器参数上下文值。如果要在同一运行时中重新安装连接器,则可以重用现有上下文。如果新实例位于不同的运行时,则必须重新输入所有参数。

  1. 先完成现有连接器中所有传输中 FlowFiles 的处理,随后停止该连接器。

    1. 登录 Snowsight

    2. 在导航菜单中,选择 Ingestion » Openflow

    3. 选择 Launch Openflow

    4. Openflow 窗格中选择 Runtimes 选项卡。

    5. 选择包含连接器的运行时。

    6. 选择连接器。

    7. 停止 Snapshot Load 组中最顶层的处理器 Set Tables for Replication

    8. 停止 Incremental Load 组中最顶层的处理器 Read Oracle CDC Stream

    9. 如果您更改了 Merge Task Schedule CRON 参数的值,请将其返回到 * * * * * ?,否则在下一次计划运行之前,队列不会清空。

      等待直至连接器中所有 FlowFiles 均处理完毕,且所有队列均为空。当所有 FlowFiles 处理完成后,连接器处理器组的 Queued 值将变为零。如果原始连接器的队列中仍有任何项目,则在新连接器启动时可能会出现数据间隙。

    10. 停止连接器中的所有处理器和控制器服务。

    小心

    现有连接器可以保留在运行时中,只要它保持停止状态,就不会干扰新实例。

  2. 创建连接器的新实例。若使用与原连接器相同的运行时,可选择保留现有参数配置并复用其设置。

  3. 若安装至不同运行时或已删除先前的参数配置,则需将配置设置(包括 安装并配置 Openflow Connector for Oracle 中描述的表名与模式)输入至新的参数配置中。

  4. 导航到 Oracle Ingestion Parameters 上下文,并设置以下参数:

  5. 启动新连接器。

使用说明

新连接器将使用原连接器创建的现有目标表,但会新建日志表。

更改 XStream 出站服务器

连接器会定期向 XStream 服务器更新其处理的最新 SCN 位置。如果重新安装连接器并连接到相同的 XStream 出站服务器,它将从上次停止的 SCN 位置恢复读取。可以通过以下方式检查此 SCN 编号:

SELECT PROCESSED_LOW_SCN
FROM DBA_XSTREAM_OUTBOUND_PROGRESS
WHERE SERVER_NAME = 'XOUT1';

如果要从较早的位置重新读取数据,必须先更改 XStream 服务器的起始 SCN:

BEGIN
    DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
        server_name => 'XOUT1',
        start_scn => <start_scn>
    );
END;
/

<start_scn> 的值必须是可用重做日志范围内的有效 SCN。可以通过以下方式检查起始位置可以重置到的最低 SCN:

SELECT REQUIRED_CHECKPOINT_SCN
FROM DBA_CAPTURE
WHERE CLIENT_NAME = 'XOUT1';

这是捕获过程需要重做信息的最低 SCN。

指定加载自 XStream 位置

Openflow Connector for Oracle 连接器允许您选择开始读取 Oracle 重做日志的起始位置。默认情况下,连接器从最新的可用位置读取。或者,您可以选择源实例上可用的最早位置。重新安装连接器时,通常选择从最早的位置开始。这使得新实例能够追平进度并继续复制现有表,而无需对每张表重新执行快照操作。

备注

将运行中的连接器从最新位置切换到最早位置会导致重新读取、重新处理并重新应用整个可用重做日志到目标表。

警告

在重新读取重做日志期间,受影响目标表的列和数据可能会与源端不同步,直到所有事件都被重新处理并合并。

以下参数可在 Ingestion Parameters 上下文中设置:

参数

描述

起始 XStream 位置

  • ``Latest``(默认):CDC 流读取从最新的可用位置开始并从该位置继续。

  • Earliest:选择使用 时默认使用的角色和仓库。切换增量加载以从最早可用的 XStream 位置开始或重新开始读取。

重新读取状态表

  • ``New``(默认):重新读取重做日志时,对于在开始重新读取后添加到复制的新表,仅处理其 LCRs(逻辑变更记录)。其他 LCRs 将被丢弃,直到连接器到达开始重新读取前的位置。

  • Any active:选择使用 时默认使用的角色和仓库。重新读取并重新处理当前复制任务中任意表的事件。

若要确定连接器是否完成了重做日志的重新读取:

  1. 导航到 Openflow 画布。

  2. 打开 Incremental Load 进程组。

  3. 右键点击名为 Read Oracle CDC Stream 的最顶层处理器,然后选择 View state

  4. 比较状态条目:

    • lcr.position.rewind:处理器在开始重新读取重做日志前读取的最新位置。

    • lcr.position.last:处理器当前读取的最新位置。只要该值低于上述回滚值,处理器就仍在重新读取重做日志。

使用说明

  • 在运行中的连接器切换为从最早位置读取并开始运行后,该过程无法重新配置或取消,并将继续进行,直到当前读取位置达到开始前的起始位置。

  • 对运行中的连接器切换至最早位置时,所有正在重新处理的表将完成其现有日志处理,并创建新的日志表。

  • 如果重做日志包含源数据库中已删除并重建的旧表事件,则重新读取流会重新处理当前目标中的所有事件。如果以前的源表和当前的源表同名,则连接器无法区分它们。

备注

在从最早位置重新读取重做日志时,不支持架构变更(例如使用 ALTER TABLE 语句添加或删除列)。如果某个表的架构在最早可用的 SCN 与当前日志位置之间发生过变化,则应先将该表从复制中移除,然后通过新的快照重新添加。