

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

# 完成设置所需的先决条件 AWS Database Migration Service
<a name="CHAP_GettingStarted.Prerequisites"></a>

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

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

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

本教程中使用美国西部（俄勒冈州）地区的资源。如果您想使用其他 AWS 区域，请改为在美国西部（俄勒冈）出现的任何地方指定您选择的区域。

**注意**  
为简单起见，您为本教程创建的数据库不使用加密或其他高级安全功能。您必须使用安全功能来保护生产数据库的安全。有关更多信息，请参阅 [Amazon RDS 中的安全性](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.html)。

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

**Topics**
+ [创建 VPC](#CHAP_GettingStarted.Prerequisites.VPC)
+ [创建 Amazon RDS 参数组](#CHAP_GettingStarted.Prerequisites.params)
+ [创建源 Amazon RDS 数据库](#CHAP_GettingStarted.Prerequisites.sdatabase)
+ [创建目标 Amazon RDS 数据库](#CHAP_GettingStarted.Prerequisites.tdatabase)
+ [创建 Amazon EC2 客户端](#CHAP_GettingStarted.Prerequisites.client)
+ [填充您的源数据库](#CHAP_GettingStarted.Prerequisites.Populate)

## 创建 VPC
<a name="CHAP_GettingStarted.Prerequisites.VPC"></a>

在本节中，您将创建一个 VPC 来容纳您的 AWS 资源。在使用 AWS 资源时，使用 VPC 是最佳实践，这样您的数据库、Amazon EC2 实例、安全组等才有逻辑组织和安全。

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

**创建 VPC 以与配合使用 AWS DMS**

1. 登录 AWS 管理控制台 并打开 Amazon VPC 控制台，网址为[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **VPC 控制面板**，然后选择**创建 VPC**。

1. 在**创建 VPC** 页面上，输入以下选项：
   + **要创建的资源**：**VPC 等**
   + **名称标签自动生成**：选择**自动生成**，然后输入 **DMSVPC**。
   + **IPv4 区块**:**10.0.1.0/24**
   + **IPv6 CIDR 块**：**没有 IPv6 CID** R 块
   + **租赁**：**默认**
   + **可用区数量**：2
   + **公有子网的数量**：2
   + **私有子网的数量**：2
   + **NAT 网关（\$1）**：**无**
   + **VPC 端点**：**无**

   选择**创建 VPC**。

1. 在导航窗格上，选择**您的 VPCs**。记下 **DMSVPC** 的 VPC ID。

1. 在导航窗格中，选择**安全组**。

1. 选择名为 **default** 的组，该组的 **VPC ID** 与您记下的 **DMSVPC** 的 ID 匹配。

1. 选择**入站规则**选项卡，然后选择**编辑入站规则**。

1. 选择**添加规则**。**添加一条类型为 **mySQL/Aurora** 的规则，然后选择 **Anywhere-IPv4** 作为源。**

1. 再次选择**添加规则**。**添加 Postgre **SQL** 类型的规则，然后**选择 Anyw IPv4** here-作为源。**

1. 选择**保存规则**。

## 创建 Amazon RDS 参数组
<a name="CHAP_GettingStarted.Prerequisites.params"></a>

要为的源数据库和目标数据库指定设置 AWS DMS，请使用 Amazon RDS 参数组。要允许数据库之间的初始复制和持续复制，请确保配置以下内容：
+ 源数据库的二进制日志，因此 AWS DMS 可以确定需要复制哪些增量更新。
+ 目标数据库的复制角色，因此在初始数据传输期间 AWS DMS 会忽略外键约束。使用此设置， AWS DMS 可以乱序迁移数据。

**创建参数组以与一起使用 AWS DMS**

1. 在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 处打开 Amazon RDS 控制台。

1. 在导航窗格中，选择**参数组**。

1. 在**参数组**页面上，选择**创建参数组**。

1. 在**创建参数组**页上，输入以下设置：
   + **参数组系列**：**mariadb10.6**
   + **组名：****dms-mariadb-parameters**
   + **描述**：**Group for specifying binary log settings for replication**

   选择**创建**。

1. 在**参数组**页面上，选择 **dms-mariadb-parameters**，然后在**dms-mariadb-parameters**页面上选择**编辑**。

1. 将以下参数设置为以下值之一：
   + **binlog\$1checksum**：**NONE**
   + **binlog\$1format**：**ROW**

   选择**保存更改**。

1. 在**参数组**页面上，再次选择**创建参数组**。

1. 在**创建参数组**页上，输入以下设置：
   + **参数组家族**：p **ost** gres16
   + **组名：****dms-postgresql-parameters**
   + **描述**：**Group for specifying role setting for replication**

   选择**创建**。

1. 在**参数组**页面上，选择**dms-postgresql-parameters**。

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

1. 选择**保存更改**。

## 创建源 Amazon RDS 数据库
<a name="CHAP_GettingStarted.Prerequisites.sdatabase"></a>

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

**创建源 Amazon RDS for MariaDB 数据库**

1. 在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 处打开 Amazon RDS 控制台。

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

1. 在**创建数据库**页面上，设置以下选项：
   + **选择数据库创建方法**：选择**标准创建**。
   + **引擎选项**：对于**引擎类型**，请选择 **MariaDB**。对于**版本**，请保留选择 **MariaDB 10.6.14**。
   + **模板**：选择**开发/测试**。
   + **设置**：
     + **数据库实例标识符**：输入 **dms-mariadb**。
     + 在**凭证设置**部分，输入以下内容：
       + **主用户名**：保留为 **admin**。
       + 取消选中 S ** AWS ecrets Manager 中的管理主凭证**。
       + **自动生成密码**：保持未选中状态。
       + **主密码**：输入 **changeit**。
       + **确认密码**：再次输入 **changeit**。
   + **实例配置**：
     + **数据库实例类**：保留选中**标准类**。
     + 对于**数据库实例类别**，请选择 **db.m5.large**。
   + **存储**：
     + 清除**启用存储自动缩放**复选框。
     + 其余设置保持原样。
   + **可用性和持久性**：保留选中**不要创建备用实例**。
   + **Connectivity (连接)**：
     + **计算资源**：保留**不连接到 EC2 计算资源**
     + **网络类型**：保持**IPv4**选中状态。
     + **虚拟私有云**：**DMSVPC-vpc**
     + **公有访问权限**：**是**。您必须启用公有访问权限才能使用 AWS Schema Conversion Tool。
     + **可用区**：**us-west-2a**
     + 其余设置保持原样。
   + **数据库身份验证**：保留选中**密码身份验证**。
   + 在**监控**下，清除**开启性能详情**复选框。展开**其他配置**部分，然后清除**启用增强监控**复选框。
   + 展开**其他配置**：
     + 在**数据库选项**下，对于**初始数据库名称**，键入 **dms\$1sample**。
     + 在**数据库参数组**下，选择**dms-mariadb-parameters**。
     + 对于**选项组**，保留选中 **default:mariadb-10-6**。
     + 在 **Backup**（备份）下，执行以下操作：
       + 保留选中**启用自动备份**。您的源数据库必须启用自动备份才能支持持续复制。
       + 对于**备份保留期**，选择 **1 天**。
       + 在**备份窗口**中，保留选中**无首选项**。
       + 清除**将标签复制到快照**复选框。
       + 取消选中 “**在其他 AWS 区域启用复制**”。
     + 在**加密**下，清除**启用加密**复选框。
     + **日志导出**部分保留不变。
     + 在**维护**下，清除**允许自动次要版本升级**复选框，并将**维护窗口**设置保留为**无首选项**。
     + 保留**启用删除保护**未选中。

1. 选择**创建数据库**。

## 创建目标 Amazon RDS 数据库
<a name="CHAP_GettingStarted.Prerequisites.tdatabase"></a>

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

**创建目标 RDS for PostgreSQL 数据库**

1. 重复上述过程的步骤 1 和 2。

1. 在**创建数据库**页面上，设置相同的选项，但以下选项除外：

   1. 对于**引擎选项**，选择 **PostgreSQL**。

   1. 对于**版本**，请选择一个可用的 **PostgreSQL 16** 版本。

   1. 对于 **DB instance identifier**（数据库实例标识符），输入 **dms-postgresql**。

   1. 对于**主用户名**，请保留选中 **postgres**。

   1. 对于**数据库参数组**，选择**dms-postgresql-parameters**。

   1. 清除**启用自动备份**。

1. 选择**创建数据库**。

## 创建 Amazon EC2 客户端
<a name="CHAP_GettingStarted.Prerequisites.client"></a>

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

与通过互联网访问您的数据库相比，使用 Amazon EC2 客户端访问数据库具有以下优势：
+ 您可以限制只有同一 VPC 中的客户端才能访问您的数据库。
+ 我们已经确认您在本教程中使用的工具可以在 Amazon Linux 2023 上运行且易于安装，推荐在本教程中使用这些工具。
+ VPC 中组件之间的数据操作，性能通常比通过互联网执行的数据操作要好。

**创建和配置 Amazon EC2 客户端以填充源数据库**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在**控制面板**上，选择**启动实例**。

1. 在**启动实例**页面上，输入以下值：

   1. 在**名称和标签**部分，对于**名称**，输入 **DMSClient**。

   1. 在**应用程序和操作系统映像（亚马逊机器映像）**部分，按原样保留设置。

   1. 在**实例类型**部分中，选择 **t2.xlarge**。

   1. 在**密钥对（登录）**部分中，选择**新建密钥对**。

   1. 在**创建密钥对**页面上，输入以下内容：
      + **Key pair name**：**DMSKeyPair**
      + **密钥对类型**：保留 **RSA**。
      + **私钥文件格式**：在 MacOS 或 Linux 上为 OpenSSH 选择 **pem**，在 Windows 上为 PuTTY 选择 **ppk**。

      出现提示时保存密钥文件。
**注意**  
您也可以使用现有的 Amazon EC2 密钥对，而不必创建新的密钥对。

   1. 在**网络设置**部分中，选择**编辑**。选择以下设置：
      + **VPC – *必填***：选择具有您记下的 **DMSVPC-vpc** VPC 的 ID 的 VPC。
      + **子网**：选择第一个公有子网。
      + **自动分配公有 IP**：选择**启用**。

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

## 填充您的源数据库
<a name="CHAP_GettingStarted.Prerequisites.Populate"></a>

在本节中，您将找到源数据库和目标数据库的端点以供稍后使用，并使用以下工具填充源数据库：
+ Git，用于下载填充源数据库的脚本。
+ MariaDB 客户端，运行此脚本。

### 获取端点
<a name="CHAP_GettingStarted.Prerequisites.Populate.Hosts"></a>

查找并记下 RDS for MariaDB 和 RDS for PostgreSQL 数据库实例的端点，以备稍后使用。

**查找数据库实例的端点**

1. 登录 AWS 管理控制台 并打开 Amazon RDS 控制台，网址为[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**数据库**。

1. 选择 **dms-mariadb** 数据库，并记下该数据库的**端点**值。

1. 对 **dms-postgresql** 数据库重复之前的步骤。

### 填充您的源数据库
<a name="CHAP_GettingStarted.Prerequisites.Populate.Git"></a>

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

**填充您的源数据库**

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

   有关连接到 Amazon EC2 实例的更多信息，请参阅《Amazon EC2 用户指南》**中的[访问实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)。
**注意**  
如果您使用的是 PuTTY，请在**连接**设置页面上启用 TCP 保持连接，这样您的连接就不会因为处于不活动状态而超时。

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

   ```
   $ sudo yum install git
   $ sudo dnf install mariadb105
   $ sudo dnf install postgresql15
   ```

1. 运行以下命令从中下载数据库创建脚本 GitHub。

   ```
   git clone https://github.com/aws-samples/aws-database-migration-samples.git
   ```

1. 切换到 `aws-database-migration-samples/mysql/sampledb/v1/` 目录。

1. 运行如下命令。提供您之前记下的源 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
   ```

1. 运行数据库创建脚本。该脚本最多需要 45 分钟来创建架构和填充数据。您可以放心地忽略脚本显示的错误和警告。