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

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

Amazon Database Migration Service 的先决条件

在本节中,您将学习的 Amazon DMS 的先决条件,例如设置源数据库和目标数据库。作为这些任务的一部分,您还可以设置基于 Amazon VPC 服务的虚拟私有云 (VPC) 来容纳您的资源。此外,您还要设置一个 Amazon EC2 实例,用于填充源数据库并验证目标数据库上的复制。

注意

填充源数据库最多需要 45 分钟。

在本教程中,您将创建一个 MariaDB 数据库作为源,并创建一个 PostgreSQL 数据库作为目标。此场景使用常用的低成本数据库引擎来演示复制。使用不同的数据库引擎演示在异构平台之间迁移数据的 Amazon DMS 功能。

本教程中使用美国西部(俄勒冈州)地区的资源。如果您想使用其他 Amazon 区域,请在所有显示“美国西部(俄勒冈州)”的位置指定您选择的区域。

注意

为简单起见,您为本教程创建的数据库不使用加密或其他高级安全功能。您必须使用安全功能来保护生产数据库的安全。有关更多信息,请参阅 Amazon RDS 中的安全性

有关先决步骤,请参阅以下主题。

创建 VPC

在本节中,您将创建一个 VPC 来容纳 Amazon 资源。在使用 Amazon 资源时,使用 VPC 是最佳实践,这样您的数据库、Amazon EC2 实例、安全组等才能按照逻辑进行排列并确保安全。

为教程资源使用 VPC 还可以确保您在完成教程后删除使用的所有资源。您必须先删除 VPC 包含的所有资源,然后才能删除 VPC。

创建 VPC 以用于 Amazon DMS
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 VPC 控制面板,然后选择创建 VPC

  3. 创建 VPC 页面上,输入以下选项:

    • 要创建的资源VPC 等

    • 名称标签自动生成:选择自动生成,然后输入 DMSVPC

    • IPv4 块10.0.1.0/24

    • IPv6 CIDR 块无 IPv6 CIDR 块

    • 租赁默认

    • 可用区数量:2

    • 公有子网的数量:2

    • 私有子网的数量:2

    • NAT 网关 ($)

    • VPC 端点

    选择创建 VPC

  4. 在导航窗格中,选择您的 VPC。记下 DMSVPC 的 VPC ID。

  5. 在导航窗格中,选择安全组

  6. 选择名为 default 的组,该组的 VPC ID 与您记下的 DMSVPC 的 ID 匹配。

  7. 选择入站规则选项卡,然后选择编辑入站规则

  8. 选择添加规则。添加一条类型为 MySQL/Aurora 的规则,然后为选择 Anywhere-IPv4

  9. 再次选择添加规则。添加一条类型为 PostgreSQL 的规则,然后为选择 Anywhere-IPv4

  10. 选择保存规则

创建 Amazon RDS 参数组

要为 Amazon DMS 指定源数据库和目标数据库的设置,请使用 Amazon RDS 参数组。要允许数据库之间的初始复制和持续复制,请确保配置以下内容:

  • 您的源数据库的二进制日志,以便 Amazon DMS 确定需要复制哪些增量更新。

  • 您的目标数据库的复制角色,以便 Amazon DMS 在初始数据传输期间忽略外键约束。使用此设置,Amazon DMS 可以乱序迁移数据。

创建参数组以 Amazon DMS 与一起使用
  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

  3. 参数组页面上,选择创建参数组

  4. 创建参数组页上,输入以下设置:

    • 参数组系列mariadb10.6

    • 组名:dms-mariadb-parameters

    • 描述Group for specifying binary log settings for replication

    选择创建

  5. 参数组页面上,选择 dms-mariadb-parameters,然后在dms-mariadb-parameters页面上选择编辑

  6. 将以下参数设置为以下值之一:

    • binlog_checksumNONE

    • binlog_formatROW

    选择保存更改

  7. 参数组页面上,再次选择创建参数组

  8. 创建参数组页上,输入以下设置:

    • 参数组系列postgres13

    • 组名:dms-postgresql-parameters

    • 描述Group for specifying role setting for replication

    选择创建

  9. 参数组页面上,选择dms-postgresql-parameters

  10. 在该dms-postgresql-parameters页面上,选择编辑,然后将 session_replication_role 参数设置为副本请注意,session_replication_role 参数不在参数的第一页上。使用分页控件或搜索字段查找该参数。

  11. 选择保存更改

