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

AWS DMS迁移RDS MySQL时系统表迁移失败提示pending validation问题

AWS DMS迁移RDS MySQL系统库表报错排查解决方法

1. 先确认系统库迁移必要性

  • performance_schema 是MySQL内置的运行时性能统计库,所有数据都是实例运行时动态生成的,完全不需要迁移,强制迁移也会因为源目标实例运行状态不一致触发报错。
  • mysql 库是MySQL的核心系统元数据库,你遇到报错的user、proc、event存储的是账号权限、存储过程、定时事件这类特殊元数据,DMS默认不支持直接迁移这类系统表,没有特殊需求不要全库迁移mysql库。

2. 调整DMS任务映射规则排除系统表

你可以直接修改DMS任务的转换规则,添加排除规则过滤报错的系统表,无需修改其他配置:

  • 排除整个performance_schema库:匹配规则选择「schema name」,运算符选「equals」,值填performance_schema,动作设置为exclude
  • 排除mysql库下的报错系统表:匹配规则选择「schema name」等于mysql,再添加表名匹配规则,分别匹配event、user、proc三张表,动作设置为exclude

如果你确实在mysql库下存了自定义业务表,只需要排除上述报错的系统表即可,不需要全库排除mysql。

3. 手动迁移需要的系统元数据

如果你确实需要迁移账号、存储过程、事件这类元数据,不要用DMS迁移,用mysqldump工具单独处理:

  • 迁移用户权限:在源RDS实例执行命令导出用户数据 mysqldump -u [你的账号] -p --no-data --databases mysql --tables user > user_backup.sql,导出后删掉目标实例已经存在的系统账号(比如rdsadmin、默认root账号),再导入到目标RDS实例
  • 迁移存储过程:执行命令导出 mysqldump -u [你的账号] -p --routines --no-create-info --no-data --no-create-db --skip-opt [你的业务库名] > routines_backup.sql,导入目标实例即可
  • 迁移定时事件:执行命令导出 mysqldump -u [你的账号] -p --events --no-data --no-create-info [你的业务库名] > events_backup.sql,导入目标实例即可

4. 重启DMS任务重新验证

修改完映射规则后,重启DMS任务,等全量同步完成后重新触发验证,pending validation报错就会自动消失。

可选排查项

如果调整规则后仍有报错,可以检查两个配置:

  • 确认DMS使用的源端和目标端账号权限符合要求:源端需要SELECT、REPLICATION CLIENT、REPLICATION SLAVE权限,目标端需要ALTER、CREATE、DROP、INSERT、UPDATE、DELETE权限
  • 确认目标端RDS参数组配置和源端兼容,log_bin、binlog_format等参数符合DMS迁移要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:12:02