我正在使用awsdms迁移350g的数据。
迁移已完成,但状态显示错误。我检查了cloudwatch日志,发现以下错误:
e:retcode:sql\u error sqlstate:hy000 nativeerror:1280消息:[mysql][odbc 5.3(w)driver][mysqld-5.5.5-10.2.12-mariadb-log]索引名“primary”[1022502](ar\u odbc\u stmt.c:4428)
[target_load]e:执行create primery key失败,语句alter table <databaseName>
. <table>
添加约束 PRIMARY
主键( id
)[1022502](odbc\端点\导入c:3938)
我比较了源和目标上的dbs,发现表的大小有一些变化,而且目标rds上的密钥字段是空的;我怀疑密钥没有迁移到我的目标rds(使用descripe进行比较)。在dms文档中提到密钥将被迁移。
有办法解决这个问题吗?
如果有人在使用aws rds时遇到问题,请告诉我。
1条答案
按热度按时间ma8fv8wu1#
看起来dms正在尝试应用目标中已经存在的索引。从另一个问题来看,不正确的索引名消息与试图创建已存在的索引有关。
考虑运行schema conversion工具来创建目标模式,并在目标表准备模式为donothing的情况下运行dms任务。通过这种方式,您可以在迁移数据的同时对模式的创建进行故障排除。
还可以考虑使用源表过滤器为这个表创建一个任务,该表具有相同的任务配置,这将为您提供一个完整的端到端目标日志。
为了便于参考,aws编写了一个非常详细的博客系列,用于dms故障排除:
调试aws-dms迁移:出错时该怎么办(第1部分)
调试aws-dms迁移:出错时该怎么办(第2部分)
调试您的aws-dms迁移:出错时该怎么办(第3部分)