去年(2023年10月25日),随着MySQL 5.7.44发布,宣告5.7正式停止开发和维护。
而不少企业选择把MySQL 5.7升级到8.0。
那么你所在的公司,现在使用了哪些MySQL版本呢?
GitHub也在去年把MySQL升级到了8.0。
他们分享了详细的升级过程,以及遇到的一些问题,地址如下:
https://github.blog/2023-12-07-upgrading-github-com-to-mysql-8-0/
我们就来总结一下大致步骤。
第一步
先升级部分副本,然后将部分只读流量切上去,也会保留足够的5.7副本,以方便回滚
第二步
如果只读流量经过8.0的验证,没问题,就调整复制拓扑为下图形式
一个8.0的候选,直接接在5.7主库后面
8.0的从库下游又创建两个复制链
一部分是5.7的从(暂时不提供查询,用来做回滚用的)
另外一部分是8.0的从,用来承担只读查询。
第三步
通过Orchestrator,执行failover将上图MySQL 8.0的从库提升为主。
这个时候,拓扑变成了一个8.0的主,它下游附带了两个复制链组:
一部分是5.7的从(暂时不提供查询,用来做回滚用的)。
另外一部分是8.0的从,用来承担只读查询。
并且Orchestrator还把5.7的主机列为故障转移的黑名单,防止发生切换的时候,又出现5.7的实例提升为主的情况。
第四步
升级其他用于备份或者非生产的实例
第五步
如果在8.0的版本下运行了足够长的时间(至少24小时),则把集群内5.7版本的MySQL全删除。
那么,你现在所在的公司,线上环境使用的是哪些MySQL版本呢?