跳至主要内容

AWS Database Migration Service 文档

AWS Database Migration Service(AWS DMS)旨在帮助您将数据库迁移到 AWS,以便源数据库在迁移期间保持运行,从而帮助最大限度地减少依赖数据库的应用程序的停机时间。AWS Database Migration Service 可以在多种广泛使用的开源商业数据库之间迁移您的数据。AWS Database Migration Service 支持同构迁移(例如从 Oracle 迁移至 Oracle),以及不同数据库平台之间的异构迁移(例如从 Oracle 或 Microsoft SQL Server 迁移至 Amazon Aurora)。借助 AWS Database Migration Service,您可以持续地以高可用性复制数据,并通过将数据流式传输到 Amazon Redshift 和 Amazon S3,将数据库整合到 PB 级的数据仓库中。

优势

易于使用 – 借助 AWS Database Migration Service,无需安装任何驱动程序或应用程序,大多数情况下,也不需要对源数据库进行更改。您可以在 AWS 管理控制台中开始数据库迁移。当迁移开始后,DMS 会管理迁移过程,包括自动复制源数据库在迁移期间发生的数据更改。此外,您还可以将此服务用于连续数据复制。

最短停机时间 – AWS Database Migration Service 旨在帮助您将数据库迁移至 AWS,而且几乎没有停机时间。源数据库在迁移期间发生的数据更改会持续复制到目标数据库,因此源数据库在迁移期间仍可继续正常运行。数据库迁移完成后,目标数据库在您选择的时间段内仍会与源数据库保持同步,使您能够在方便的时候切换数据库。

支持广泛使用的数据库 – AWS Database Migration Service 可以在广泛使用的商用和开源数据库之间迁移数据。该服务支持同构迁移(例如从 Oracle 迁移至 Oracle),以及不同数据库平台之间的异构迁移(例如从 Oracle 迁移至 Amazon Aurora)。它可以将本地数据库迁移至 Amazon RDS 或 Amazon EC2、将 EC2 上运行的数据库迁移至 RDS(或者反向迁移),以及将 RDS 数据库迁移至其他 RDS 数据库。它还可以在基于 SQL、NoSQL 和文本的目标之间移动数据。

持续复制 – 您可以为一次性迁移或持续复制设置 DMS 任务。持续复制任务能让您的源数据库和目标数据库保持同步。在设置完毕后,持续复制任务将持续地将源数据库的更改应用到目标数据库系统中。在任何复制任务中都能使用数据验证和转换。

可靠性 – AWS Database Migration Service 持续监控源数据库和目标数据库、网络连接和复制实例。如果出现停止的情况,服务会重启迁移过程,并从中止的位置继续迁移。利用多可用区选项,您可以通过启用冗余复制实例来体验数据库迁移和连续数据复制的高可用性。

迁移计划

AWS DMS Fleet Advisor 可以自动执行迁移计划,并帮助您轻松大规模地将数据库和分析机群迁移到云。为了加快迁移,AWS DMS Fleet Advisor 将会自动盘存和评测您的本地数据库和分析服务器机群,然后确定潜在的迁移计划。它会发现和分析 AWS DMS 中支持的相同源数据库,并在几个小时内提供结果。

架构评测和转换

AWS DMS Schema Conversion(DMS SC)允许您以零停机时间大规模自动评测和转换数据库架构和代码对象。它支持热门的异构迁移,例如从 Oracle 迁移至 Amazon RDS for PostgreSQL、从 SQL Server 迁移至 Amazon RDS for MySQL、从 SQL Server 迁移至 Amazon Aurora PostgreSQL 兼容版以及从 Oracle 迁移至 Amazon Aurora MySQL 兼容版。

只需在 DMS Schema Conversion 中点击几下,您就可以生成显示架构转换复杂性的评测报告,并获得有关如何解决源数据库引擎和目标数据库引擎之间任何不兼容问题的规范性指导。或者,您可以下载 AWS Schema Conversion Tool(AWS SCT)并在本地系统上执行相似的评测和转换。 

使用案例

同构数据库迁移 – 在同构数据库迁移中,源数据库和目标数据库采用相同或兼容的数据库引擎,例如从 Oracle 迁移至 Amazon RDS for Oracle、从 MySQL 迁移至 Amazon Aurora、从 MySQL 迁移至 Amazon RDS for MySQL 或从 Microsoft SQL Server 迁移至 Amazon RDS for SQL Server。由于源数据库和目标数据库的架构结构、数据类型和数据库代码都是兼容的,此类迁移只需一个步骤即可完成。您可以通过连接源数据库和目标数据库创建迁移任务,然后开始迁移。源数据库可以位于 AWS 之外您自己的场所,可以运行在 Amazon EC2 实例上,也可以是 Amazon RDS 数据库。目标数据库可以是 Amazon EC2 或 Amazon RDS 中的数据库。

