AWS Database Migration Service 入门 - AWS Database Migration Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Database Migration Service 入门

AWS Database Migration Service (AWS DMS) 可帮助您轻松且安全地迁移数据库。您可以将数据迁入、迁出使用最为广泛的商用和开源数据库。AWS DMS 支持当今最受欢迎的几乎所有数据库引擎作为数据源,并提供目标引擎的广泛覆盖范围。有关源和目标终端节点的更多信息,请参阅使用 AWS DMS 终端节点

在基本层面上,AWS DMS 是 AWS 云中运行复制软件的服务器。您创建源和目标连接以告知 AWS DMS 要在其中提取和加载的位置。然后,您可以计划在此服务器上运行的任务以移动数据。AWS DMS 创建表和关联的主键(如果它们在目标上不存在)。如果您愿意,则可以预先创建目标表。或者,您可以使用 AWS Schema Conversion Tool (AWS SCT) 创建部分或全部目标表、索引、视图、触发器等。

下图阐明了 AWS DMS 复制过程。


            AWS DMS 入门

要执行数据库迁移,请执行以下操作:

  • 完成 对 AWS Database Migration Service 进行设置 中的步骤。

  • 创建复制实例来执行迁移的所有过程。

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

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

然后,AWS DMS 可以创建复制实例并对要迁移的数据执行任务。

您可通过以下两种方式之一开始数据库迁移:

  1. 您可以选择 AWS DMS 控制台并在此执行每个步骤。

  2. 您可以使用 AWS Command Line Interface (AWS CLI)。有关将 CLI 与 AWS DMS 结合使用的更多信息,请参阅适用于 AWS DMS 的 AWS CLI

您可以通过以下步骤使用 AWS DMS 控制台执行数据库迁移。

步骤 1: 使用 AWS DMS 控制台创建复制实例

要开始使用 AWS DMS,请创建复制实例。复制实例 执行源和目标终端节点之间的实际数据迁移。您的实例需要足够的存储和处理能力来执行将数据从源数据库迁移到目标数据库的任务。此复制实例应具有的大小取决于要迁移的数据量以及实例需要执行的任务。有关复制实例的更多信息,请参阅使用 AWS DMS 复制实例

您可以使用以下过程通过 AWS DMS 控制台创建复制实例。在开始之前,请确保您已完成对 AWS Database Migration Service 进行设置中的步骤。


                创建复制实例

