写点什么

汽车之家 v5.1 到 v7.5 超详细 TiDB 版本升级实践,性能稳定性双提升!

  • 2025-02-14
    北京
  • 本文字数:1813 字

    阅读完需:约 6 分钟

作者: huixiang 原文来源:https://tidb.net/blog/eb237faa

1. 背景介绍

TIDB 数据库的分布式、易扩展、兼容 MySQL 协议的特点,解决了 MySQL 单机存储容量不足的痛点,在行业得到广泛使用。汽车之家也有一些重要业务使用在 TIDB,如论坛, 好友关系,818 车展等。


之家使用 TIDB 版本为 5.1,随着业务的发展,尤其是跨机房双活集群数据同步需求,遇到 5.1 版 CDC 同步不稳定等问题, 依 TiDB 官方建议,我们决定将 TiDB 版本进行升级。

2. 版本选择及方案

TIDB 升级版本选择: 版本选择以稳定性及满足业务需求为先, 优先选 LTS 版本并测试,之家依官方建议选择 7.5.3 版本。



升级方案:TiDB 升级通常有两种方案,原地升级或迁移升级。


  • 原地升级:使用 TiUP 工具直接升级在线 TiDB 集群。

  • 迁移升级:搭建一套新版本 tidb 集群,使用 TiCDC 或 Drainer 做实时同步,数据追平后流量割接来实现升级。


3. 汽车之家 TIDB 升级

整体的 TIDB 升级过程可以分三个阶段: 1) 升级方案制定 2) 功能测试 3)迁移变更实施。 本节将展开说明。


3.1 方案制定

汽车之家 TIDB 实例已实现了机房双活 (同一业务会有主 / 从 2 个独立集群布署),考虑到升级异常回滚的需求,我们使用迁移升级,方案如下:


3.2 新集群布署及测试

待升级的业务实例确定后,DBA 提供高版本 TIDB 从库集群 (版本 7.5.3) 供研发及测试人员来测试新集群的功能、性能是否满足业务需求。


新集群布署:


  • 新集群布署: 使用 br 工具备份 / 还原数据,搭建新集群。

  • 集群参数检查: 注意新旧集群参数对比,可使用 tidba 工具来检查。

  • 数据同步: TICDC 或 Drainer 进行新集群的数据同步。

  • 账号同步: 账号同步可使用 pt-show-grants 工具协助。


3.3 变更操作

新集群功能、性能测试通过后,就可以和业务方协商 TIDB 迁移升级变更时间,并实施变更操作。

3.3.1 变更前检查

TIDB 版本升级是一个有风险的重大变更,在变更操作前需要认真检查。



为避免遗漏检查项,可以使用 “ 变更操作检查表 ”,逐项仔细核对。


3.3.2 变更实施

汽车之家业务通过域名访问 TIDB 数据库 (域名后端是 VIP 来负载均衡),TIDB 迁移升级迁移的流量切换,是通过修改域名后端 VIP 地址来完成。


变更操作步骤分两种情况:


a) 业务可短时停写:


**"建立反向数据同步-->新集群切流量-->旧集群只读-->旧数据同步停止"**。
复制代码


b) 业务不可停写:


有些业务非常核心不接受短时停写。在域名变更短时间,会有主从集群双写冲突问题。为解决此类场景需求,我们对新旧集群进行自增奇偶设置来解决此问题。也希望同行有更好的解决方法。



3.3.3 变更收尾

DBA 检查新集旧集群运行状态,数据同步状态等。若是各项 DB 监控指标健康,通知业务方测试业务各功能是否合预期,若均正常,则当天变更结束。


要注意的是:此时新集群版本是 7.5,但原集群版本仍为旧版本 (5.1),为了安全可新旧集群需并行运行一段时间,一切正常合预期,则可对旧集群原地升级,彻底完成升级操作。

4. 升级经验

4.1 升级级验

  1. 升级前认真检查新旧 TIDB 参数一致性:检查新旧集群参数配置是否一致 (如 sql_mode,new_collation_enabled,tidb_txn_mode,tidb_mem_quota_query,txn-entry-size-limit 等)

  2. 新集群定期 ANALYZE TABLE 确保新集群 bingding 计划全部导入,并定期 ANALYZE TABLE。避免性能问题。

  3. 多看官网上升级文档, 减少升级风险官网上有升级 Tips, 行业升级经验提前学习。TiDB 版本升级的小 Tips

4.2 问题及解决

汽车之家 TIDB 升级整体比较顺利,但也遇到过一些问题如下,最终在社区的帮助下都得到解决。


5. 升级收益

升级后,TiDB 集群在性能和稳定性等方面取得了显著提升。


  1. 性能提升

  2. 升级后集群性能有所提升,某集群升级后 TP99 性能较旧集群有明显提升。(旧集群是 31ms -> 升级新集群 15ms)

  3. 数据同步稳定性提升

  4. 原来 TIDB 版本为 5.1 时使用 TICDC 对主从集群数据同步,某集群常有 CDC 同步中断情况,升级后此类问题较少遇到。


  5. 新特性使用


  • Fast DDL: TiDB7.5 的 Fast DDL 功能, 实现加索引性能提升 10 倍 +,提升运维效率。

  • TTL (Time to Live): TIDB7 支持 TTL(Time-To-Live),允许为表设置自动清理过期数据,简化数据生命周期管理。

  • 资源管控 (多租户: TIDB7 支持多租户,可有效隔离不同租户的资源使用,提高资源利用率。

6. 致谢

在 TiDB 运维和升级的过程中,得到官方社区人员表妹、李仲舒、王军、刘爽等的帮助,非常感谢各位 TIDB 老师们给予的大力支持和耐心问题解答~

7. 参考文档


发布于: 刚刚阅读数: 3
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
汽车之家 v5.1 到 v7.5 超详细 TiDB 版本升级实践,性能稳定性双提升!_版本升级_TiDB 社区干货传送门_InfoQ写作社区