为 Amazon Database Migration Service 设置复制 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 Amazon Database Migration Service 设置复制

在此主题中,您将在源数据库和目标数据库之间设置复制。

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

要开始使用 Amazon DMS,请创建复制实例。

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


                创建复制实例
使用控制台创建复制实例
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon DMS 控制台:https://console.aws.amazon.com/dms/v2/

  2. 在导航窗格中,选择复制实例,然后选择创建复制实例

  3. 创建复制实例页中,指定您的复制实例配置:

    1. 对于 Name(名称),请输入 DMS-instance

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

    3. 对于实例类,请保持选中 dms.t3.medium

      该实例需要具有足够的存储空间、网络和处理能力用于进行迁移。有关如何选择实例类的更多信息,请参阅为迁移选择合适的 Amazon DMS 复制实例

    4. 对于引擎版本,请接受默认值。

    5. 对于多可用区,请选择开发或测试工作负载(单可用区)

    6. 对于分配的存储空间 (GiB),请接受默认值 50 GiB。

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

    7. 对于网络类型,请选择 IPv4

    8. 对于 VPC,请选择 DMSVPC

    9. 对于复制子网组,请保留当前选择的复制子网组。

    10. 清除可公开访问

  4. 选择高级安全和网络配置选项卡,根据需要设置网络和加密设置值。

    1. 对于可用区,选择 us-west-2a

    2. 对于 VPC 安全组,如果尚未选择,请选择默认安全组。

    3. 对于 Amazon KMS key,保留(默认值)aws/dms 处于选中状态。

  5. 保留维护选项卡的设置不变。默认值为每个 Amazon 区域 8 小时的时间段中随机选择的 30 分钟时段(随机选取周中的某天进行)。

  6. 选择 Create(创建)。

Amazon DMS 创建复制实例来执行迁移。

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

在创建复制实例时,您可以为之前创建的 Amazon RDS 指定源和目标数据存储端点。您可以单独创建每个端点。


                创建端点
使用 Amazon DMS 控制台指定源端点和数据库端点
  1. 在控制台的导航窗格中,选择端点,然后选择创建端点

  2. 创建端点页面上,选择端点类型。选中选择 RDS 数据库实例复选框,然后选择 dms-mariadb 实例。

  3. 端点配置部分,为端点标识符输入 dms-mysql-source

  4. 对于源引擎,请保留 MySQL 选择。

  5. 对于端点数据库的访问权限,请选择手动提供访问信息。验证端口安全套接字层 (SSL) 模式用户名密码是否正确。

  6. 选择测试端点连接(可选)选项卡。对于 VPC,请选择 DMSVPC

  7. 对于复制实例,请保留 dms-instance 选择。

  8. 选择运行测试

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

  9. 测试成功后,选择创建端点

  10. 使用 Amazon DMS 控制台指定目标数据库端点。为此,请使用以下设置重复前面的步骤:

    • 端点类型目标端点

    • RDS 实例dms-postgresql

    • 端点标识符dms-postgresql-target

    • 目标引擎:保持 PostgreSQL 选中状态。

提供完端点的所有信息后,Amazon DMS 创建源端点和目标端点以在数据库迁移期间使用。

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

在此步骤中,您将创建一个任务,以在所创建的数据库之间迁移数据。


                创建迁移任务
创建迁移任务并开始数据库迁移
  1. 在控制台导航窗格中,选择数据库迁移任务,然后选择创建任务创建数据库迁移任务页面打开。

  2. 任务配置部分,指定以下任务选项:

    • 任务标识符:输入 dms-task

    • 复制实例:选择您的复制实例 (dms-instance-vpc-<vpc id>)。

    • 源数据库端点:选择 dms-mysql-source

    • 目标数据库端点:选择 dms-postgresql-target

    • 迁移类型:选择迁移现有数据并复制持续更改

  3. 选择任务设置选项卡。设置以下设置:

    • 目标表准备模式不执行任何操作

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

  4. 选择表映射选项卡,然后展开选择规则。选择添加新选择规则。设置以下设置:

    • 架构输入架构

    • 架构名称dms_sample

  5. 选择迁移任务启动配置选项卡,然后选择创建时自动

  6. 选择创建任务

然后,Amazon DMS 创建迁移任务并启动它。初始数据库复制需要大约 10 分钟。在 Amazon DMS 完成数据迁移之前,请务必完成教程中的下一步。

