跳至内容

如何使用 AWS DMS 批量应用来提高 CDC 复制性能?

2 分钟阅读
0

我想提高完全加载和 CDC AWS Database Migration Service (AWS DMS) 任务的变更数据捕获 (CDC) 复制性能。源延迟不高,但目标延迟较高或正在升高。

简短描述

默认情况下,AWS DMS 在 CDC 阶段使用事务应用来复制数据。如果您的任务从来源捕获大量事务并导致目标延迟,则可以激活批量应用设置。

**注意:**默认情况下,Amazon Redshift 目标使用批量应用。Amazon Simple Storage Service (Amazon S3) 目标必须使用事务应用。

批量应用仅适用于具有主键或唯一索引的表。对于没有主键或唯一索引的表,批量应用仅在批量模式下应用插入,然后逐一执行更新和删除。如果该表有主键或唯一索引但切换到逐一模式,请参阅如何对 Amazon Redshift 切换到逐一模式的问题进行故障排除?

当您在复制中包含大型二进制对象 (LOB) 列时,只能在有限的 LOB 模式下使用 BatchApplyEnabled。有关详细信息,请参阅目标元数据任务设置

**注意:**如果您将 BatchApplyEnabled 设置为 true,并且您的目标有唯一的约束条件,则 AWS DMS 会生成一条错误消息。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

默认情况下,BatchApplySetting 处于关闭状态。要激活此设置,请使用 AWS CLI 或 AWS DMS 控制台。在激活批量应用之前,请创建一个具有编程访问权限的 IAM 用户。

使用 AWS CLI 激活批量应用

完成以下步骤:

  1. 打开使用 AWS CLI 的系统。
  2. 运行 configure 命令以打开 AWS CLI 提示符。
  3. 输入您的 AWS 访问密钥 ID。
  4. 输入您的 AWS 密钥 ID。
  5. 输入您的 AWS DMS 资源的 AWS 区域。
  6. 输入输出格式。
  7. 确认任务处于 stopped(已停止)状态。
  8. 使用以下批处理设置运行 modify-replication-task 命令:
    aws dms modify-replication-task --replication-task-arn arn:aws:dms:region:123456789123:task:4VUCZ6ROH4ZYRIA25M3SE6NXCM --replication-task-settings "{\"TargetMetadata\":{\"BatchApplyEnabled\":true}}"
    **注意:**将 replication-task-arn 替换为您的 Amazon 资源名称 (ARN),将 region 替换为您的区域。
  9. 打开 AWS DMS 控制台
  10. 在导航窗格的 Migrate or replicate(迁移或复制)下,选择 Tasks(任务)。
  11. 选择您的任务,然后选择 Task settings (JSON)(任务设置 (JSON))。
  12. 确认 BatchApplyEnabled 已设置为 enabled(已启用)。

使用 AWS DMS 控制台激活批量应用

完成以下步骤:

  1. 打开 AWS DMS 控制台
  2. 在导航窗格的 Migrate or replicate(迁移或复制)下,选择 Tasks(任务)。
  3. 选择您的任务,然后选择 Modify(修改)。
  4. Task settings(任务设置)部分中,选择 JSON editor(JSON 编辑器)。
  5. TargetMetadata 下,将 BatchApplyEnabled 更改为 true
  6. 选择 Save(保存)。

在批处理模式下运行任务后,对高 CDCLatencyTarget 进行故障排除

如果在批处理模式下运行任务后 CDCLatencyTarget 较高,则可能会由于以下原因导致延迟:

  • 由于没有主索引和二级索引,您在目标上有一个长时间运行的事务。
  • 您的可用资源不足,无法处理目标上的工作负载。
  • 您的 AWS DMS 复制实例存在严重的资源争用。

要对高延迟问题进行故障排除,请参阅对 AWS Database Migration Service 中的延迟问题进行故障排除

相关信息

监控 AWS DMS 任务

更改处理优化设置

AWS 官方已更新 6 个月前