AWS Database Migration Service
用户指南 (版本 API Version 2016-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

AWS Database Migration Service 的工作原理

AWS Database Migration Service (AWS DMS) 是一种 Web 服务,可用于将数据从源数据存储迁移到目标数据存储。这两个数据存储称为终端节点。您可在使用相同数据库引擎的源和目标终端节点之间迁移,例如从 Oracle 数据库到 Oracle 数据库。您也可在使用不同数据库引擎的源和目标终端节点之间迁移,例如从 Oracle 数据库到 PostgresSQL 数据库。使用 AWS DMS 的唯一要求是,您的终端节点之一必须位于 AWS 服务上。您不能使用 AWS DMS 从一个本地数据库迁移到另一个本地数据库。

有关数据库迁移成本的信息,请参阅 AWS Database Migration Service 定价页面

使用以下主题更好地了解 AWS DMS。

AWS DMS 概要视图

要执行数据库迁移,AWS DMS 将连接到源数据存储,读取源数据并设置数据格式以供目标数据存储使用。然后,它会将数据加载到目标数据存储中。此处理大部分在内存中进行,不过大型事务可能需要部分缓冲到磁盘。缓存事务和日志文件也会写入磁盘。

概括来说,使用 AWS DMS 时您需要执行以下操作:

  • 创建复制服务器。

  • 创建源和目标终端节点,它们具有有关您的数据存储的连接信息。

  • 创建一个或多个迁移任务以在源和目标数据存储之间迁移数据。

任务可能包括三个主要阶段:

  • 完全加载现有数据

  • 应用缓存的更改

  • 持续复制

在完全加载迁移过程中,源中的现有数据将移动到目标数据库;AWS DMS 会将源数据存储上的表中的数据加载到目标数据存储上的表。在完全加载进行期间,对所加载表进行的更改将缓存到复制服务器上;这些是缓存的更改。请务必注意,在启动给定表的完全加载后,AWS DMS 才会捕获该表的更改。换句话说,对于每个单独的表,开始捕获更改的时间点是不同的。

指定表的完全加载完成时,AWS DMS 立即开始应用该表的缓存更改。所有表加载之后,AWS DMS 开始收集更改作为持续复制阶段的事务。AWS DMS 应用所有缓存更改之后,表处于事务一致的状态。此时,AWS DMS 转向持续复制阶段,将更改作为事务进行应用。

持续复制阶段开始之后,积压的事务通常会导致源数据库与目标数据库之间的一些滞后。在处理完这些积压事务之后,迁移最终进入稳态。此时,您可以关闭应用程序,允许任何剩余的事务应用到目标,然后启动您的应用程序,现在指向目标数据库。

AWS DMS 创建执行迁移所需的目标架构对象。不过,AWS DMS 采用极简方法,仅创建有效迁移数据所需的那些对象。换而言之,AWS DMS 创建表、主键和(在某些情况下)唯一索引,但它不会创建有效迁移源中的数据时不需要的任何其他对象。例如,它不会创建二级索引、非主键约束或数据默认值。

在大多数情况下,执行迁移时,您还要迁移大部分或所有源架构。如果您执行同构迁移 (在相同引擎类型的两个数据库之间),则您可以使用引擎的本机工具导出和导入架构本身而无需任何数据,以此来迁移架构。

如果执行异构迁移(在使用不同引擎类型的两个数据库之间),可以使用 AWS Schema Conversion Tool (AWS SCT) 生成一个完整的目标架构。如果使用该工具,则需要在迁移的“完全加载”和“缓存的更改应用”阶段禁用表之间的任何依赖项,例如,外键约束。如果出现性能问题,在迁移过程中删除或禁用辅助索引会有帮助。有关 AWS SCT 的更多信息,请参阅 AWS SCT 文档中的 AWS Schema Conversion Tool

本页内容: