本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
完成设置所需的先决条件 AWS Database Migration Service
在本节中,您可以学习的先决任务 AWS DMS,例如设置源数据库和目标数据库。作为这些任务的一部分,您还可以设置基于 Amazon VPC 服务的虚拟私有云 (VPC) 来容纳您的资源。此外,您还可以设置一个 Amazon EC2 实例,用于填充源数据库并验证目标数据库上的复制。
注意
填充源数据库最多需要 45 分钟。
在本教程中,您将创建一个 MariaDB 数据库作为源,并创建一个 Postgre SQL 数据库作为目标。此场景使用常用的低成本数据库引擎来演示复制。使用不同的数据库引擎演示了在异构平台之间迁移数据的 AWS DMS 功能。
本教程中使用美国西部(俄勒冈州)地区的资源。如果您想使用其他 AWS 区域,请改为在美国西部(俄勒冈)出现的任何地方指定您选择的区域。
注意
为简单起见,您为本教程创建的数据库不使用加密或其他高级安全功能。您必须使用安全功能来保护生产数据库的安全。有关更多信息,请参阅 Amazon 安全RDS。
有关先决步骤,请参阅以下主题。
创建一个 VPC
在本节中,您将创建一个VPC来包含您的 AWS 资源。在使用 AWS 资源时,使用VPC是最佳实践,这样您的数据库、Amazon EC2 实例、安全组等才有逻辑组织和安全。
使用作为VPC教程资源还可以确保您在完成教程后删除使用的所有资源。必须先删除 a VPC 包含的所有资源,然后才能删除VPC。
要创建VPC要与一起使用 AWS DMS
登录 AWS Management Console 并打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/
。 在导航窗格上,选择VPC控制面板,然后选择创建VPC。
在 “创建 VPC” 页面上,输入以下选项:
要创建的资源:VPC以及更多
名称标签自动生成:选择自动生成,然后输入
DMSVPC
。IPv4区块:
10.0.1.0/24
IPv6CIDR方块:没有IPv6CIDR方块
租赁:默认
可用区数量:2
公有子网的数量:2
私有子网的数量:2
NAT网关 ($):无
VPC端点:无
选择 “创建” VPC。
在导航窗格上,选择您的VPCs。记下VPC的 ID DMSVPC。
在导航窗格中,选择安全组。
选择名为 de fault 的VPC群组,该群组的 ID 与您记下的 ID 相匹配DMSVPC。
选择入站规则选项卡,然后选择编辑入站规则。
选择 添加规则。添加一条类型为 “我的 SQL /Aurora” 的规则,然后IPv4为 “来源” 选择 “任何地方”。
再次选择添加规则。添加一条类型为 Postgre 的规则,SQL然后选择 Anywhere-IPv4 作为源。
选择保存规则。
创建 Amazon RDS 参数组
要为您的源数据库和目标数据库指定设置 AWS DMS,请使用 Amazon RDS 参数组。要允许数据库之间的初始复制和持续复制,请确保配置以下内容:
源数据库的二进制日志,因此 AWS DMS 可以确定需要复制哪些增量更新。
目标数据库的复制角色,因此在初始数据传输期间 AWS DMS 会忽略外键约束。使用此设置, AWS DMS 可以乱序迁移数据。
创建参数组以与一起使用 AWS DMS
打开 Amazon RDS 控制台,网址为https://console.aws.amazon.com/rds/
。 在导航窗格中,选择参数组。
在参数组页面上,选择创建参数组。
在创建参数组页上,输入以下设置:
参数组系列:mariadb10.6
组名:
dms-mariadb-parameters
描述:
Group for specifying binary log settings for replication
选择创建。
在参数组页面上,选择 dms-mariadb-parameters,然后在dms-mariadb-parameters页面上选择编辑。
将以下参数设置为以下值之一:
binlog_check sum:NONE
二进制日志格式:ROW
选择 Save changes(保存更改)。
在参数组页面上,再次选择创建参数组。
在创建参数组页上,输入以下设置:
参数组系列:postgres13
组名:
dms-postgresql-parameters
描述:
Group for specifying role setting for replication
选择创建。
在参数组页面上,选择dms-postgresql-parameters。
在该dms-postgresql-parameters页面上,选择编辑,然后将 session_replication_role 参数设置为副本。请注意,session_replication_role 参数不在参数的第一页上。使用分页控件或搜索字段查找该参数。
选择 Save changes(保存更改)。
创建您的源 Amazon RDS 数据库
使用以下步骤创建您的源 Amazon RDS 数据库。
创建您的源 Amazon for Mar RDS iaDB 数据库
打开 Amazon RDS 控制台,网址为https://console.aws.amazon.com/rds/
。 在控制面板页面上,选择数据库部分中的创建数据库。不要在页面顶部的 “为 My SQL 和 Postgre 试用新的 Amazon RDS 多可用区部署选项 SQL” 部分中选择 “创建数据库”。
在创建数据库页面上,设置以下选项:
选择数据库创建方法:选择标准创建。
引擎选项:对于引擎类型,请选择 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_sample
。在数据库参数组下,选择dms-mariadb-parameters。
对于选项组,保留选中 default:mariadb-10-6。
在 Backup(备份)下,执行以下操作:
保留选中启用自动备份。您的源数据库必须启用自动备份才能支持持续复制。
对于备份保留期,选择 1 天。
在备份窗口中,保留选中无首选项。
清除将标签复制到快照复选框。
取消选中 “在其他 AWS 区域启用复制”。
在加密下,清除启用加密复选框。
日志导出部分保留不变。
在维护下,清除允许自动次要版本升级复选框,并将维护窗口设置保留为无首选项。
保留启用删除保护未选中。
选择创建数据库。
创建您的目标 Amazon RDS 数据库
重复前面的步骤创建您的目标 Amazon RDS 数据库,并进行以下更改。
为 Postgr RDS SQL e 数据库创建目标
重复上述过程的步骤 1 和 2。
-
在创建数据库页面上,设置相同的选项,但以下选项除外:
对于引擎选项,请选择 Postgre。SQL
对于版本,请选择 P ostgre 13.7-R1 SQL
对于 DB instance identifier(数据库实例标识符),输入
dms-postgresql
。对于主用户名,请保留选中
postgres
。对于数据库参数组,选择dms-postgresql-parameters。
清除启用自动备份。
选择创建数据库。
创建亚马逊EC2客户端
在本节中,您将创建一个 Amazon EC2 客户端。您可使用此客户端在源数据库中填充要复制的数据。您还可以使用此客户端通过在目标数据库上运行查询来验证复制。
与通过互联网访问数据库相比,使用 Amazon EC2 客户端访问您的数据库具有以下优势:
您可以将数据库的访问权限限制为位于相同数据库的客户端VPC。
我们已经确认您在本教程中使用的工具可以在 Amazon Linux 2023 上运行且易于安装,推荐在本教程中使用这些工具。
组件之间的数据操作VPC通常比互联网上的数据操作性能更好。
创建和配置 Amazon EC2 客户端以填充您的源数据库
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 在控制面板上,选择启动实例。
在启动实例页面上,输入以下值:
在名称和标签部分,对于名称,输入
DMSClient
。在应用程序和操作系统映像(亚马逊机器映像)部分,按原样保留设置。
在实例类型部分中,选择 t2.xlarge。
在密钥对(登录)部分中,选择新建密钥对。
在创建密钥对页面上,输入以下内容:
Key pair name:
DMSKeyPair
密钥对类型:保留为RSA。
私钥文件格式:在 macOS 或 Linux SSH 上为 “打开” 选择 pem,在 Windows 上为 TTY Pu 选择 ppk。
出现提示时保存密钥文件。
注意
您也可以使用现有的 Amazon EC2 密钥对,而不必创建新的密钥对。
在网络设置部分中,选择编辑。选择以下设置:
VPC-必填:选择VPC带有您为 DMSVPC-v VPC pc 录制的 ID 的。
子网:选择第一个公有子网。
自动分配公有 IP:选择启用。
原样保留其余设置,然后选择启动实例。
填充您的源数据库
在本节中,您将找到源数据库和目标数据库的端点以供稍后使用,并使用以下工具填充源数据库:
Git,用于下载填充源数据库的脚本。
MariaDB 客户端,运行此脚本。
获取端点
查找并记下您RDS的 MariaDB 和 Postgre SQL 数据库实例RDS的终端节点,以备日后使用。
查找数据库实例的端点
登录 AWS Management Console 并打开 Amazon RDS 控制台,网址为https://console.aws.amazon.com/rds/
。 在导航窗格中,选择数据库。
选择 dms-mariadb 数据库,并记下该数据库的端点值。
对 dms-postgresql 数据库重复之前的步骤。
填充您的源数据库
接下来,连接到您的客户端实例,安装必要的软件,从 Git 下载 AWS 示例数据库脚本,然后运行脚本来填充源数据库。
填充您的源数据库
使用您在前面步骤中保存的主机名和公有密钥连接到客户端实例。
有关连接亚马逊EC2实例的更多信息,请参阅《亚马逊EC2用户指南》中的访问实例。
注意
如果您使用的是 PuTTY,请在 “连接设置” 页面上启用 TCP keepalives,这样您的连接就不会因为处于非活动状态而超时。
安装 Git、MariaDB 和 Postgre。SQL根据需要确认安装。
$ sudo yum install git $ sudo dnf install mariadb105 $ sudo dnf install postgresql15
运行以下命令从中下载数据库创建脚本 GitHub。
git clone https://github.com/aws-samples/aws-database-migration-samples.git
切换到
aws-database-migration-samples/mysql/sampledb/v1/
目录。运行以下命令。例如,提供您之前记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运行数据库创建脚本。该脚本最多需要 45 分钟来创建架构和填充数据。您可以放心地忽略脚本显示的错误和警告。