5.3之前版本升级至5.3之后版本,tiflash为何不能一起滚动升级,有哪些影响?后续是否可以做到滚动升级?
【 TiDB 使用环境】生产\测试环境\ POC
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
5.3之前版本升级至5.3之后版本,tiflash为何不能一起滚动升级,有哪些影响?后续是否可以做到滚动升级?
【 TiDB 使用环境】生产\测试环境\ POC
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
大佬,在那里看的,我去问问去
参考这个帖子,是 5.3 之后,查询的接口不兼容,升级过程中查询结果会不一致。所以不能滚动升级。
知道了原因。那么怎么正确升级tiflash实例呢。文档那个说的不清不楚。先关掉TIFLASH实例,怎么又离线升级整个集群,此处是不是有笔误? 有没有具体步骤?
我们增加了对应的步骤,可以参考这个文档:
https://docs.pingcap.com/zh/tidb/stable/upgrade-tidb-using-tiup#不停机升级
若想将 TiFlash 从 5.3 之前的版本升级到 5.3 及之后的版本,必须进行 TiFlash 的停机升级。参考如下步骤,可以在确保其他组件正常运行的情况下升级 TiFlash:
tiup cluster stop <cluster-name> -R tiflash
--offline
参数在不重启(只更新文件)的情况下升级集群: tiup cluster upgrade <cluster-name> <version> --offline
tiup cluster reload <cluster-name>
。此时,TiFlash 也会正常启动,无需额外操作。是这样的,在 5.4 里面我们对 MPP 的数据传输接口进行了一下改动。这导致 5.3 及以前的版本遇到 5.4 及以后的版本发送的 MPP 数据时,会读不到数据,从而导致 query 结果不对。为了在升级的时候避免这个问题,有两个方法:
V5.0.3升级至V5.4.2 照此步骤升级,TIFLASH 节点启动失败:有错误日志在刷,但是不知道该如何处理:/data/tidb/deploy/tiflash-9000/log/tiflash_error.log:
看 tiflash_error.log 里的错误日志,应该是业务上创建了一个 int/tinyint/smallint/mediumint/bigint 类型的列,但是默认值指定了 “0.00”,导致 tiflash 启动时报错了。可以从业务上确认下最近是否有创建的表里面的默认值设置吗?
在 6.1.0 版本上提高了对这样默认值的兼容性处理(https://github.com/pingcap/tiflash/issues/3157,https://github.com/pingcap/tidb/issues/34881),如果升级到 6.1.0 版本可以不做更改的情况下启动。但是之前的版本需要 drop 掉导致问题的表后,以 “0” 为默认值重新建表,tiflash 才能顺利启动。
浏览了下你之前的帖子,应该这个问题出现很久但是一直没有解决?看报错信息,跟这个升级过程无关。
看到过文章里写,5.3版本之后不支持在线升级。
是表缺省值的原因。表都是从业务库同步过来的表,上游若不规范,这种情况可太常见了,这也是一大运维痛点。TIFLASH 缺少运维命令,删了重建再写数据,太重。应该是和升级步骤无关。有个疑问,TIFLASH 副本都是0,为何也在同步元数据,此处是否可以优化,只同步有副本的表元数据不是更好?
不是 “5.3 版本之后不支持在线升级”,而是"从小于 5.3 的版本升级到 5.3 之后的版本,不支持在线升级"。
如果想从 小于 5.3 的版本升级到 5.3 之后的版本,又希望减少对业务的影响,可以参考这里建议的步骤。后续也会更新到官网文档上的哈
哦,对,就是这个:从小于 5.3 的版本升级到 5.3 之后的版本,不支持在线升级
看来还是要升级6.1才行,本来想升一下次稳定版本,试用一段时间再升6.1的
嗯,目前官方主推的还是5.4版本啊
如果再次遇到新问题,记得发新帖咨询哟~
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。