我能够使用 DMS 克隆我的 SQL Server 数据库之一。它将聚集索引、主键定义等与数据一起复制。
但是,它并没有移动/复制其他约束(身份、外键定义、默认值)或任何索引。
我已经生成/编写了索引、默认约束和外键,并成功执行。但是有没有办法打开相应列上的
IDENTITY
?
发现我无法使用 AWS DMS 执行此操作,因为它也不导入辅助/外键、索引和身份列。您需要通过从 SSMS 生成脚本或编写自己的脚本来手动完成此操作。
查看亚马逊的常见问题解答:
问。 AWS Database Migration Service 是否会为我迁移数据库架构?
要将数据库架构快速迁移到目标实例,您可以依靠 AWS Database Migration Service 的基本架构复制功能。如果目标尚不包含同名表,基本架构复制将自动在目标实例中创建表和主键。基本架构复制非常适合进行测试迁移,或者当您异构地迁移数据库时,例如Oracle 到 MySQL 或 SQL Server 到 Oracle。基本架构复制不会迁移二级索引、外键或存储过程。当您需要使用更可自定义的架构迁移流程时(例如,当您迁移生产数据库并需要移动存储过程和辅助数据库对象时),您可以使用 AWS Schema Conversion Tool 进行异构迁移,或使用架构导出源引擎的原生工具,如果您正在进行同质迁移,例如 (1) SQL Server Management Studio 的导入和导出向导,(2) Oracle 的 SQL Developer 数据库导出工具或使用 dbms_metadata 包编写导出脚本,(3) MySQL 的工作台迁移向导。
使用来自架构导出、AWS Schema Conversion Tool (AWS SCT) 的数据库定义语言 (DDL) 在 AWS DMS 目标终端节点上手动创建的表或从备份还原的表,因此保留 IDENTITY 属性。 https://aws.amazon.com/blogs/database/handle-identity-columns-in-aws-dms-part-1/ https://aws.amazon.com/blogs/database/handle-identity-columns-in-aws-dms-part-2/
当 AWS DMS 将数据从源复制到目标时,它会在更新目标表时将 IDENTITY_INSERT 设置为 ON,并在更改完成后将其设置为 OFF。