为设置复制 AWS Database Migration Service - AWS 数据库迁移服务

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

为设置复制 AWS Database Migration Service

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

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

要开始使用 AWS DMS,请创建一个复制实例。

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

创建复制实例
使用控制台创建复制实例
  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/dms/v2/上打开 AWS DMS 控制台。

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

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

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

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

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

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

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

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

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

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

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

    8. 对于 VPC,选择DMSVPC

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

    10. 清除可公开访问

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

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

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

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

  5. 保留维护选项卡的设置不变。默认值是从每个 AWS 区域的 8 小时时间段中随机选择一个 30 分钟的窗口,发生在一周中的随机某一天。

  6. 选择创建

AWS DMS 创建用于执行迁移的复制实例。

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

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

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

  2. 创建端点页面上,选择端点类型。选中 “选择RDS数据库实例” 框,然后选择 d ms-mari adb 实例。

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

  4. 对于源引擎,请留下我的SQL选择。

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

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

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

  8. 选择运行测试

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

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

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

    • 端点类型目标端点

    • RDS实例dm s-postgresql

    • 端点标识符dms-postgresql-target

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • 架构输入架构

    • 架构名称dms_sample

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

  6. 选择创建任务

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

步骤 4:测试复制

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

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

  2. 连接到您的 Amazon EC2 客户端,然后使用以下命令启动 “我的SQL客户端”。提供您的 “我的SQL数据库” 端点。

    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. 退出 “我的SQL客户端”。

    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

    • 选择表统计数据

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

  8. 复制完成后,再次向目标数据库查询新记录。 AWS 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:清理 AWS DMS 资源

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

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

  2. 选择 dms-task

  3. 依次选择操作删除

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

  2. 选择 DMS-实例

  3. 依次选择操作删除

AWS DMS 删除复制实例并将其从 “复制实例” 页面中删除。

使用控制台删除端点
  1. 在 AWS DMS 控制台导航窗格上,选择终端节点

  2. 选择dms-mysql-source

  3. 依次选择操作删除

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

  • 你的RDS数据库。

  • 您的RDS数据库参数组。

  • 您的RDS子网组。

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

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

  • 您的亚马逊EC2客户。

  • 你的亚马逊VPC。

  • 您的亚马逊EC2客户端 Amazon EC2 密钥对。