我想在使用 AWS Database Migration Service (AWS DMS) 迁移期间向我的目标数据库添加二级对象。
简短描述
当 AWS DMS 在目标数据库上创建表时,AWS DMS 仅会迁移将数据迁移到目标所需的对象。有关详细信息,请参阅缺少外键和二级索引。
如果您在目标数据库上手动创建表,则最佳做法是在迁移开始之前删除二级对象,例如二级索引。
**注意:**对于仅更改数据捕获 (CDC) 任务,无需删除二级对象。
何时向目标数据库添加二级对象取决于任务使用的迁移方法。
解决方法
仅完全加载任务
对于仅完全加载任务,请在迁移开始之前删除主键和所有二级对象。在完全加载完成后创建对象。如果在完全加载期间目标数据库上存在二级对象,则可能需要进行额外的维护操作。
如果目标上存在外键,则外键可能会导致任务失败。出现失败的原因是任务未按特定的顺序将各组表加载到一起。有关详细信息,请参阅如何解决 AWS DMS 任务因违反外键约束错误而失败的问题?
要避免此问题,请在表映射中手动指定加载顺序。
仅 CDC 任务
对于仅 CDC 任务,请在迁移之前在目标数据库上创建二级索引和外键。然后,在迁移完成后、应用程序割接之前,在目标上创建触发器。
完全加载和 CDC 任务
对于完全加载和 CDC 任务,请在迁移开始之前删除所有二级对象。当完全加载进行时,任务会缓存正在加载的表的更改。表的完全加载完成后,任务将应用缓存的更改,且目标表在事务上保持一致。然后,AWS DMS 将开始持续复制阶段。
在迁移的以下阶段,在目标数据库上应用二级对象:
- 完全加载现有数据: 在任务完成完全加载后、应用缓存的更改之前添加二级索引。
- 应用缓存的更改: 在任务应用缓存的更改之后添加外键,例如引用完整性约束。
- 持续复制: 在迁移完成后、应用程序割接之前创建触发器。
要在迁移期间停止任务,请使用任务设置。要在任务应用缓存的更改之前停止任务,请使用 StopTaskCachedChangesNotApplied。要在任务应用缓存的更改之后停止任务,请使用 StopTaskCachedChangesApplied。
要开启任务设置,您可以使用 AWS 命令行界面 (AWS CLI)。
**注意:**如果您在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
相关信息
创建任务
完全加载任务设置
AWS DMS 的高级视图
目标表准备模式