CDC 捕获方法操作注意事项

了解 SQL Server CDC Capture 选项、功能和建议的设置。

优化 SQL Server 更改数据捕获

以下信息有助于提高提取的捕获性能。

Oracle GoldenGate CDC 对象版本控制

Oracle GoldenGate 提供了一个版本跟踪子系统,用于跟踪在启用补充日志记录时 Oracle GoldenGate 创建的 CDC 对象。下列对象为:

SQL Server 更改数据捕获的支持和不支持的提取参数

了解用于 CDC 提取的参数。下表列出了支持和不支持的参数。

支持的参数 参数不受支持
TRANLOGOPTIONS TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT/NOMANAGESECONDARYTRUNCATIONPOINT/ACTIVESECONDARYTRUNCATIONPOINT
ALWAYSONREADONLYROUTING -
TRANLOGOPTIONS LOB_CHUNK_SIZE -
TRANLOGOPTIONS MANAGECDCCLEANUP/NOMANAGECDCCLEANUPTRANLOGOPTIONS -
TRANLOGOPTIONS QUERYTIMEOUT -
TRANLOGOPTIONS TRANCOUNT -

事务处理日志选项 LOB_CHUNK_SIZE

为 CDC Capture 方法添加了提取参数 LOB_CHUNK_SIZE 以支持大型对象。如果 LOB 数据大小很大,则可以将 LOB_CHUNK_SIZE 从 4000 字节的默认值调整为 65535 字节以内的较高值,从而增加提取大小,从而减少提取整个 LOB 所需的行程。

示例:TRANLOGOPTIONS LOB_CHUNK_SIZE 8000

TRANLOGOPTIONS MANAGECDCCLEANUP/NOMANAGECDCCLEANUP

CDC Capture 方法使用 Extract 参数 MANAGECDCCLEANUP/NOMANAGECDCCLEANUP 指示 Extract 是否维护 Oracle GoldenGate CDC Cleanup 作业中的恢复检查点数据。将维护恢复检查点,但如果未启用 SQL Server CDC 清除作业,则不会清除 ct 表。清除时需要指定此值。

默认值为 MANAGECDCCLEANUP,且不必在提取中显式列出。但是,它确实需要在启动提取之前创建 Oracle GoldenGate CDC 清除作业。MANAGECDCCLEANUP 应用于所有生产环境,其中 NOMANAGECDCCLEANUP 可用于临时实施并根据需要测试实施。

示例:TRANLOGOPTIONS MANAGECDCCLEANUP

事务处理日志选项排除用户/排除项

SQL Server CDC Capture 作业不捕获与事务处理关联的用户信息或事务处理名称,并且由于此信息未记录在 CDC 中转表中,Extract 没有从特定用户或特定事务处理名称的 DML 中排除 DML 的方法。因此,EXCLUDEUSER 和 EXCLUDETRANS 参数对 CDC Capture 进程无效。

TRANLOGOPTIONS 管理 ECONDARYTRUNCATIONPOINT/NOMANAGESECONDARYTRUNCATIONPOINT/ACTIVESECONDARYTRUNCATIONPOINT

SQL Server 更改数据捕获作业是使用 Oracle GoldenGate CDC Capture 方法从事务处理日志中捕获数据的唯一进程。提取未处理辅助截断点管理,对于更改数据捕获提取,这些参数无效。

事务日志选项始终只读

ALWAYSONREADONLYROUTING 参数允许 Extract for SQL Server 在连接到 Always On 可用性组监听程序时将其只读处理路由到可用的只读辅助服务器。

事务处理日志选项查询超时

指定对 SQL Server 的查询在报告超时错误消息之前等待结果的时间。此选项接受一个整数值来表示秒数。默认查询超时值是 300 秒(5 分钟)。最小值为 0 秒(无限超时)。最大值是 2147483645 秒。

事务处理日志选项批次款项

允许通过提取调整每次调用处理的事务数,以从 SQL Server 更改数据捕获分段表中提取数据。根据您的事务处理工作量,调整此值可能会提高捕获速率吞吐量,但并非所有工作量都会受到积极影响。最小值为 1,最大值为 100,默认值为 10。

Oracle GoldenGate CDC 清除流程的详细信息

默认情况下,CDC 提取需要 Oracle GoldenGate 清除更改数据任务,因为“提取”默认为 TRANLOGOPTIONS MANAGECDCCLEANUP。