使用控制台创建复制实例

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS DMS 控制台:https://console.aws.amazon.com/dms/v2/

  2. 在右上角,选择要在其中创建复制实例的 AWS 区域。

  3. 在导航窗格中,选择 Replication instances (复制实例),然后选择 Create replication instance (创建复制实例)

  4. Create replication instance (创建复制实例) 页面上,指定复制实例配置:

    1. 对于 Name (名称),输入复制实例的唯一名称。

      您的姓名最多可以包含 63 个可打印 ASCII 字符(不包括 /、" 和 @)。第一个字符必须是字母,且名称不能以连字符结尾。该名称对于您的 AWS 账户和您选择的 AWS 区域应该是唯一的。

    2. 对于 Description (描述),输入复制实例的简短描述。

    3. 对于 Instance class (实例类),选择具有迁移所需的配置的实例类。

      实例需要足够的存储、联网和处理能力来进行迁移。有关如何选择实例类的更多信息,请参阅为迁移选择合适的 AWS DMS 复制实例

    4. 对于 Engine version (引擎版本),选择 AWS DMS 版本以运行复制实例。对于此入门练习,请接受默认值。

    5. 对于 Allocated storage (GiB) (分配的存储 (GiB)),选择复制实例所需的存储空间量。默认值为 50 个 GiB。

      在 DMS 中,存储主要由日志文件和缓存的事务使用。对于缓存事务,仅在需要将缓存的事务写入磁盘时才使用存储。因此,AWS DMS 不会使用大量存储空间。

    6. 对于 VPC,选择基于 Amazon Virtual Private Cloud (Amazon VPC) 服务的 Virtual Private Cloud (VPC)。您的复制实例在此 VPC 中运行。

      为了帮助选择您的 VPC,请考虑以下事项:

      • 如果源或目标数据库位于 VPC 中,请选择该 VPC。

      • 如果您的源数据库和目标数据库位于不同的 VPCs 中,请确保它们都位于公有子网中。此外,请确保源和目标可公开访问。

        完成此操作后,选择希望复制实例所在的 VPC。确保您的复制实例可以访问源 VPC 中的数据。

      • 如果源或目标数据库都未在 VPC 中,请选择复制实例将放置到的 VPC。

  5. 选择 Advanced security and network configuration (高级安全和网络配置) 选项卡以设置网络和加密设置值(如果需要):

    1. 对于 Replication subnet group (复制子网组),在您要创建复制实例的 VPC 中,选择复制子网组。

      如果源数据库位于 VPC 中,请选择包含源数据库的子网组作为复制实例的位置。

    2. 对于 Availability zone (可用区),选择希望复制实例在其中运行的可用区 (AZ)。默认值为 No preference (无首选项),因此 AWS DMS 决定使用哪个可用区。对于此入门练习,请保留默认值。

    3. 对于 VPC security group(s) (VPC 安全组),为您的复制实例选择一个安全组。

      安全组指定入站和出站规则以控制对复制实例的网络访问。

    4. 对于 KMS master key(s) (KMS 主密钥),选择 (Default) aws/dms ((默认) aws/dms) 以加密复制存储和连接信息。(默认值)aws/dms 是与您的账户和 AWS 区域关联的默认 AWS Key Management Service (AWS KMS) 密钥。

  6. 选择 Maintenance (维护) 选项卡,然后选择每周可以进行系统维护的日期和时间范围,采用通用协调时间 (UTC)。

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

  7. 选择创建

此时,AWS DMS 将创建一个复制实例来执行迁移。

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

在创建复制实例时,您可以指定源和目标数据存储终端节点。源和目标数据存储可以位于 Amazon Elastic Compute Cloud (Amazon EC2) 实例上。或者,它们也可以位于 Amazon Relational Database Service (Amazon RDS) 数据库实例或本地数据库上。您可以单独创建每个终端节点。


                创建终端节点

使用 AWS DMS 控制台指定源终端节点和数据库终端节点

  1. 在 控制台上,从导航窗格中选择 Endpoints,然后选择 Create Endpoint

  2. Create endpoint (创建终端节点) 页面上,选择 Source (源) 终端节点类型。

  3. 如果您的数据存储是 Amazon RDS 数据库实例,请选择 Select RDS DB instance (选择 RDS 数据库实例) 选项。

  4. Endpoint configuration (终端节点配置) 部分中,为 Endpoint identifier (终端节点标识符) 输入终端节点的名称。例如,在名称中包含终端节点的类型,例如 oracle-sourcePostgreSQL-target

  5. 对于 Source engine (源引擎),选择您希望此终端节点连接的数据库引擎的类型。

  6. 选择 Endpoint-specific settings (终端节点特定的设置) 选项卡。目前,请将 Extra connection attributes (额外的连接属性) 留空。

    但是,您可以为源终端节点输入任何额外的连接属性。有关源终端节点的额外连接属性的更多信息,请参阅数据迁移的源

  7. 选择 KMS master key (KMS 主密钥) 选项卡,然后选择 (Default) aws/dms ((默认) aws/dms) 以加密复制存储和连接信息。(默认值)aws/dms 是与您的账户和 AWS 区域关联的默认 AWS Key Management Service (AWS KMS) 密钥。

  8. 选择 Test endpoint connection (optional) (测试终端节点连接(可选)) 选项卡。对于 VPC,选择在其中创建了复制实例的 Amazon VPC 安全组。

    如果源数据库位于 VPC 中,请选择该 VPC 安全组,以便访问数据库所在的数据库实例。

  9. 对于 Replication instance (复制实例),选择您之前在 Create replication instance (创建复制实例) 页面上输入的复制实例的名称。

  10. 选择 Run test (运行测试)

    选择 Run test (运行测试) 后,AWS DMS 会使用您提供的详细信息创建终端节点并连接到该终端节点。如果连接失败,请编辑终端节点定义并再次测试连接。您也可以手动删除终端节点。

  11. 成功完成测试后,选择 Create endpoint (创建终端节点)

  12. 使用 AWS DMS 控制台指定目标数据库终端节点。为此,请重复前面的步骤,但选择 Target endpoint (目标终端节点) 作为终端节点类型。

在为您的终端节点提供所有信息后,AWS DMS 将创建源和目标终端节点,以便在数据库迁移期间使用。

步骤 3: 创建任务并迁移数据

在此步骤中,您将创建一个任务来指定要迁移的表。您的任务还使用目标架构映射数据,并为目标数据库创建新表。

在创建任务的过程中,您可以选择要执行的迁移类型:

  • 迁移现有数据 — 仅完全加载。

  • 迁移现有数据并复制持续更改—完全加载 + 更改数据捕获 (CDC)。

  • 仅复制数据更改—仅 CDC。

Create task (创建任务) 页面上指定任务的信息后,您可以立即启动任务。或者,您可以在指定任务信息后从导航窗格中启动任务。


                创建迁移任务

创建迁移任务并开始数据库迁移

  1. 在控制台导航窗格中,选择 Database migration tasks (数据库迁移任务),然后选择 Create task (创建任务)。此时将打开 Create database migration task (创建数据库迁移任务) 页面。

  2. Task configuration (任务配置) 部分中,指定以下任务选项:

    • 任务标识符 – 输入任务的唯一名称。

    • 复制实例 – 选择要使用的复制实例。

    • 源数据库终端节点 – 选择要使用的源数据库终端节点。

    • Target database endpoint (目标数据库终端节点) – 选择要使用的目标数据库终端节点。

    • 迁移类型 – 选择迁移现有数据作为您要用于此入门练习的迁移方法。

      其他实际选项包括迁移现有数据并复制持续更改仅复制数据更改

  3. 选择 Task settings (任务设置) 选项卡。

    显示的任务设置取决于迁移类型。由于我们选择 Migrate existing data (迁移现有数据) 作为迁移类型,请执行以下操作:

    1. 对于 Target table preparation mode (目标表准备模式),请选择以下选项之一:

      • Do nothing (不执行任何操作) – 不更改目标表的数据和元数据。

      • 删除目标中的表 删除 – 表,并在其位置创建新表。

      • Truncate (截断) – 截断表,而不会影响表元数据。

    2. 对于 Include LOB columns in replication (在复制中包含 LOB 列),选择以下选项之一:

      • 不包括 LOB 列 – 从迁移操作中排除 LOB 列。

      • 完整 LOB 模式 – 迁移整个 LOBs,而不管大小如何。LOBs 以受 LOB 块大小控制的块为单位分段迁移。此方法比受限 LOB 模式的速度要慢。

      • 受限 LOB 模式 – 将 LOBs 截断到最大 LOB 大小。此方法比使用完整 LOB 模式的速度要快。

    3. 对于 Maximum LOB size (KB) (最大 LOB 大小 (KB)),在 LOBs 中为 AWS DMS 设置最大大小。

  4. 选择 Advanced task settings (高级任务设置) 选项卡以指定表和优化设置:

    1. 对于 Create control table in target using schema (使用架构在目标中创建控制表),输入 AWS DMS 可在其中创建其控制表的目标数据库架构的名称。

    2. 对于 History timelot (minutes),输入 5 作为您希望每个历史记录保留在复制历史记录表中的分钟数。

    3. Control table settings (控制表设置) 部分中,打开或关闭 Enable control table settings (启用控制表设置)。对于 Apply Exceptions (应用异常),awsdms_apply_exceptions 始终处于启用状态。

    4. 对于 Full load tuning (完全加载优化),指定 Maximum number of tables to load in parallel (并行加载的最大表数)Transaction consistity timeout (事务一致性超时)Commit rate during full load (完全加载期间的提交速率) 的值。

  5. 选择 Migration task startup configuration (迁移任务启动配置) 选项卡,然后选择 Automatically on create (创建时自动)

  6. 选择创建任务

如果您选择 Automatically on create (创建时自动),则当您选择 Create task (创建任务) 时,您的任务将立即开始迁移数据。如果您未执行此操作,请从 Database migration tasks (数据库迁移任务) 页面启动您的任务。在该页面上,选择您的任务,然后为 Actions (操作) 选择 Start (开始)

步骤 4: 监控您的任务

现在您的迁移任务正在运行,您可以在执行数据库迁移时监控其进度。

查看迁移任务指标

  1. 在 DMS 控制台导航窗格中,选择 Database migration tasks (数据库迁移任务)

  2. 选择要监控的正在运行的任务的名称。

  3. 选择 Table statistics (表统计数据)

有关监控的更多信息,请参阅监控 AWS DMS 任务

步骤 5: 使用控制台删除 AWS DMS 组件

完成入门练习后,当您不再需要数据库迁移组件作为参考时,可将其删除。您可以使用 AWS DMS 控制台删除它们。请确保先删除迁移任务,然后再删除复制实例和终端节点。

使用控制台删除迁移任务

  1. 在 AWS DMS 控制台导航窗格中,选择 Database migration tasks (数据库迁移任务)

  2. 选择不再需要的迁移任务。

  3. 对于 Actions (操作),请选择 Delete (删除)

  4. Delete database migration tasks (删除数据库迁移任务) 对话框中,选择 Delete (删除)

AWS DMS 会删除迁移任务并从 Database migration tasks (数据库迁移任务) 页面中将其删除。

使用 控制台删除复制实例

  1. 在 AWS DMS 控制台导航窗格中,选择 Replication instances (复制实例)

  2. 选择要删除的复制实例。

  3. 对于 Actions (操作),请选择 Delete (删除)

  4. Delete replication (删除复制) 实例对话框中,选择 Delete (删除)

AWS DMS 删除复制实例并将其从 Replication instances (复制实例) 页面中删除。

使用控制台删除过时的终端节点

  1. 在 AWS DMS 控制台导航窗格中,选择 Endpoints (终端节点)

  2. 选择要删除的终端节点。

  3. 对于 Actions (操作),请选择 Delete (删除)

  4. Delete endpoint (删除终端节点) 对话框中,选择 Delete (删除)

AWS DMS 删除终端节点并将其从终端节点页面中删除。

其他资源

本用户指南中的其余部分介绍如何使用 AWS DMS 将您的数据迁入、迁出使用最为广泛的商用和开源数据库。我们还建议您在准备和执行数据库迁移项目时检查以下资源: