首页 > 技术文章 > 腾讯云RDS MySQL迁移AWS

223zhp 2022-02-21 15:41 原文

腾讯云RDS MySQL迁移AWS
背景
现在越来越多的客户选择了云,从传统IDC迁移到了云上,还有很多互联网客户天生就长在云上,所有业务都是基于云上开展,充分利用了云上资源的优势,但是每家云的服务体验不同,很多客户会选择多云部署,或者从一家云迁移到另一家云,那么作为Bespin服务之一就是如何高效的专业的帮客户做迁移,而数据库作为迁移的重点也是难点,而客户在云上一般会使用很多PAAS层的产品,如:数据库。PAAS层的产品既带来了更高的可用性和服务型,但同时也带来了更多的限制,那么当客户遇到需要将云上PAAS层数据库迁移到线下IDC或者其他云的时候,会遇到比较多的限制。本解决方案主要是介绍腾讯云上RDS MySQL如何迁移到AWS的解决方案。您可以通过下面文档学习到如何将腾讯云RDS MySQL迁移到AWS的RDS或者自建数据库。

场景一:Tencent RDS迁移到AWS自建数据库

如果你正在使用Tencent RDS for MySQL,并且有足够的停机时间的话,那么可以通过RDS全量物理备份的方式进行迁移。具体操作如下:

1、 腾讯云MySQL数据库实例默认不开启公网访问,需要先开启公网访问

2、 停止应用程序对源数据库的写入操作。

3、 对源数据库创建物理备份,可以控制台进行操作,选择要迁移的数据库实例,实例右上角【手动备份】发起备份任务,如下图:

等待备份下载完成。
wget命令格式:wget -c '<备份文件下载地址>' -O <自定义文件名>.xb

4、由于备份文件经过qpress压缩,xbstream打包,所以需要先用xbstream解包。

5、由于 腾讯云 备份是开源软件 Percona Xtrabackup 可对数据库进行备份恢复,
XtraBackup 只支持 Linux 平台,不支持 Windows 平台。
Windows 平台恢复数据请参考 命令行工具迁移数据
固 需要下载 Percona XtraBackup

解包备份文件

解压备份文件

因为备份文件经过quicklz算法压缩,所以需要进行解压, 使用qpress命令讲目标下所有以.qp结尾的文件都解压出来

xtrabackup –decompress –target-dir=/data –remove-original

Prepare备份文件,需要执行进行apply log操作。

xtrabackup --prepare –tafget-dir=/data

执行后如果结果中包含以下输出,则表示 prepare 成功。

修改配置文件,修改文件属性为mysql用户

启动MySQL并登陆验证

注意:恢复完成后,表mysql.user中不包含tencentDB中创建的用户,需要新建。
场景二: DMS工具Tencent RDS迁移到AWS (自建MySQL或RDS)
AWS Database Migration Service 可帮助您快速并安全地将数据库迁移至 AWS。源数据库在迁移过程中可继续正常运行,从而最大程度地减少依赖该数据库的应用程序的停机时间。但是这种情况一般是针对自建数据库,而腾讯云PAAS层的数据库限制较多,所以对于增量的迁移不一定能实现,我们将通过下面具体案例来验证腾讯云RDS MySQL 通过DMS的迁移。

使用 AWS DMS 控制台向导启动数据库迁移,可以看到“Welcome”(欢迎) 页面,其中介绍使用 AWS DMS 的数据库迁移过程。

在AWS创建一个RDS MySQL数据库或者自建数据库即可(自建数据库也可以),创建迁移实例要求和RDS一个VPC或者公网可以访问,保证数据库的和DMS的服务网络是可以通的即可,使用账号具有读写权限。

3、首先创建DMS 任务配置源库和目标库

4、通过点击Run test按钮来测试DMS对数据库的网络连接性,可以选择高级设置或者选用默认的设置,我这里通过默认设置进行测试 注意表映射指定表选择和转换,输入任务信息,包括任务名称、复制实例、源终端节点、目标终端节点和迁移类型。从 Table mappings (表映射)部分中选择 Guided (指导)。其中%为匹配所有,只能通过一个库一个库的迁移。一个迁移任务只能包含一个库。

5、整个迁移时间花费10分钟,数据量大概是10万条

总结

数据导出阶段,从腾讯云上下载备份速度比较慢,对于可以锁表的业务,可以通过mysqldump来导出逻辑备份,经测试速度大于每分钟1 GB。物理备份只有逻辑备份大小的十分之一,需要衡量两种方式对业务的影响。

腾讯云的PAAS层MySQL通过亚马逊的DMS迁移,只能进行全量迁移,没法进行增量迁移。 停机时间长,那么对于停机时间紧的业务,从腾讯云迁移到AWS的业务影响大,需要付出较多损失。

推荐阅读