手把手教程|完成 MySQL 数据库到 Amazon RDS 的高效迁移



在本章节中主要描述,如何使用源MySQL数据库执行数据库迁移到MySQL数据库的目标Amazon RDS的最佳实践。

同时由于(源和目标数据库引擎是相同的)——模式结构、数据类型和数据库代码在源和目标数据库之间是兼容的,这意味着这种迁移不需要任何模式转换。

数据库迁移可以通过多种方式执行,可以通过迁移实例的方式,也可以通过DMS进行迁移;这里我们将使用Amazon数据库迁移服务(DMS)执行连续的数据复制迁移,迁移思路如下:

  • 创建目标数据库

  • 设置网络

  • 创建复制实例

  • 创建源和目标段节点

  • 配置数据库

  • 创建和运行复制任务

  • 小结

1.1 创建目标数据库

在配置Amazon DMS之前,需要在提供的Amazon帐户中创建目标数据库。使用Amazon关系数据库服务(RDS)来执行此活动,使得在云中轻松地设置、操作和扩展关系数据库。

1.进入 Amazon 管理控制台, 从 服务 中选择 RDS 然后点击 创建数据库

2.在 引擎选项 中,选择 MySQL,版本选择 MySQL 5.6.44

设置 部分,为您的新数据库实例配置数据库实例标识符(比如 database-1)、主用户名(比如 admin)和主密码。这里密码设置为“passwr0d”

数据库选择 db.m5.large来自标准DB实例类,并保留存储参数的默认值。

3.在 可用性与持久性 部分,选用缺省值,创建备用实例(使用多AZ部署更加安全)

4.在 连接 部分:

在Virtual Private Cloud (VPC),选择 Generated VPC。

在其它连接配置 -> VPC 安全组,选择 新建 VPC 安全组,输入名称(比如 “DB-SG”)

5.对于 数据库身份验证,选择 密码身份验证。

6.在 其它配置 部分,确保 监控 下面的 启用增强监测 不被选中,如下图所示:

7.最后,点击创建数据库按钮。

1.2 设置网络

由于在迁移的过程中,不使用VPN或Amazon直接连接,因此DMS复制实例将需要通过公共internet连接到源数据库,而通过专用网络连接到目标数据库。

1.2.1 创建复制子网组

使用Amazon DMS的先决条件之一是配置一个子网组,该子网组是将由DMS复制实例使用的子网集合。

  1. 进入Amaozn 控制台>服务>Database Migration Service>子网组,点击创建子网组按钮。

  2. 在创建复制子网组中输入以下参数值:

点击创建子网

1.2.2 配置安全组

在进行数据库迁移的时候,VPC安全组必须允许从DMS复制实例到目标RDS数据库的入站流量。

  • 为DMS复制实例创建一个安全组

  1. 进入Amazon 控制台>服务> EC2 >安全组,点击创建安全组按钮。

  2. 输入安全组名称(例如RI-SG),给它一个描述并为VPC字段选择生成的VPC。

2) 更新数据库安全组

a) 仍然在Amazon 管理控制台 > 服务 > EC2 > 安全组屏幕中选择之前创建的数据库安全组 DB-SG

b) 编辑和更新数据库安全组,以允许来自端口3306上的DMS复制实例安全组的入站流量

1.3 创建DMS Replication实例

1.3.1 创建Amazon DMS Replication实例

在此步骤中,您将创建一个Amaozn数据库迁移服务复制实例,该实例启动源数据库和目标数据库之间的连接,传输数据,并缓存在初始数据加载期间源数据库上发生的任何更改。

(1)在Amazon控制台内部,进入服务->数据库迁移服务。

(2)点击复制实例中的创建复制实例按钮。

(3)在“创建复制实例”屏幕上,使用以下参数值配置一个新的复制实例:

如下图所示:

在高级安全性和网络配置中,请确保选择前面创建的复制子网组和复制实例安全组。

(4)点击创建按钮。

创建复制实例需要花几分钟时间, 确保状态变为可用,再执行下面的步骤。

1.4 创建源环境和目标环境

Endpoints

仍旧在 Amazon DMS 界面里,进入 终端节点,然后点击 创建终端节点 按钮。

1.4.1创建源环境endpoint

使用下面的参数去配置endpoint

打开测试端点连接(可选)部分,然后在VPC下拉菜单中选择生成的VPC并单击Run Test按钮来验证端点配置是否有效。

测试将运行一分钟,您应该会在Status列中看到成功消息。单击Create endpoint按钮创建端点。

在出现任何错误的情况下—确保您正确配置了端点参数,并且复制实例是在检查了可公开访问的参数后创建的。

