Oracle CDC 实例

重要

现已弃用 Attunity 的 Oracle 变更数据捕获功能。 有关详细信息,请参阅公告

Oracle CDC 实例是由 Oracle CDC 服务创建的过程,用于处理从单个 Oracle 源数据库捕获的更改。 Oracle CDC 实例从 cdc.xdbcdc_config 表中检索其配置,并在 cdc.xdbcdc_state 表中保持其状态。 这些表是 CDC 数据库的一部分,用于定义 Oracle CDC 实例。 有关 xdbcdc 数据库和表的详细信息,请参阅 CDC 数据库

下面介绍了 Oracle CDC 实例执行的任务:

  • 处理服务启动验证:启动时,CDC 实例从 xdbcdc_config 表中加载其配置,并执行一系列状态验证,确保 CDC 实例持久化状态一致,并且可以开始处理更改。

  • 准备更改捕获:验证成功通过时,Oracle CDC 实例会扫描当前定义的所有捕获实例,并准备 Oracle LogMiner 查询和更改捕获所需的其他支持结构。 此外,Oracle 实例重新加载上次运行 Oracle CDC 实例时保存的内部捕获状态。

  • 从 Oracle 捕获更改:Oracle CDC 实例通过 Oracle LogMiner 工具收集来自 Oracle 的更改,根据事务提交对其进行排序,然后按照事务时间记录,并将其写入 CDC 数据库中的 SQL Server 更改表。

  • 处理服务关闭:Oracle CDC 实例的生命周期由 Oracle CDC 服务管理。 当请求 Oracle CDC 实例关闭时,它将执行以下任务:

    • 停止从 Oracle 事务日志读取。

    • 停止将已完成的 Oracle 事务写入 CDC 数据库。

    • 等待最多 30 秒(如有必要),直到当前事务完成写入 CDC 数据库。 如果超过 30 秒,则会取消写入并回滚事务(在重新启动 CDC 实例时重试)。

    • 在单独的线程中,将尽可能多的内存缓存记录写入到暂存事务表中长达 30 秒(从最旧事务到最新事务),然后更新 xdbcdc_state 表并提交所有更改。

  • 处理配置更改:Oracle CDC 实例通过 CDC 服务或通过检测 cdc.xdbcdc_config 表中的新版本来通知配置更改。 大多数更改不需要重启 Oracle CDC 实例(例如添加或删除捕获实例)。 但是,某些更改(例如更改 Oracle 连接字符串或访问凭据)需要重启 CDC 实例。

  • 处理恢复:当 Oracle CDC 实例启动时,其内部状态将从 xdbcdc_statexdbcdc_staged_transactions 表中还原。 状态恢复后,CDC 实例会正常运行。

另请参阅

错误处理