当然对于一件事情的基本逻辑越简单,实现起来也更聚焦 。所以我们进一步提炼了一下目标,7->2,即7个分支技术栈整合为2个,在这个基础上进行生态技术栈的补充和完善 。
(三)数据库版本升级的意义
做这件事情有什么好处呢 , 也就是所谓的意义,我觉得是:降本增效,提高整体业务稳定性 。主要体现在如下六个方面:
- 应对未来3年内的数据库基础服务风险,对后续的数据存储平台架构迭代奠定基?。ㄕ飧鲂枰?擅魅返墓婊?С牛?/li>
- 通过版本升级提高整体业务性能和稳定性
- 实现支持系统的一致性,提高基础服务支撑能力
- 将单点业务迁移至MySQL主流技术栈,预防故障风险
- 对开发规范和SQL审核机制进行规范化支持和落地
- 为后续的环境标准化建设提供实践经验

文章插图
毕竟数据库的升级是一项大工程,大开大合,研发同学再配合支持也需要权衡,所以MySQL 8.0的大版本基础之上,在满足驱动和协议兼容之后,后续的小版本和迭代升级计划都是在8.0的体系之内完全平滑闪断完成,也就不需要研发同学全程跟进了 。
(四)数据库版本升级的潜在难点
当然任何事情都得多面看,看到好处(意义),也需要看到难点:
- 跨中心多团队协作,周期较长
- 开发语言技术栈有7个,MySQL 8.0的驱动兼容性都需要充分考虑
- 部分升级改造需要研发侧支持旁路数据双写
- 根据数据库拓扑关联主机业务的亲和性,避免服务器故障
- 按照业务特点和优先级制定差异化升级方案
- 基于滚动模式的数据库资源全量替换,避免资源冗余
- 制定平滑的MySQL集群迁移方案,对业务侵入性最低
二、通过五个方面保障数据库升级的稳定性
接下来我会从如下的几个方面来保障整个升级过程的稳定性 。
(一)梳理和确认目标和范围
整个数据库版本升级,不是单单有标准版的主从集群,还需要考虑到中间件集群,因为NewSQL集群上线已经完成了兼容性测试,所以不在本次升级的考虑范围之内 。
通过这项梳理也能够基本明确其他分支技术栈该如何做方案设计 。

文章插图
(二)制定升级策略
1、整体升级策略
这场数据库版本升级的大迁徙,是从7个分支技术栈收缩为2个,所以需要对不同的分支技术栈规划落地方案,整体上我们是倾向于让MySQL 8.0承载尽可能完整的业务 。

文章插图
因为上一步明确了数据库版本升级的范围是标准版和中间件集群和其他分支技术栈,则需要制定相应的升级策略 。
2、标准版升级策略
对于标准版主从来说,如果是MySQL 5.5,5.6版本 , 需要先过渡到MySQL 5.7,完成兼容性测试之后,观察一段时间之后,再次升级到MySQL 8.0;如果是MySQL 5.7版本,则可以直接升级到MySQL 8.0 。

文章插图
3、中间件集群升级策略
对于中间件集群来说,整体的思路还是做拓扑下沉,即通过级联的方式,把从库提升为主库 。

文章插图
4、其他分支技术栈升级策略
对于其他的分支技术栈来说,这些技术栈早期也确实解决了一些业务厄待解决的问题,随着MySQL 8.0的性能提升和集群技术的迭代,需要做一些整合 。
- TokuDB迁移至TiDB
- Infobright迁移至MySQL 8.0
- 对于一些历史遗留业务 , 还需要研发协助完成数据旁路双写
推荐阅读
- MySQL 5.7废止了?我们暂无计划
- MySQL5.7 EOL后,国内免费数据库替代方案
- 5.7%甲维盐使用方法 甲维盐使用方法
- 电视剧全网热度榜,《长相思》跌至第三,第一热度高达75.76
- 耗资5.7亿,海外票房仅376万,成龙新片放弃中国市场是最大败笔
- 5.7v8兰德酷路泽油耗
- 4月4日会停服吗 4月4日停服
- 15.7寸等于多少厘米长宽
- 2021年元旦倒计时器
- 高考倒计时,家长如何缓解焦虑
