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

备注

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

本主题介绍维护 Openflow Connector for MySQL 的重要注意事项与最佳实践,例如重新安装连接器或为加载任务设置起始二进制日志位置。

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

重新安装连接器

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

警告

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

binlog_expire_logs_seconds 的值需要长于预期重新安装连接器所需的时间。通常 86400 秒(即一天)已足够,但更长的设置时间可确保有充足时间完成重新安装。

先决条件

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

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

    1. 登录 Snowsight

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

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

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

    5. 选择连接器。

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

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

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

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

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

    小心

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

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

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

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

  5. 启动新连接器。

使用说明

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

指定从二进制日志位置加载

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

请注意,将运行中的连接器起始位置从最新切换至最早,将导致重新读取、重新处理并重新应用全部可用二进制日志到目标表。

警告

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

以下控制快照加载的参数可在 Ingestion Parameters 配置中设置:

参数

描述

起始二进制日志位置

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

  • Earliest:选择使用 时默认使用的角色和仓库。切换增量加载模式,从最早可用的二进制日志位置开始(或重新开始)读取。

重新读取状态表

  • ``New``(默认):在重新读取二进制日志期间,仅处理自重新读取开始后新增至复制任务的新表相关事件。其他事件将被丢弃,直至连接器到达重新读取开始前的位置。

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

判断连接器是否完成二进制日志重新读取的方法:

  1. 导航到 Openflow 画布。

  2. 打开 Incremental Load 进程组。

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

  4. 比较状态条目:

    • binlog.position.rewind:处理器在开始重新读取二进制日志前所读取的最新位置。

    • binlog.position.dml:处理器当前读取的最新位置。只要该值低于上面的回滚值,处理器就会重新读取二进制日志。

使用说明

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

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

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

语言: 中文