首页 > 数据库 > 数据库开发技术 > 有关 TiDB 升级的二三事——教你如何快乐升级
数据库升级本身就是存在一定风险的操作,TiDB 如何实现平安、顺利、无感的迁移?本文结合一个使用量过亿的用户 K8s 集群升级的案例,介绍了 TiDB 的升级工具包的使用方法,如何实现从简单的参数比对到全场景的模拟重放,根据实际需求和成本考量自主选择方案。
有了 TiDB 升级工具包, 你 不必在升级选择面前患得患失,也不用在升级过程当中担心焦虑。 阅读本文,带你快乐升级!
升级的苦与乐
但是作为数据库老玩家的你,应该很清楚 升级本身就是存在一定风险的操作 ,比如:新版本中存在一些新的配置参数需要你去了解和适配,配的不好可能会出问题;新版本修复了安全漏洞,严格了安全权限,有些旧版本支持的访问模式也需要随之改写;之前一些 SQL 的执行计划好不容易的通过各种手段稳定下来,但是新版本也带来了不确定性。这就像你去了若指掌的餐馆点餐,突然间发现换了一个厨师,新师傅可能是米其林的大厨,但那道菜是不是你喜欢的口味却因人而异。总之你和我的想法一样,希望升级或迁移是平安的,顺利的,甚至是无感的。以至于某天业务找到你的时候不是抱怨突然出现的问题,而是称赞系统最近好用了很多,这才是升级最终的目的和价值。
TiDB 的百宝箱
TiDBA 通过对比升级前后版本的参数,帮助你快速识别出新版本参数的变化。
Pt-upgrade 用于mysql/maria/aurora等很多商业客户的升级中,经过大量实践确定是可用且可靠的。percona consulting团队的主要工具。该工具使用 slow query log 在升级的源集群(旧版本)和目标集群(新版本)上同步回放,以测试 SQL 兼容性。
Plan Change Capturer(PCC) 通过检测不同版本 TiDB 的执行计划变化,帮助你识别性能退步的 SQL,在升级前识别执行计划变化带来的风险。
Workload-sim 通过使用 Database Replay 在测试系统上运行真实的工作负载,帮助你全面评估升级的效果。
简单来说,TiDBA 是参数比对工具,提示你新增或修改的参数;pt-upgrade 主要解决的是兼容性和正确性问题;PCC 专门针对执行计划,解决潜在性能回退的问题;而 Workload-sim 是一份全量业务负载的拷贝,不仅可以提前发现升级潜在的问题,还可以评估升级的效果。他们所花费的资源由低到高,相应验证的效果也是从粗略到详细,你可以根据你的需求进行选择和自由组合。
某乎的升级之旅
升级环境
生产环境集群信息

测试环境集群信息

升级流程


升级比对
升级前

升级后

后记
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69994146/viewspace-2851841/ ,如需转载,请注明出处,否则将追究法律责任。