Openflow Connector for MySQL:选择使用 时默认使用的角色和仓库。维护¶
备注
此连接器受 Snowflake 连接器条款 的约束。
本主题介绍维护 Openflow Connector for MySQL 的重要注意事项与最佳实践,例如重新安装连接器或为加载任务设置起始二进制日志位置。
这些操作常与 快照增量复制 结合使用。
重新安装连接器¶
本部分说明如何重新安装连接器,以及如何继续复制相同表的数据,而无需再次创建快照。它涵盖了新连接器安装在同一运行时中以及移动到新运行时的情况。
警告
若要使连接器能从重新安装前停止的同一 CDC 流位置继续复制,源数据库必须保留足够长时间的二进制日志,以覆盖从旧连接器停止到新连接器启动的整个时间段。确保 MySQL 服务器的 binlog_expire_logs_seconds 参数足够高,并将重新安装时间保持在最低限度。
binlog_expire_logs_seconds 的值需要长于预期重新安装连接器所需的时间。通常 86400 秒(即一天)已足够,但更长的设置时间可确保有充足时间完成重新安装。
先决条件¶
查看并记下连接器参数上下文值。如果要在同一运行时中重新安装连接器,则可以重用现有上下文。如果新实例位于不同的运行时,则必须重新输入所有参数。
先完成现有连接器中所有传输中 FlowFiles 的处理,随后停止该连接器。
登录 Snowsight。
在导航菜单中,选择 Ingestion » Openflow。
在 Openflow 窗格中选择 Runtimes 选项卡。
选择包含连接器的运行时。
选择连接器。
停止 Snapshot Load 组中最顶层的处理器 Set Tables for Replication。
停止 Incremental Load 组中最顶层的处理器 Read MySQL CDC Stream。
如果您更改了 Merge Task Schedule CRON 参数的值,请将其返回到
* * * * * ?,否则在下一次计划运行之前,队列不会清空。等待直至连接器中所有 FlowFiles 均处理完毕,且所有队列均为空。当所有 FlowFiles 处理完成后,连接器处理器组的 Queued 值将变为零。如果原始连接器的队列中还有任何项目,则新连接器启动时可能会出现数据间隙。
停止连接器中的所有处理器和控制器服务。
小心
现有连接器可以保留在运行时中,只要它保持停止状态,就不会干扰新实例。
创建连接器的新实例。若使用与原连接器相同的运行时,可选择保留现有参数配置并复用其设置。
若安装至不同运行时或已删除先前的参数配置,则需将配置设置(包括 设置 Openflow Connector for MySQL 中描述的表名与模式)输入至新的参数配置中。
导航到
MySQL Ingestion Parameters上下文,并设置以下参数:将
Ingestion Type参数设置为incremental。有关这些问题的更多信息,请参阅 启用不使用快照的增量复制。将
Starting Binlog Position参数设置为Earliest。有关更多信息和潜在问题,请参阅 指定从二进制日志位置加载。
启动新连接器。
使用说明¶
新连接器将使用原连接器创建的现有目标表,但会新建日志表。
指定从二进制日志位置加载¶
Openflow Connector for MySQL 连接器允许您选择开始读取 MySQL 二进制日志的起始位置。默认情况下,连接器从最新的可用位置读取。或者,您可以选择源实例上可用的最早位置。重新安装连接器时,通常选择从最早的位置开始。这使得新实例能够追平进度并继续复制现有表,而无需对每张表重新执行快照操作。
请注意,将运行中的连接器起始位置从最新切换至最早,将导致重新读取、重新处理并重新应用全部可用二进制日志到目标表。
警告
在重新读取二进制日志期间,受影响目标表的列与数据可能会与源端不同步,直至所有事件被重新处理并完成合并。
以下控制快照加载的参数可在 Ingestion Parameters 配置中设置:
参数 |
描述 |
|---|---|
起始二进制日志位置 |
|
重新读取状态表 |
|
判断连接器是否完成二进制日志重新读取的方法:
导航到 Openflow 画布。
打开 Incremental Load 进程组。
右键点击名为 Read MySQL CDC Stream 的最顶层处理器,然后选择 View state。
比较状态条目:
binlog.position.rewind:处理器在开始重新读取二进制日志前所读取的最新位置。
binlog.position.dml:处理器当前读取的最新位置。只要该值低于上面的回滚值,处理器就会重新读取二进制日志。
使用说明¶
运行中的连接器切换至从最早位置读取并开始运行后,此过程无法重新配置或取消,将持续进行直至读取位置到达切换前的起始位置。
对运行中的连接器切换至最早位置时,所有正在重新处理的表将完成其现有日志处理,并创建新的日志表。
若二进制日志包含源数据库中已删除并重建的旧表事件,重新读取流将重新处理当前目标表中的所有事件。如果以前的源表和当前的源表具有相同的名称,则连接器无法区分它们。