对于为 CDC Capture 启用的每个数据库,应该只有一个清除任务,您必须使用本文档的为 Oracle GoldenGate 准备数据库部分中提到的步骤来创建任务。

修改 Oracle GoldenGate 清除更改数据任务

Oracle GoldenGate 清除更改数据任务的默认清除任务频率调度和数据保留期是每 10 分钟运行一次,数据保留策略为 3 天或 1 小时,具体取决于安装的 Oracle GoldenGate 版本。

对于特定于客户的要求,可能需要调整保留期(保留规则选项)和任务运行时计划(清除频率选项)。

保留规则选项确定要保留在源数据库中的 CDC 暂存数据量(以小时或天为单位)。根据安装的 Oracle GoldenGate 版本,默认值为 3 天或 1 小时。较低的 CDC 数据保留期可减少数据库中存储的 CDC 中转数据量,但限制用户将提取重新定位回比中转表中存在的数据更早的时间的能力。通常,不需要将现有提取重新定位回较早的时间点,因此建议使用较新的默认设置 1 小时,除非存在需要将更多中转数据保留在数据库中的特定情况。请注意,如果将此值从较高的保留期更改为非常短的保留期,则下次运行任务计划时,可能会占用大量事务处理日志空间和系统开销。因此,建议随着时间的推移慢慢减小 Keep Rule 值,直到达到所需的结束值。

清除频率表示任务的运行频率,默认值为每 10 分钟。建议保留默认值,除非清除任务的开销在高用户活动期间影响数据库性能。

要修改现有的“清除更改数据”任务,请从管理服务左侧的菜单中导航到配置,以打开配置页。1。单击配置页中的任务以打开任务页。

  1. 单击任务页中的清除更改数据。

  2. 单击现有任务旁边的更改任务图标。

  3. 根据需要修改保留规则和清除频率选项的值。

  4. 单击 Submit(提交)保存更改。

删除 Oracle GoldenGate 清除更改数据任务

只有在没有根据特定数据库配置要捕获的提取时,才应删除数据库的“清除更改数据”任务。

要删除现有的“清除更改数据”任务,请从管理服务左侧的菜单中导航到配置选项,以打开配置页。1。单击配置页中的任务以打开任务页。

  1. 单击任务页中的清除更改数据。

  2. 单击要删除的任务旁边的删除任务图标。

从经典提取更新到 CDC 提取

如果您计划从 Oracle GoldenGate 12c (12.3.0.1) 或更早版本使用经典提取到 Oracle GoldenGate 26ai CDC 提取,则必须删除使用经典提取安装方法实施的补充日志记录,并使用 CDC Extract 安装二进制文件重新启用补充日志记录,因为两个版本之间对启用 TRANDATA 的调用不同,并且 CDC Extract 不支持对经典提取执行 TRANDATA。

请遵循以下一般准则来删除和重新启用补充日志记录。如果在生产系统中从 Classic 迁移到 CDC Extract,则应特别考虑和规划。此处提供的信息不涵盖所有要求,仅作为补充日志记录的一般要求提供:

  1. 确保经典提取已处理了日志中的所有剩余数据,并且可以正常停止。

  2. 根据提取与其他复制或 CDC 组件相关的运行方式,执行以下操作之一:

    • 如果 Extract 未与 SQL Server 事务处理复制或同一数据库上的非 Oracle CDC 配置同时运行,请在 Management Studio 中打开查询会话,并对源数据库发出以下语句以禁用和删除任何 CDC 或复制组件,并清除辅助截断点。

      EXEC sys.sp_cdc_disable_db

    • 如果 Extract 与 SQL Server 事务处理复制或同一数据库上的非 Oracle CDC 配置同时运行,请从 Classic Extract 的安装文件夹运行管理客户机,使用 DBLOGIN 登录到源数据库,然后针对 Extract 配置中的每个表发出以下命令。可以使用通配符来指定多个表名

      DELETE TRANDATA owner.table

      DELETE TRANDATA owner.*

  3. 删除任何心跳表条目(如果已安装)。

    DELETE HEARTBEATTABLE

  4. 使用 Oracle GoldenGate CDC Extract 安装二进制文件,按照 Prepare the Database for Oracle GoldenGate 中列出的步骤重新启用补充日志记录和其他必要的组件,然后重新添加心跳表。