1.4.2 创建目标 endpoint

重复所有步骤,以创建具有以下参数值的目标端点:

1.4.3 调整参数

在特定于终端的设置->额外连接属性复制-粘贴以下连接参数

parallelLoadThreads=1; initstmt=SET FOREIGN_KEY_CHECKS=0 

1.4.4 在“测试端点连接”(可选)下拉菜单中选择生成的VPC,然后单击“运行测试”按钮,以验证您的端点是否有效。

如果出现任何错误,请确保RDS数据库的VPC安全组允许来自Amazon DMS复制实例安全组(或例如来自整个生成的VPC(10.0.0.0/16))的端口3306上的入站流量。

1.5配置源数据库

1.5.1使用更改数据捕获 (CDC) 运行DMS复制任务

为了确保数据库迁移的停机时间最小化,我们将使用从源数据库到目标数据库的更改的连续复制(也称为更改数据捕获(Change Data Capture, CDC))。有关CDC和Amazon DMS的本机CDC支持的更多信息,请参阅:

http://aws.amazon.com/blogs/database/aws-dms-now-supports-native-cdc-support/

1.5.2 在源数据库上启用二进制日志

为了实现从MySQL数据库持续复制Amazon DMS,您需要启用二进制日志并对源数据库进行配置更改。

修改“wordpress-user”的权限

(1)登录到源环境数据库服务器

通过Database SSH key(这是个私有.pem密钥),并使用它连接到数据库服务器(用户是centos)。

Microsoft Windows用户可以参考下面的链接。

https://aws.amazon.com/blogs/database/aws-dms-now-supports-native-cdc-support

Mac OS用户可以参考下面的链接。

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/putty.html

(2)为wordpress-user数据库用户授予额外的特权

在数据库服务器上运行以下命令:

sudo mysql -u root -pAWSRocksSince2006


GRANT REPLICATION CLIENT ON *.* to ‘wordpress-user’;
GRANT REPLICATION SLAVE ON *.* to ‘wordpress-user’;
GRANT SUPER ON *.* to ‘wordpress-user’;
exit

(3)创建一个bin logs目录,

在数据库服务器上运行以下命令:

sudo su – mysql
mkdir /var/lib/mysql/binlogs
exit

有关二进制日志的更多信息可以在MySQL文档中找到:

https://dev.mysql.com/doc/refman/8.0/en/binary-log.html

(4)修改/etc/my.cnf 文件,

运行以下程序来编辑文件:

sudo vi /etc/my.cnf


然后在[mysqld]部分添加以下信息:


server_id=1
log-bin=/var/lib/mysql/binlogs/log
binlog_format=ROW
expire_logs_days=1
binlog_checksum=NONE
binlog_row_image=FULL
log_slave_updates=TRUE

(5)重启MySQL服务

运行以下命令来应用更改:

sudo service mysql restart

(6)测试,运行以下命令来应用更改:

sudo mysql -u root -pAWSRocksSince2006


select variable_value as “BINARY LOGGING STATUS (log-bin) :: “
from information_schema.global_variables where variable_name=’log_bin’;


select variable_value as “BINARY LOG FORMAT (binlog_format) :: “
from information_schema.global_variables where variable_name=’binlog_format’;


exit

输出必须显示设置为ON的二进制日志状态,如下面的屏幕截图所示:

如果确实如此 – 您可以 退出 SSH 了。如果出现任何问题 – 请检查 /var/log/mysqld.log 文件中的错误信息。

1.6 创建和运行复制任务

回到Amazon DMS控制台,进入数据库迁移任务,并单击Create Task按钮。

1)在创建数据库迁移任务屏幕中输入以下参数值:

2)在任务设置面板中输入以下值(保持其他值为默认值):

3)在表映射面板的 选择向导 UI模式中,点击添加新选择规则按钮,在架构下拉列表中选择wordpress-db。

4)滚动到屏幕底部,单击创建任务按钮创建任务并开始数据复制即可。

1.7 小结

本篇主要介绍如何将源MySQL数据库迁移至Amazon RDS的最佳实践方法,通过上面的步骤可以完整实现数据库的迁移。这里面除了上面的操作步骤的细节,还有目标环境的网络构建,确保目标网络至少2个以上的网络,且有必备的公有子网和私有子网,公有子网能与源环境互通即可。

本篇作者:罗俊

亚马逊云科技专业服务团队云架构咨询顾问。负责企业客户的云架构设计、迁移、安全和优化,云上自动化运维,容器等相关咨询服务。对云原生技术、区块链等有深入的研究和热情。

听说,点完下面4个按钮

就不会碰到bug了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值