TiFlash v6.2 升级帮助

本文介绍从 TiFlash 低版本升级至 v6.2 时功能模块的变化,以及推荐的应对方法。

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

从 v5.x 或 v6.0 升级至 v6.1

从 v5.x 或 v6.0 升级至 v6.1 时,需要注意 TiFlash Proxy 和动态分区裁剪功能的变化。

TiFlash Proxy

TiFlash 在 v6.1.0 对 Proxy 做了升级(与 TiKV v6.0.0 对齐)。新的 Proxy 版本升级了 RocksDB 版本,在升级过程中会自动将数据格式转换为新版本。

正常升级时,不会有明显风险。如果特殊场景(如测试验证)需要降级,请注意,v6.1 降级到之前的任意版本时,会无法解析新版 RocksDB 配置,从而导致 TiFlash 重启失败。请做好升级验证工作,并尽可能准备应急方案。

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

强制缩容 TiFlash 节点,并重新同步数据。操作步骤详见缩容 TiFlash 节点

动态分区裁剪

如果你没有也不打算开启动态分区裁剪,可略过本部分。

  • TiDB v6.1 全新安装:默认开启动态分区裁剪 (Dynamic Pruning)。

  • TiDB v6.0 及之前版本:默认关闭动态分区裁剪。旧版本升级遵循已有设定,不会自动开启(相对的也不会关闭)此功能。

    升级完成之后,如果要启用动态分区裁剪特性,请确保 tidb_partition_prune_mode 的值为 dynamic,并手动更新分区表的全局统计信息。关于如何手动更新统计信息,参见动态裁剪模式

从 v5.x 或 v6.0 升级至 v6.2

TiFlash 在 v6.2.0 将数据格式升级到 V3 版本,因此,从 v5.x 或 v6.0 升级至 v6.2 时,除了需要注意 TiFlash Proxy动态分区裁剪的变化,还应注意 PageStorage 变更数据版本带来的影响,具体如下:

  • 已有节点升级 v6.2 后,随着数据不断写入,旧版本的数据会逐步转换成新版本数据。

  • 新旧版本的数据格式不能做到完全的转换,这会带来一定系统开销(通常不影响业务,但需要注意)。因此升级完成后,建议使用 COMPACT 命令触发数据整理 (Compaction) 将相关表的数据转成新版本格式。操作步骤如下:

    1. 对每张有 TiFlash 副本(replica)的表执行如下命令:

      ALTER TABLE <table_name> COMPACT tiflash replica;
    2. 重启 TiFlash 节点。

你可以在 Grafana 监控查看是否还有表使用旧的数据版本:Tiflash summary > storage pool > Storage Pool Run Mode

  • Only V2:使用 PageStorage V2 的表数量(包括分区数)
  • Only V3:使用 PageStorage V3 的表数量(包括分区数)
  • Mix Mode:从 V2 迁移到 V3 的表数量(包括分区数)

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

强制缩容 TiFlash 节点,并重新同步数据。操作步骤详见缩容 TiFlash 节点

从 v6.1 升级至 v6.2

从 v6.1 升级至 v6.2 时,需要注意 PageStorage 变更数据版本带来的影响。具体请参考从 v5.x 或 v6.0 升级至 v6.2 中关于 PageStorage 的描述。