异构数据库迁移 – 在异构数据库迁移中,源数据库和目标数据库采用不同的数据库引擎,例如从 Oracle 迁移至 Amazon Aurora、从 Oracle 迁移至 PostgreSQL 或从 Microsoft SQL Server 迁移至 MySQL。在这种情况下,源数据库和目标数据库的架构结构、数据类型和数据库代码可能差别巨大,要求在开始迁移数据之前先执行架构和代码转换。这使得异构数据库迁移需要分成两个步骤。首先,使用旨在转换源数据库架构和代码的 AWS Schema Conversion Tool,使其与目标数据库匹配;然后,使用旨在迁移数据的 AWS Database Migration Service 将数据从源数据库迁移至目标数据库。必要的数据类型转换将由 AWS Database Migration Service 在迁移过程中完成。源数据库可以位于 AWS 之外您自己的场所,可以运行在 Amazon EC2 实例上,也可以是 Amazon RDS 数据库。目标数据库可以是 Amazon EC2 或 Amazon RDS 中的数据库。

开发与测试 – AWS Database Migration Service 还可用于将数据迁移到云以及将数据从云中迁移出来。有两种常见的应用场景:第一种是在 AWS 上部署开发、测试或暂存系统,从而利用云的可扩展性和快速预置功能。如此一来,开发和测试人员可以使用真实生产数据的副本,还可以将更新复制回本地生产系统。第二种应用场景为开发系统位于本地(通常位于个人笔记本电脑中)时,将 AWS 云生产数据库的当前副本一次性或持续迁移到这些本地系统。这有助于避免打断现有的 DevOps 流程,同时确保生产系统处于最新状态。

数据库整合 – 您可以使用 AWS Database Migration Service,将多个源数据库整合至一个目标数据库。同构和异构数据库迁移都可以实现此目标,您也可以对所有受支持的数据库引擎使用此功能。源数据库可以位于您本地(AWS 外部),可以在 Amazon EC2 实例上运行,也可以是 Amazon RDS 数据库。源数据库还可以分布在不同的地点。例如,第一个源数据库位于 AWS 之外您自己的场所,第二个数据库在 Amazon EC2 中,第三个数据库则位于 Amazon RDS 数据库。目标数据库可以是 Amazon EC2 或 Amazon RDS 中的数据库。

DMS 无服务器

AWS DMS Serverless 可自动预置、监控迁移资源并将其扩展到适当的容量以满足需求。其支持常用的 DMS 使用案例,包括连续数据复制、数据库整合和迁移,即使源数据库引擎与目标数据库引擎不同也不例外。DMS Serverless 是托管式的,您只需为使用的数据迁移容量付费。源数据库可以位于您本地(AWS 外部),可以在 Amazon EC2 实例上运行,也可以是 Amazon RDS 数据库。源数据库可以分布在不同的地点。例如,第一个源数据库位于 AWS 之外您的场所,第二个数据库在 Amazon EC2 中,第三个数据库则位于 Amazon RDS 数据库。目标数据库可以是 Amazon EC2 或 Amazon RDS 中的数据库。

持续数据复制 – AWS Database Migration Service 还旨在执行持续数据复制。连续数据复制具有多种使用案例,包括灾难恢复实例同步、地理数据库分发和开发/测试环境同步。您可以使用 DMS 针对所有受支持的数据库引擎执行同构和异构数据复制。源数据库或目标数据库可以位于 AWS 之外您自己的场所,可以运行在 Amazon EC2 实例上,也可以是 Amazon RDS 数据库。您可以将数据从一个数据库复制到一个或多个目标数据库,或者对来自多个数据库的数据进行整合并将其复制到一个或多个目标数据库。

其他信息

有关服务控制、安全特征和功能的更多信息,包括有关存储、检索、修改、限制和删除数据的信息(如适用),请参阅 https://docs.aws.amazon.com/index.html。对于 http://aws.amazon.com/agreement 上的《AWS 客户协议》或者您与 AWS 之间签订的用于管理您使用 AWS 服务的其他协议而言,这些其他信息并不构成此文档的一部分。