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

AWS Database Migration Service 入门

AWS Database Migration Service (AWS DMS) 帮助您轻松、安全地将数据库迁移到 AWS。您可以在与最广泛使用的商用和开源数据库 (例如 Oracle、MySQL 和 PostgreSQL) 之间迁移数据。该服务支持同构迁移 (如 Oracle 到 Oracle),也支持不同数据库平台之间的异构迁移 (如 Oracle 到 PostgreSQL 或 MySQL 到 Oracle)。

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

通过 AWS Database Migration Service 开始数据库迁移

您可以通过多种方法开始数据库迁移。您可以选择将指导您完成该过程中各个步骤的 AWS DMS 控制台向导,也可以通过从导航窗格中选择相应的任务来执行各个步骤。您也可以使用 AWS CLI;有关将 CLI 与 AWS DMS 一起使用的信息,请参阅适用于 AWS DMS 的 AWS CLI

要使用该向导,请从 AWS DMS 控制台上的导航窗格中选择 Getting started (开始使用)。可以使用该向导来帮助创建您的第一个数据迁移。在向导执行过程中,您将分配执行迁移的所有过程的复制实例,指定源数据库和目标数据库,然后创建一个任务或一组任务来定义要使用的表和复制过程。随后,AWS DMS 将创建复制实例并对要迁移的数据执行任务。

或者,您可以通过从导航窗格中选择项来创建 AWS DMS 数据库迁移的每个组件。对于数据库迁移,您必须执行以下操作:

  • 完成设置 AWS Database Migration Service中概述的任务

  • 分配执行迁移的所有过程的复制实例

  • 指定源和目标数据库终端节点

  • 创建一个任务或一组任务来定义要使用的表和复制过程

步骤 1:欢迎

如果使用 AWS DMS 控制台向导启动数据库迁移,可以看到“Welcome”(欢迎) 页面,其中介绍使用 AWS DMS 的数据库迁移过程。


                    开始使用 AWS DMS

从控制台的“Welcome”页面开始数据库迁移

  • 选择 Next

步骤 2:创建复制实例

数据库迁移过程中的第一个任务是创建一个复制实例,该实例具有足够的存储和处理能力来执行您分配的任务并将数据从源数据库迁移至目标数据库。此实例的所需大小是变化的,具体取决于需迁移的数据量和需要实例执行的任务数。有关复制实例的更多信息,请参阅使用 AWS DMS 复制实例

以下过程假定您已选择 AWS DMS 控制台向导。请注意,也可以从 AWS DMS 控制台的导航窗格中选择 Replication instances (复制实例),然后选择 Create replication instance (创建复制实例) 以执行该步骤。

