5.3之前版本升级至5.3之后版本,tiflash为何不能一起滚动升级

是这样的,在 5.4 里面我们对 MPP 的数据传输接口进行了一下改动。这导致 5.3 及以前的版本遇到 5.4 及以后的版本发送的 MPP 数据时,会读不到数据,从而导致 query 结果不对。为了在升级的时候避免这个问题,有两个方法:

  1. 官方推荐的方法:
    第一步:关闭 TiFlash 实例:tiup cluster stop -R tiflash
    第二步:使用 --offline 参数在不重启的情况下升级集群:tiup cluster upgrade --offline,注意这一步虽然是用了 --offline,但其实就是直接替换各个组件的 binary,不会影响除 TiFlash 以外组件的正常服务
    第三步:reload 整个集群:tiup cluster reload ,reload 完成后 TiFlash 也会自动 start。
  2. 如果实在是不能停 TiFlash 服务,可以尝试把 TiDB 的 MPP 功能关闭后正常升级集群,之后在把 TiDB MPP 功能打开:
    第一步:关闭 TiDB MPP 功能:在 TiDB 中运行 set @@global.tidb_allow_mpp=0;滚动重启所有 TiDB 节点(因为 global 变量的设置需要在新的 session 中生效,如果不滚动重启 TiDB 的话,现有的 session 仍然会生成 MPP 计划)
    第二步:正常升级集群 tiup cluster upgrade
    第三步:重新开启 TiDB MPP 功能:在 TiDB 中运行 set @@global.tidb_allow_mpp=1; 并滚动重启所有 TiDB 节点
2 个赞