提问

数据迁移到aurora mysql数据库

AWS技术交流  / 只看大图  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2019-11-19

跳转到指定楼层
本帖最后由 社群技术交流 于 2019-11-19 19:11 编辑

作者:光环云 徐毅
前言数据库迁移到aurora mysql的方式有以下几种:
1 Rds mysql迁移到aurora mysql

2)外部mysql数据库迁移到aurora mysql

  • 使用mysqldump实用程序创建数据的转储,然后将该数据导入现有的aurora mysql数据库集群。
  • 将完整备份文件和增量文件从数据库复制到S3存储桶,然后从这些文件还原aurora mysql数据库集群,速度可能比使用mysqldump迁移数据要快。

1 使用mysqldump实用程序创建数据库的转储,然后将该数据导入现有aurora mysql数据库集群
因为aurora mysqlmysql兼容,所以该过程与将mysql数据导入rds mysql的过程类似,可参考文档 https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html其整体架构如下图所示: image1.png

1.1 安装并配置好mysql数据库
我在光环云裸金属服务器上部署了mysql数据库,具体部署过程略,可以百度。

1.2 创建mysql数据库的副本
1.2.1 设置复制选项
编辑文件/etc/my.cnf    sudo vi /etc/my.cnf
更新[mysqld]字段如下:[mysqld]log-bin=mysql-binserver-id=1  
image2.png

重启mysql服务    service mysqld restart

1.2.2 创建现有数据库的备份副本
源数据库mysql的状态:
image3.png

上图中新建了一个数据库schema_xuyi,现在将schema_xuyi进行备份,执行如下命令:
  1.     mysqldump \


  2.     --databases  schema_xuyi \

  3.     --master-data=2  \

  4.     --single-transaction \

  5.     --order-by-primary \

  6.     -r backup.sql \

  7.     -u  local_user \

  8.     -p
复制代码
image4.png

图中可见生成了备份文件backup_xuyi.sql

1.3 创建auroramysql数据库
具体创建过程省略,注意与此前的mysql数据库版本尽量一致。
image5.png


远程连接到aurora mysql数据库,其初始状态如下图:
image6.png

1.4 使用mysql命令远程连接到aurora mysql数据库并导入此前的sql文件
执行命令:
  1. mysql -h aurora-1-instance-1.cbgpcbkn8knw.us-east-1.rds.amazonaws.com -P 3306 -u admin -p
复制代码
其中aurora-1-instance-1.cbgpcbkn8knw.us-east-1.rds.amazonaws.com部分是aurora mysql数据库的终端节点,连接成功
image7.png

执行命令  source backup_xuyi.sql;
image8.png

Workbench的刷新操作没找到,重新连接了一下auroramysql数据库,可见其状态如下:
image9.png
其中已经有了schema_xuyi的库,说明mysqldump导入成功,本次测试只是为了验证从外部mysql导入到aurora的过程,至此本次操作完成。

2 将完整备份文件和增量文件从数据库复制到S3存储桶,然后从这些文件还原aurora mysql数据库集群   
参考文档:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3

2.1 准备工作
2.1.1 在本地服务器上安装percona
本地数据库版本是mysql5.7,建议percona版本为PerconaXtraBackup 2.4
执行以下命令:
  1. yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
  2. yum install -y percona-xtrabackup-24.x86_64
复制代码


image10.png


从上图可见Percona-xtrabackup安装成功。

2.1.2 准许aurora mysql访问S3存储桶
  • 在跟aurora mysql数据库相同的区域中创建一个存储桶
过程比较简单,省略。
image11.png
  • 创建IAM策略以访问S3资源
可以通过IAM控制台来创建相应的策略,具体过程省略,可以授予aurora 访问S3所有权限。
image12.png
  • 创建IAM角色以允许aurora mysql访问AWS服务
具体创建角色的过程省略,可以参考文档: https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.html
如下图所示,创建了一个角色role_aurora_to_s3,并将上一步的策略附加到了该角色上。 image13.png
  • 将角色与aurora mysql数据库关联
具体操作过程见文档 https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.html
image14.png


如上图所示,已经将角色与aurora mysql数据库相关联。为了让角色生效还需要修改参数组,我们选择新建一个参数组 image15.png


其中参数“aurora_load_from_s3_role”的值更新为前面所创建角色的ARN
image16.png


再修改数据库实例的数据库选项
image17.png
应用修改,立即重启数据库。

2.2 备份要还原为aurora mysql的数据库的文件
2.2.1 准备工作
为了跟之前的数据库内容区别开来,特意新建了库schema_test,并在其中新建了一张表table_test,如下图所示: image18.png

2.2.2 使用percona xtrabackup创建备份
全量备份xtrabackup --user=root --password=XY-zte110 --backup --target-dir=/root/backupfiles
image19.png

可见在当前目录下生成了一个backupfiles目录,该类目下的内容如上图所示。通过aws CLI将备份文件夹整个上传到s3存储桶(具体上传的过程省略),登录s3控制台可见
image20.png

2.3 从S3存储桶还原aurora mysql数据库
登录aurora控制台,进入数据库页面
image21.png

在数据库页面点击“从S3还原”,引擎选项->aurora版本->我们选择的是mysql5.7
image22.png


点击“下一步”
image23.png


下一步,进入数据库详细信息页面进行设置,具体内容与新建aurora实例的过程相似
image24.png


下一步,配置高级设置
image25.png


从这个配置的过程来看,跟创建一个新的aurora实例完全相同,由此可以断定auroras3还原实际上是重新起了一个aurora实例。最后点击“创建数据库”
image26.png


确实是新生成一个数据库实例,耐心等待吧。切换到数据库页面,可以看到有两个aurora实例
image27.png image28.png


上图中的实例aurora-instance-xuyi-copy就是从s3还原出来的新的aurora实例,已经成功创建。现在远程到该实例查看数据库状况 image29.png

可见全量复制成功。至此通过S3还原aurora数据库完成。

3 总结
首先,最大的区别是使用s3还原是重新生成了一个新的数据库实例,而使用mysqldump不会新建数据库实例。
其次,mysqldump属于逻辑复制,备份成sql脚本文件,而通过S3还原是使用xtrabackup工具进行备份,属于物理复制。
最后,官网文档说使用s3速度会快一些,本次实践没有考虑性能,故无法实际比较迁移速度。
附:关于mysqldumpxtrabackup的比较 https://blog.51cto.com/11257187/2119413



转播转播
回复

使用道具

联系楼主
*
*
客户公司所在区域:
*
产品:
*
简述客户的业务场景和需求
*
*
*

成为第一个回答人

B Color Link Quote Code Smilies
光环云社区 |京ICP备18044167号-13|

京公网安备 11010102003758号