数据库 频道

GitHub是怎样把MySQL 5.7升级到8.0的?

  去年(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版本呢?

0
相关文章