TiFlash 升级帮助

本文介绍 TiFlash 升级时功能模块的变化,以及推荐的应对方法。

如需了解标准升级流程,请参考如下文档:

使用 TiUP 升级

如需将 TiFlash 从 v5.3.0 之前的版本升级到 v5.3.0 及之后的版本,必须进行 TiFlash 的停机升级。使用 TiUP 进行升级时:

  • 如果 TiUP Cluster 版本大于或等于 v1.12.0,则无法进行 TiFlash 的停机升级。如果目标版本要求的 TiUP Cluster 版本大于或等于 v1.12.0,则建议先使用 tiup cluster:v1.11.3 <subcommand> 将 TiFlash 升级到某个中间版本,然后进行 TiDB 集群的在线升级,之后升级 TiUP 版本,最后对 TiDB 集群进行不停机升级至目标版本。
  • 如果 TiUP Cluster 版本小于 v1.12.0,则执行以下步骤进行升级 TiFlash。

参考如下步骤,可以在确保其他组件正常运行的情况下,使用 TiUP 升级 TiFlash:

  1. 关闭 TiFlash 实例:

    tiup cluster stop <cluster-name> -R tiflash
  2. 使用 --offline 参数在不重启(只更新文件)的情况下升级集群:

    tiup cluster upgrade <cluster-name> <version> --offline

    例如:

    tiup cluster upgrade <cluster-name> v7.1.8 --offline
  3. 重新加载整个集群。此时,TiFlash 也会正常启动,无需额外操作。

    tiup cluster reload <cluster-name>

从 v7.1.x 升级至 v7.1.8,并且设置了 storage.format_version = 5

从 v7.1.8 开始,TiFlash 支持新的 DTFile 版本 V3(实验特性),可以将多个小文件合并成一个大文件,减少文件数量。DTFile 在 v7.1.8 的默认版本是 V2,如需使用 V3,可通过 TiFlash 配置参数 storage.format_version = 5 来设置。设置后,TiFlash 仍可以读 V2 版本的 DTFile,并且在后续的数据整理 (Compaction) 中会将这些 V2 版本的 DMFile 逐步重新写为 V3 版本的 DTFile。

在 TiFlash 升级到 v7.1.8 并且使用了 V3 版本的 DTFile 后,如需回退到之前的 TiFlash 版本,可以通过 DTTool 离线将 DTFile 重新写回 V2 版本,详见 DTTool 迁移工具

从 v7.1.x 升级至 v7.1.8 或以上版本

从 v7.1.8 开始,为了减少数据整理时产生的读、写放大,PageStorage V3 数据整理时逻辑进行了优化,导致底层部分存储文件名发生改动。因此,升级 TiFlash 到 v7.1.8 或以上版本后,不支持原地降级到之前的版本。

从 v7.1.8 开始,为了支持向量搜索功能,TiFlash 底层存储格式发生改动。因此,升级 TiFlash 到 v7.1.8 或以上版本后,不支持原地降级到之前的版本。

测试环境及特殊回退需求下的对策

如果在测试环境下或者其他有特殊回退需求的场景下,可以强制缩容 TiFlash 节点,并重新同步数据。操作步骤详见缩容 TiFlash 节点