步骤 4:测试复制

在本节中,您将在初始复制期间和之后将数据插入源数据库,并在目标数据库中查询插入的数据。

测试复制
  1. 确保您的数据库迁移任务显示的状态为正在运行,但是您在上一步中启动的初始数据库复制尚未完成。

  2. 连接到 Amazon EC2 客户端,并使用以下命令启动 MySQL 客户端。提供您的 MySQL 数据库端点。

    mysql -h dms-mysql.abcdefg12345.us-west-2.rds.amazonaws.com -P 3306 -u admin -pchangeit dms_sample
  3. 运行以下命令以将记录插入到源数据库中。

    MySQL [dms_sample]> insert person (full_name, last_name, first_name) VALUES ('Test User1', 'User1', 'Test'); Query OK, 1 row affected (0.00 sec)
  4. 退出 MySQL 客户端。

    MySQL [dms_sample]> exit Bye
  5. 在复制完成之前,在目标数据库中查询新记录。

    在 Amazon EC2 实例中,使用以下命令,提供您的目标数据库端点来连接到目标数据库。

    psql \ --host=dms-postgresql.abcdefg12345.us-west-2.rds.amazonaws.com \ --port=5432 \ --username=postgres \ --password \ --dbname=dms_sample

    在系统提示时提供密码 (changeit)。

  6. 在复制完成之前,在目标数据库中查询新记录。

    dms_sample=> select * from dms_sample.person where first_name = 'Test'; id | full_name | last_name | first_name ----+-----------+-----------+------------ (0 rows)
  7. 在迁移任务正在运行时,您可以实时监控数据库迁移的进度:

    • 在 DMS 控制台导航窗格中,选择数据库迁移任务

    • 选择 dms-task

    • 选择表统计数据

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

  8. 复制完成后,再次对目标数据库查询新记录。Amazon DMS 在初始复制完成后迁移新记录。

    dms_sample=> select * from dms_sample.person where first_name = 'Test'; id | full_name | last_name | first_name ---------+------------+-----------+------------ 7077784 | Test User1 | User1 | Test (1 row)
  9. 退出 psql 客户端。

    dms_sample=> quit
  10. 重复步骤 1,再次连接到源数据库。

  11. person 表中插入另一条记录。

    MySQL [dms_sample]> insert person (full_name, last_name, first_name) VALUES ('Test User2', 'User2', 'Test'); Query OK, 1 row affected (0.00 sec)
  12. 重复步骤 3 和 4 以断开源数据库的连接并连接到目标数据库。

  13. 再次在目标数据库中查询复制的数据。

    dms_sample=> select * from dms_sample.person where first_name = 'Test'; id | full_name | last_name | first_name ---------+------------+-----------+------------ 7077784 | Test User1 | User1 | Test 7077785 | Test User2 | User2 | Test (2 rows)

步骤 5:清理 Amazon DMS 资源

完成本入门教程后,您可以删除创建的资源。您可以使用 Amazon 控制台删除它们。请确保在删除复制实例和端点之前删除迁移任务。

使用控制台删除迁移任务
  1. 在 Amazon DMS 控制台导航窗格中,选择数据库迁移任务

  2. 选择 dms-task

  3. 依次选择操作删除

使用控制台删除复制实例
  1. 在 Amazon DMS 控制台导航窗格中,选择复制实例

  2. 选择 DMS-instance

  3. 依次选择操作删除

Amazon DMS 删除复制实例并将其从复制实例页面中移除。

使用控制台删除端点
  1. 在 Amazon DMS 控制台导航窗格中,选择端点

  2. 选择 dms-mysql-source

  3. 依次选择操作删除

删除 Amazon DMS 资源后,请务必同时删除以下资源。有关删除其他服务中资源的帮助,请参阅每项服务的文档。

  • 您的 RDS 数据库。

  • 您的 RDS 数据库参数组。

  • 您的 RDS 子网组。

  • 与您的数据库和复制实例一起创建的任何 Amazon CloudWatch logs。

  • 为您的 Amazon VPC 和 Amazon EC2 客户端创建的安全组。请确保将 launch-wizard-1 安全组的入站规则从默认中删除,这是删除这些安全组所必需的。

  • Amazon EC2 客户端。

  • Amazon VPC。

  • Amazon EC2 客户端的 Amazon EC2 密钥对。