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 数据库。
先决条件¶
查看并记下连接器参数上下文值。如果要在同一运行时中重新安装连接器,则可以重用现有上下文。如果新实例位于不同的运行时,则必须重新输入所有参数。
先完成现有连接器中所有传输中 FlowFiles 的处理,随后停止该连接器。
登录 Snowsight。
在导航菜单中,选择 Ingestion » Openflow。
选择 Launch Openflow。
在 Openflow 窗格中选择 Runtimes 选项卡。
选择包含连接器的运行时。
选择连接器。
停止 Snapshot Load 组中最顶层的处理器 Set Tables for Replication。
停止 Incremental Load 组中最顶层的处理器 Read Oracle CDC Stream。
如果您更改了 Merge Task Schedule CRON 参数的值,请将其返回到
* * * * * ?,否则在下一次计划运行之前,队列不会清空。等待直至连接器中所有 FlowFiles 均处理完毕,且所有队列均为空。当所有 FlowFiles 处理完成后,连接器处理器组的 Queued 值将变为零。如果原始连接器的队列中仍有任何项目,则在新连接器启动时可能会出现数据间隙。
停止连接器中的所有处理器和控制器服务。
小心
现有连接器可以保留在运行时中,只要它保持停止状态,就不会干扰新实例。
创建连接器的新实例。若使用与原连接器相同的运行时,可选择保留现有参数配置并复用其设置。
若安装至不同运行时或已删除先前的参数配置,则需将配置设置(包括 安装并配置 Openflow Connector for Oracle 中描述的表名与模式)输入至新的参数配置中。
导航到
Oracle Ingestion Parameters上下文,并设置以下参数:将
Ingestion Type参数设置为incremental。有关这些问题的更多信息,请参阅 在现有连接器上启用不使用快照的增量复制。将
Starting Redo Log Position参数设置为Earliest。有关更多信息和潜在问题,请参阅 更改 XStream 出站服务器。
启动新连接器。
使用说明¶
新连接器将使用原连接器创建的现有目标表,但会新建日志表。
更改 XStream 出站服务器¶
连接器会定期向 XStream 服务器更新其处理的最新 SCN 位置。如果重新安装连接器并连接到相同的 XStream 出站服务器,它将从上次停止的 SCN 位置恢复读取。可以通过以下方式检查此 SCN 编号:
如果要从较早的位置重新读取数据,必须先更改 XStream 服务器的起始 SCN:
<start_scn> 的值必须是可用重做日志范围内的有效 SCN。可以通过以下方式检查起始位置可以重置到的最低 SCN:
这是捕获过程需要重做信息的最低 SCN。
指定加载自 XStream 位置¶
Openflow Connector for Oracle 连接器允许您选择开始读取 Oracle 重做日志的起始位置。默认情况下,连接器从最新的可用位置读取。或者,您可以选择源实例上可用的最早位置。重新安装连接器时,通常选择从最早的位置开始。这使得新实例能够追平进度并继续复制现有表,而无需对每张表重新执行快照操作。
备注
将运行中的连接器从最新位置切换到最早位置会导致重新读取、重新处理并重新应用整个可用重做日志到目标表。
警告
在重新读取重做日志期间,受影响目标表的列和数据可能会与源端不同步,直到所有事件都被重新处理并合并。
以下参数可在 Ingestion Parameters 上下文中设置:
若要确定连接器是否完成了重做日志的重新读取:
导航到 Openflow 画布。
打开 Incremental Load 进程组。
右键点击名为 Read Oracle CDC Stream 的最顶层处理器,然后选择 View state。
比较状态条目:
lcr.position.rewind:处理器在开始重新读取重做日志前读取的最新位置。
lcr.position.last:处理器当前读取的最新位置。只要该值低于上述回滚值,处理器就仍在重新读取重做日志。
使用说明¶
在运行中的连接器切换为从最早位置读取并开始运行后,该过程无法重新配置或取消,并将继续进行,直到当前读取位置达到开始前的起始位置。
对运行中的连接器切换至最早位置时,所有正在重新处理的表将完成其现有日志处理,并创建新的日志表。
如果重做日志包含源数据库中已删除并重建的旧表事件,则重新读取流会重新处理当前目标中的所有事件。如果以前的源表和当前的源表同名,则连接器无法区分它们。
备注
在从最早位置重新读取重做日志时,不支持架构变更(例如使用 ALTER TABLE 语句添加或删除列)。如果某个表的架构在最早可用的 SCN 与当前日志位置之间发生过变化,则应先将该表从复制中移除,然后通过新的快照重新添加。