前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL5.5到5.7版本之间的迁移

MySQL5.5到5.7版本之间的迁移

作者头像
AsiaYe
发布2019-11-06 17:43:26
3.4K1
发布2019-11-06 17:43:26
举报
文章被收录于专栏:DBA随笔

MySQL5.5到5.7版本之间的迁移

这两天在做MySQL方向上的版本升级和高可用改造,在这个过程当中,还是遇到了不少的问题。从资源问题到级连的复制关系,虽然没有肉眼可见的困难环节,但是小细节还是挺多的,一不留神,可能会让你前功尽弃。

先说说为什么用5.7的这个版本吧,mysql5.7其实还是带来了很多方便的地方的,例如:

1、支持动态更改很多参数,不用重启数据库

2、支持GTID,这样搭建复制关系更加方便,主从节点之间的互相切换更加得心应手

3、sys schema系统库、并行复制等一系列新的功能

4、sql_mode参数的引入,使得SQL有了更加严格的校验过程,这样有利于写出更加标准的SQL,线上程序的鲁棒性更好

我使用MySQL版本升级的方法比较保守,就是在已有的5.5环境的基础上,搭建5.7版本的级连从库。架构类型如下:

这样级连的问题在于,5.5和5.7之间复制关系不能使用GTID的方式,只能使用传统的便宜量方式,而5.7和5.7之间需要使用GTID复制,但是业务一旦迁移到5.7上面来,就不允许重启了,所以只能在线做一个传统复制关系到gtid复制关系的切换,当然,这个切换的过程在之前的文章中有讲到,可以在线操作。

但是需要注意的是,搭建5.5到5.7版本的复制关系的时候,主库和从库的gtid_mode需要同步,否则MySQL会提示无法创建复制关系。而且修改在线的复制关系为GTID之后,还需要修改配置文件,这里我把这个过程整理一下:

MySQL5.5升级到MySQL5.7版本的步骤

1、搭建好2套MySQL5.7版本的实例,并配置好主从复制关系;

2、在MySQL5.5版本的服务器上对数据进行备份(只能使用mysqldump备份业务数据库,而且需要添加--master-data=2选项参数获取偏移量值,不能使用xtrabackup,因为从库不需要数据字典的内容,所以不能备份物理文件)

3、将MySQL5.7版本的数据库修改几个参数

3.1 sql_mode暂时设置成空值,保证数据恢复的过程中不会出错。

3.2 gtid_mode的值改为off,保证下一步中搭建复制能够成功

4、在MySQL5.7版本的主节点上进行上一步备份数据的恢复

,使用备份文件中的偏移量值搭建MySQL5.5版本服务器的5.7从库,并在从库上设置read_only和super_read_only的选项

5、复制MySQL5.5服务器上的MySQL账号、密码、权限和系统防火墙信息,保证服务切换到5.7版本的服务器上的可用性。

6、在MySQL5.5的主库设置read_only和super_read_only选项,保证5.5的主库临时不能写入,如下:

此时迅速将业务切换到MySQL5.7版本上,并且关闭read_only和super_read_only选项,并切断5.5到5.7的复制关系。

7、此时复制关系变成了下图:

8、在线将偏移量的复制方式切换为gtid的切换方式,具体方法之前的文章中有。切换完成之后,修改MySQL5.7主从服务器的my.cnf文件。否则下次重启的时候,gtid的方法会失效,出现不必要的麻烦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档