使用 AWS 控制台创建复制实例

  1. 在导航窗格中,单击复制实例

  2. 选择创建复制实例

  3. 创建复制实例页中,指定您的复制实例信息。下表描述了设置。

    
                            创建复制实例
    对于此选项 请执行该操作

    名称

    为复制实例指定包含 8 到 16 个可打印 ASCII 字符 (不含 /、" 和 @) 的名称。该名称对于所选择区域中您的账户应唯一。您可以选择向名称中添加一些信息,例如包含区域和要执行的任务,例如 west2-mysql2mysql-instance1

    描述

    键入复制实例的简要描述。

    实例类

    选择带迁移所需的配置的实例类。请记住,实例必须具有足够的存储、网络和处理能力才能成功完成迁移。有关如何决定最适合迁移的实例类的更多信息,请参阅使用 AWS DMS 复制实例

    复制引擎版本

    默认情况下,复制实例运行最新版本的 AWS DMS 复制引擎软件。建议您接受该默认值;不过,您可以选择以前的引擎版本 (如果需要)。

    VPC

    选择要使用的 Amazon Virtual Private Cloud (Amazon VPC)。如果源或目标数据库位于 VPC 中,请选择该 VPC。如果您的源数据库和目标数据库位于不同的 VPC 中,请确保它们位于公有子网中且可公开访问,然后选择复制实例将放置到的 VPC 中。复制实例必须能够访问源 VPC 中的数据。如果您的源数据库和目标数据库都不在 VPC 中,请选择复制实例将放置到的 VPC。

    多可用区

    可使用此可选参数在另一个可用区中创建复制实例的备用副本以支持故障转移。如果您打算使用更改数据捕获 (CDC) 或持续复制,您应启用该选项。

    公开访问

    如果您希望能够从 Internet 访问复制实例,请选择该选项。

  4. 选择高级选项卡 (如下所示) 以设置网络和加密设置值 (如果需要)。下表描述了设置。

    
                            “Advanced”(高级) 选项卡
    对于此选项 请执行该操作

    分配的存储空间 (GB)

    存储空间主要由日志文件和缓存的事务消耗。对于缓存事务,仅在需要将缓存的事务写入磁盘时消耗存储空间。因此,AWS DMS 不会使用大量存储空间。一些例外情况包括:

    • 产生大量事务负载的超大型表。加载大型表可能需要花费一些时间,因此,在大型表加载期间,很有可能将缓存的事务写入磁盘。

    • 配置为在加载缓存的事务之前暂停的任务。在此情况下,将缓存所有事务,直到为所有表完成完全加载。在使用此配置时,缓存的事务可能会占用大量存储空间。

    • 使用将加载到 Amazon Redshift 中的表配置的任务。但在目标为 Amazon Aurora 的情况下,此配置不会成为问题。

    在大多数情况下,默认分配的存储空间已足够。不过,关注与存储相关的指标并在您发现使用的存储空间大于默认分配值时纵向扩展始终是不错的做法。

    复制子网组

    在选定 VPC 中选择要在其中创建复制实例的复制子网组。如果源数据库位于 VPC 中,请选择包含源数据库的子网组作为复制实例的位置。有关复制子网组的更多信息,请参阅创建复制子组

    可用区

    选择源数据库所在的可用区。

    VPC 安全组

    在 VPC 中创建复制实例。如果源数据库位于 VPC 中,请选择一个 VPC 安全组,该安全组提供对数据库所在的数据库实例的访问权限。

    KMS 主密钥

    选择要用于加密复制存储和连接信息的加密密钥。如果选择 (默认值) aws/dms,则会使用与您的账户和区域关联的默认 AWS Key Management Service (AWS KMS) 密钥。将显示说明和您的账号以及密钥的 ARN。有关使用加密密钥的更多信息,请参阅设置加密密钥和指定 KMS 权限

  5. 指定维护设置。下表描述了设置。有关维护设置的更多信息,请参阅AWS DMS 维护时段

    
                        “Maintenance”(维护) 选项卡
    对于此选项 请执行该操作

    自动次要版本升级

    选择在维护时段内自动将次要引擎升级应用于复制实例。

    维护时段

    选择每周可以进行系统维护的时间范围,采用通用协调时间 (UTC)。

    默认值:从每区域 8 小时的时间段中随机选择的 30 分钟时段 (随机选取周中的某天进行)。

  6. 选择创建复制实例

步骤 3:指定源和目标终端节点

在创建复制实例时,您可以指定源和目标数据存储。源和目标数据存储可能位于 Amazon Elastic Compute Cloud (Amazon EC2) 实例和 Amazon Relational Database Service (Amazon RDS) 数据库实例上,也可能是本地数据库。

以下过程假定您已选择 AWS DMS 控制台向导。请注意,也可以从 AWS DMS 控制台的导航窗格中选择终端节点,然后选择创建终端节点以执行该步骤。在使用控制台向导时,您将在同一页面上创建源和目标终端节点。如果未使用控制台向导,您可以单独创建每个终端节点。

使用 AWS 控制台指定源或目标数据库终端节点

  1. 连接源和目标数据库终端节点页中,指定源或目标数据库的连接信息。下表描述了设置。

    
                            创建源和目标数据库终端节点
    对于此选项 请执行该操作

    终端节点标识符

    键入要用于标识终端节点的名称。您可能需要在名称中包含终端节点的类型,例如 oracle-sourcePostgreSQL-target。对于所有复制实例来说,名称必须是唯一的。

    源引擎目标引擎

    选择作为终端节点的数据库引擎的类型。

    服务器名称

    键入服务器名称。对于本地数据库,这可以是 IP 地址或公有主机名。对于 Amazon RDS 数据库实例,这可以是数据库实例的终端节点(也称为 DNS 名称),例如 mysqlsrvinst.abcd12345678.us-west-2.rds.amazonaws.com

    端口

    键入数据库使用的端口。

    SSL 模式

    如果您需要为此终端节点启用连接加密,请选择 SSL 模式。根据您选择的模式,您可能需要提供证书和服务器证书信息。

    用户名

    使用允许数据迁移所需的权限键入用户名。有关所需权限的信息,请参阅本用户指南中的源和目标数据库引擎的安全性部分。

    密码

    键入具有所需权限的账户的密码。如果您需要在密码中使用特殊字符 (例如,“+”或“&”),请用大括号“{}”将整个密码括起来。

  2. 选择高级选项卡 (如下所示) 以设置连接字符串和加密密钥值 (如果需要)。您可以选择运行测试以测试终端节点连接。

    
                            创建源或目标数据库终端节点
    对于此选项 请执行该操作

    额外的连接属性

    在此处键入任何其他连接参数。有关额外连接属性的更多信息,请参阅有关数据存储的文档部分。

    KMS 主密钥

    选择要用于加密复制存储和连接信息的加密密钥。如果选择 (默认值) aws/dms,则会使用与您的账户和区域关联的默认 AWS Key Management Service (AWS KMS) 密钥。有关使用加密密钥的更多信息,请参阅设置加密密钥和指定 KMS 权限

步骤 4:创建任务

创建一个任务以指定要迁移的表,使用目标架构映射数据并在目标数据库上创建新表。在创建任务的过程中,您可以选择迁移类型:迁移现有数据、迁移现有数据并复制持续更改或仅复制数据更改。

借助 AWS DMS,您可以指定源数据库和目标数据库之间的准确数据映射。在指定映射之前,请确保查看有关源数据库和目标数据库之间的数据类型映射的文档部分。

您可以选择在创建任务页中指定完任务信息后立即启动任务,或者在指定完任务信息后从“控制面板”页中启动任务。

以下过程假定您已选择 AWS DMS 控制台向导并且已使用该向导指定复制实例信息和终端节点。请注意,也可以从 AWS DMS 控制台的导航窗格中选择 Tasks (任务),然后选择 Create task (创建任务) 以执行该步骤。

创建迁移任务

  1. 创建任务页中,指定任务选项。下表描述了设置。

    
                    Create task (创建任务)
    对于此选项 执行该操作

    任务名称

    为任务键入名称。

    任务描述

    键入任务的说明。

    源终端节点

    显示将使用的源终端节点。

    目标终端节点

    显示将使用的目标终端节点。

    复制实例

    显示将使用的复制实例。

    迁移类型

    选择要使用的迁移方法。您可以选择仅让现有数据迁移到目标数据库,或将持续更改以及迁移的数据发送到目标数据库。

    在创建时启动任务

    在选定该选项时,任务将在创建后立即开始。

  2. 选择任务设置选项卡 (如下所示),指定目标表、LOB 支持以及启用日志记录值。显示的任务设置取决于所选的迁移类型值。例如,在选择迁移现有数据时,将显示以下选项:

    
                            Task settings (任务设置)
    对于此选项 执行该操作

    Target table preparation mode

    不执行任何操作 – 不更改目标表的数据和元数据。

    Drop tables on target – 删除表并在其位置创建新表。

    截断 – 截断表,而不会影响表元数据。

    在复制时包括 LOB 列

    不包括 LOB 列 – 将从迁移中排除 LOB 列。

    完整 LOB 模式 – 迁移整个 LOB,而不管大小如何。在受 LOB 块大小控制的组块中分段迁移 LOB。此方法比受限 LOB 模式速度慢。

    受限 LOB 模式 – 将 LOB 截断到最大 LOB 大小。这种方法比使用完整 LOB 模式快。

    最大 LOB 大小 (kb)

    受限的 LOB 模式下,超出最大 LOB 大小设置的 LOB 列将截断到指定的最大 LOB 大小。

    Enable logging (启用日志记录)

    由 Amazon CloudWatch 启用日志记录。

    如果为迁移类型选择迁移现有数据并复制,将显示以下选项:

    
                            Task settings (任务设置)
    对于此选项 执行该操作

    Target table preparation mode

    不执行任何操作 – 不更改目标表的数据和元数据。

    Drop tables on target – 删除表并在其位置创建新表。

    截断 – 截断表,而不会影响表元数据。

    在完全加载完成后停止任务

    不停止 – 不停止任务,立即应用缓存的更改,然后继续。

    在应用缓存的更改前停止 – 在应用缓存的更改之前停止任务。使用该选项时,可以添加辅助索引,从而加速更改的应用。

    在应用缓存的更改之后停止 – 在应用缓存的更改后停止任务。使用该选项时,可以在进行“事务应用”时添加外键、触发器等。

    在复制时包括 LOB 列

    不包括 LOB 列 – 将从迁移中排除 LOB 列。

    完整 LOB 模式 – 迁移整个 LOB,而不管大小如何。在受 LOB 块大小控制的组块中分段迁移 LOB。此方法比受限 LOB 模式速度慢。

    受限 LOB 模式 – 将 LOB 截断到最大 LOB 大小。这种方法比使用完整 LOB 模式快。

    最大 LOB 大小 (kb)

    受限的 LOB 模式下,超出最大 LOB 大小设置的 LOB 列将截断到指定的最大 LOB 大小。

    Enable logging (启用日志记录)

    由 Amazon CloudWatch 启用日志记录。

  3. 选择表映射选项卡 (如下所示) 以设置架构映射和映射方法值。如果选择自定义,您可以指定目标架构和表值。有关表映射的更多信息,请参阅使用表映射指定任务设置

    
                            Table mapping (表映射)
  4. 在完成任务设置后,请选择创建任务

监控您的任务

如果在创建任务时选择在创建时启动任务,在选择创建任务时,将立即启动您的任务以迁移数据。您可以通过从 AWS 管理控制台选择正在运行的任务来查看任务的统计数据和监控信息。以下屏幕截图显示数据库迁移的表统计数据。有关监控的更多信息,请参阅监控 AWS DMS 任务


                    复制状态