0

我正在使用 AWS DMS 迁移 350G 的数据。

迁移已完成,但状态显示错误。我检查了 cloudwatch 日志并收到以下错误:

E: RetCode: SQL_ERROR SqlState: HY000 NativeError: 1280 消息: [MySQL][ODBC 5.3(w) Driver][mysqld-5.5.5-10.2.12-MariaDB-log]不正确的索引名称'PRIMARY' [1022502] (ar_odbc_stmt .c:4428)

[TARGET_LOAD ]E:执行 createprimery key 失败,语句 ALTER TABLE <databaseName><table>添加约束PRIMARY主键 ( id) [1022502] (odbc_endpoint_imp.c:3938)

我比较了源和目标上的数据库,发现表大小有一些变化,而且目标 RDS 上的Key字段为空;我怀疑密钥没有迁移到我的目标 RDS(与使用describe相比)。在 DMS 文档中提到密钥将被迁移。

有没有办法解决这个问题?

如果有人在使用 AWS RDS 时遇到问题,请告诉我。

4

1 回答 1

1

看起来 DMS 正在尝试应用已存在于目标中的索引。从另一个问题来看,不正确的索引名称消息与尝试创建已存在的索引有关。

考虑运行Schema Conversion Tool来创建目标模式,并在目标表准备模式为不执行任何操作的情况下运行 DMS 任务。通过这种方式,您可以对架构创建与迁移数据分开进行故障排除。

还可以考虑使用源表过滤器为该表创建一个任务配置相同的任务,这将为您提供完整的端到端目标日志。

作为参考,AWS 为 DMS 故障排除编写了一个非常详细的博客系列:

  1. 调试您的 AWS DMS 迁移:出现问题时该怎么办(第 1 部分)
  2. 调试您的 AWS DMS 迁移:出现问题时该怎么办(第 2 部分)
  3. 调试 AWS DMS 迁移:出现问题时该怎么办?(第 3 部分)
于 2018-09-27T01:18:42.117 回答