创建源 Amazon RDS 数据库

使用以下过程创建源 Amazon RDS 数据库。

创建源 Amazon RDS for MariaDB 数据库
  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 控制面板页面上,选择数据库部分中的创建数据库。不要在页面顶部的尝试适用于 MySQL 和 PostgreSQL 的新 Amazon RDS Multi-AZ 部署选项部分中选择创建数据库

  3. 创建数据库页面上,设置以下选项:

    • 选择数据库创建方法:选择标准创建

    • 引擎选项:对于引擎类型,请选择 MariaDB。对于版本,请保留选择 MariaDB 10.6.14

    • 模板:选择开发/测试

    • 设置

      • 数据库实例标识符:输入 dms-mariadb

      • 凭证设置部分,输入以下内容:

        • 主用户名:保留为 admin

        • 管理 Amazon Secrets Manager 中的主凭证保留在未选中状态。

        • 自动生成密码:保持未选中状态。

        • 主密码:输入 changeit

        • 确认密码:再次输入 changeit

    • 实例配置

      • 数据库实例类:保留选中标准类

      • 对于数据库实例类别,请选择 db.m5.large

    • 存储

      • 清除启用存储自动缩放复选框。

      • 其余设置保持原样。

    • 可用性和持久性:保留选中不要创建备用实例

    • Connectivity (连接)

      • 计算资源:保留不连接到 EC2 计算资源

      • 网络类型:保留选中 IPv4

      • 虚拟私有云DMSVPC-vpc

      • 公有访问权限。您必须启用公有访问权限才能使用 Amazon Schema Conversion Tool。

      • 可用区us-west-2a

      • 其余设置保持原样。

    • 数据库身份验证:保留选中密码身份验证

    • 监控下,清除开启性能详情复选框。展开其他配置部分,然后清除启用增强监控复选框。

    • 展开其他配置

      • 数据库选项下,对于初始数据库名称,键入 dms_sample

      • 数据库参数组下,选择dms-mariadb-parameters

      • 对于选项组,保留选中 default:mariadb-10-6

      • Backup(备份)下,执行以下操作:

        • 保留选中启用自动备份。您的源数据库必须启用自动备份才能支持持续复制。

        • 对于备份保留期,选择 1 天

        • 备份窗口中,保留选中无首选项

        • 清除将标签复制到快照复选框。

        • 保留在其他 Amazon 区域启用复制未选中状态。

      • 加密下,清除启用加密复选框。

      • 日志导出部分保留不变。

      • 维护下,清除允许自动次要版本升级复选框,并将维护窗口设置保留为无首选项

      • 保留启用删除保护未选中。

  4. 选择创建数据库

创建目标 Amazon RDS 数据库

重复前面的步骤来创建您的目标 Amazon RDS 数据库,并进行以下更改。

创建目标 RDS for PostgreSQL 数据库
  1. 重复上述过程的步骤 1 和 2。

  2. 创建数据库页面上,设置相同的选项,但以下选项除外:

    1. 对于引擎选项,选择 PostgreSQL

    2. 对于版本,请选择 PostgreSQL 13.7-R1

    3. 对于 DB instance identifier(数据库实例标识符),输入 dms-postgresql

    4. 对于主用户名,请保留选中 postgres

    5. 对于数据库参数组,选择dms-postgresql-parameters

    6. 清除启用自动备份

  3. 选择创建数据库

创建 Amazon EC2 客户端

