You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DMS同步异常:RDS MySQL新建表未迁移至Redshift

问题分析与解决步骤

核心原因

DMS在「全量+CDC」模式下,新增无主键表无法同步到Redshift,主要和表映射范围、无主键表的CDC捕获配置、MySQL源端Binlog设置这几个关键点有关——默认情况下DMS不会自动同步未包含在映射规则里的表,且无主键表需要额外配置才能被CDC流程识别。

具体解决步骤

1. 调整迁移任务的表映射规则

  • 检查当前任务的表映射:如果之前是指定具体表名,新增表不会被自动纳入同步范围。
    • 修改表映射为 你的库名.%,用通配符匹配该库下所有新增表;如果是多库同步,可设置为 %(需注意过滤不需要的库)。
    • 确认没有添加排除新增表的过滤规则,比如特定前缀/后缀的排除条件。

2. 开启源端点对无主键表的CDC支持

编辑RDS MySQL源端点,在额外连接属性中添加以下配置:

captureDDLs=1;includeNoPrimaryKeyTables=1;cdcMaxBatchInterval=5
  • includeNoPrimaryKeyTables=1:允许DMS捕获无主键表的变更数据
  • captureDDLs=1:让DMS自动捕获CREATE TABLE这类DDL语句,同步表结构到Redshift

3. 验证MySQL Binlog配置

DMS CDC依赖行级Binlog,需确认RDS MySQL的以下配置:

  • 执行SQL检查Binlog格式:
    SHOW VARIABLES LIKE 'binlog_format';
    
    确保结果为ROW,若不是则修改RDS参数组并重启实例(注意业务停机影响)。
  • 检查Binlog行镜像设置:
    SHOW VARIABLES LIKE 'binlog_row_image';
    
    确保结果为FULL,保证DMS能捕获完整的行变更数据。

4. 重启DMS迁移任务

修改端点配置和表映射后,必须停止并重启迁移任务,让新配置生效。重启后DMS会重新扫描源端表结构,自动识别新增的无主键表并启动全量同步+CDC捕获。

5. 手动触发全量同步(可选)

如果重启任务后新增表仍未同步,可手动触发全量加载:

  • 在DMS控制台进入目标任务,打开「表统计」页面,找到对应新增表,点击「重新加载表」即可。

注意事项

  • 无主键表在CDC阶段的性能会低于有主键/唯一键的表,因为DMS需要用整行数据做匹配标识,建议业务允许的情况下给表添加主键或唯一约束。
  • 确保DMS任务绑定的IAM角色拥有读取RDS Binlog、执行DDL捕获的权限。

内容的提问来源于stack exchange,提问作者Sumant Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:36:14