在本节中,您将创建一个 Amazon EC2 客户端。您可以使用此客户端在源数据库中填充要复制的数据。您还可以使用此客户端,通过对目标数据库运行查询来验证复制。

与通过互联网访问您的数据库相比,使用 Amazon EC2 客户端访问数据库具有以下优势:

  • 您可以限制只有同一 VPC 中的客户端才能访问您的数据库。

  • 我们已经确认您在本教程中使用的工具可以在 Amazon Linux 2023 上运行且易于安装,推荐在本教程中使用这些工具。

  • VPC 中组件之间的数据操作,性能通常比通过互联网执行的数据操作要好。

创建和配置 Amazon EC2 客户端以填充源数据库
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 控制面板上,选择启动实例

  3. 启动实例页面上,输入以下值:

    1. 名称和标签部分,对于名称,输入 DMSClient

    2. 应用程序和操作系统映像(亚马逊机器映像)部分,按原样保留设置。

    3. 实例类型部分中,选择 t2.xlarge

    4. 密钥对(登录)部分中,选择新建密钥对

    5. 创建密钥对页面上,输入以下内容:

      • Key pair nameDMSKeyPair

      • 密钥对类型:保留 RSA

      • 私钥文件格式:在 MacOS 或 Linux 上为 OpenSSH 选择 pem,在 Windows 上为 PuTTY 选择 ppk

      出现提示时保存密钥文件。

      注意

      您也可以使用现有的 Amazon EC2 密钥对,而不必创建新的密钥对。

    6. 网络设置部分中,选择编辑。选择以下设置:

      • VPC – 必填:选择具有您记下的 DMSVPC-vpc VPC 的 ID 的 VPC。

      • 子网:选择第一个公有子网。

      • 自动分配公有 IP:选择启用

      原样保留其余设置,然后选择启动实例

填充您的源数据库

在本节中,您将找到源数据库和目标数据库的端点以供稍后使用,并使用以下工具填充源数据库:

  • Git,用于下载填充源数据库的脚本。

  • MariaDB 客户端,运行此脚本。

获取端点

查找并记下适用于 MariaDB 的 RDS 和适用于 PostgreSQL 的 RDS 数据库实例的终端节点,以备日后使用。

查找数据库实例的端点
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择数据库

  3. 选择 dms-mariadb 数据库,并记下该数据库的端点值。

  4. dms-postgresql 数据库重复之前的步骤。

填充您的源数据库

接下来,连接到您的客户端实例,安装必要的软件,从 Git 下载 Amazon 示例数据库脚本,然后运行脚本来填充源数据库。

填充您的源数据库
  1. 使用您在前面步骤中保存的主机名和公有密钥连接到客户端实例。

    有关连接到 Amazon EC2 实例的更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的访问实例

    注意

    如果您使用的是 PuTTY,请在连接设置页面上启用 TCP 保持连接,这样您的连接就不会因为处于不活动状态而超时。

  2. 安装 Git、MariaDB 和 PostgreSQL。根据需要确认安装。

    $ sudo yum install git $ sudo dnf install mariadb105 $ sudo dnf install postgresql15
  3. 运行以下命令从中下载数据库创建脚本 GitHub。

    git clone https://github.com/aws-samples/aws-database-migration-samples.git
  4. 切换到 aws-database-migration-samples/mysql/sampledb/v1/ 目录。

  5. 运行以下命令。提供您之前记下的源 RDS 实例的端点,例如 dms-mariadb.cdv5fbeyiy4e.us-east-1.rds.amazonaws.com

    mysql -h dms-mariadb.abcdefghij01.us-east-1.rds.amazonaws.com -P 3306 -u admin -p dms_sample < ~/aws-database-migration-samples/mysql/sampledb/v1/install-rds.sql
  6. 运行数据库创建脚本。该脚本最多需要 45 分钟来创建架构和填充数据。您可以放心地忽略脚本显示的错误和警告。