TiDB 升级至高版本提示'mysql.tidb_runaway_watch' doesn't exist 问题处理

作者: asd80703406 原文来源: https://tidb.net/blog/90394c97

背景

近期发现很多人从低版本升级至TiDB v7 或者v8版本,均遇到了tidb-server启动失败,提示报错如下:

"get runaway watch record failed"\] \[error="\[schema:1146\]Table 'mysql.tidb_runaway_watch' doesn't exist"

"try to get new runaway watch"\] \[error="\[schema:1146\]Table 'mysql.tidb_runaway_watch' doesn't exist"

社区解决方案

社区很多人的处理方式归类为以下几种方式:

方法1、多次启停tidb-server进程,自动就成功了。 这个也是我自己偶然间重试后,发现的一个方法,确实可以,但是需要多次stop tidb-4000 ; start tidb-4000;

方法2、提前创建升级需要的表,比如 mysql.tidb_runaway_watch ,参考链接: https://asktug.com/t/topic/1018496/7 ,参考代码 bootstrap.go 。 亲测,依然无法一次成功。

本人亲测升级方案

接下来分享我多次重试后的升级方案

本人环境:TiDB v5.3.4 升级至 v7.5.1, 3PD + 3 TIKV + 3 tidb

升级步骤

1、停止集群

markdown 复制代码
tiup cluster stop  $cluster_name -y

2、升级tiup组件

markdown 复制代码
cd tidb-community-server-v7.5.1-linux-amd
cp -rp keys ~/.tiup/
tiup mirror merge ../tidb-community-toolkit-v7.5.1-linux-amd

3、升级cluster组件

markdown 复制代码
tiup install cluster

4、升级集群(我这里是离线升级法)

markdown 复制代码
tiup cluster upgrade $cluster_name v7.5.1 --offline -y --wait-timeout 3600

核心升级步骤(分组件启动)

要想升级不报错,启动升级后集群需要分组件启动

5、启动集群PD节点

markdown 复制代码
tiup cluster start $cluster_name -R pd

6、启动集群TIKV节点

markdown 复制代码
tiup cluster start $cluster_name -R tikv

7、启动节点某一台tidb-server进程( 重点来了 )

markdown 复制代码
tiup cluster start $cluster_name -N IP:PORT

只启动一台tidb-server,这样升级涉及的bootstrap.go等相关代码,就只会有一台tidb-server执行。 亲测不会有报错的情况 。

8、启动其他服务

markdown 复制代码
tiup cluster start $cluster_name

官网标准步骤升级失败的原因猜测

1、低版本升级至高版本,多个tidb-server进程存在mdl锁争用,也存在锁冲突的情况

2、官方BUG,没有深挖

升级需要注意事项

1、版本间 cluster yaml文件可能存在配置不兼容的情况,升级前需要提前确认配置文件兼容性

2、硬件不兼容。 比如 高版本tiflash组件需要CPU支持avx2指令集,升级前需确认,确认命令:lscpu | grep avx2

3、其他原因请参考官网手册

吐槽一下:

专栏审核好复杂。好几天没有审核通过,感觉是有BUG。第一次提交很快审核通过,后边就delay了好几。

相关推荐
herinspace12 分钟前
管家婆实用贴-SQL 2008如何修改成混合模式
服务器·数据库·sql·管家婆软件·财务软件·合肥管家婆软件
打螺丝的小李28 分钟前
制造企业质量管理系统的三类产品形态:分别解决什么问题
数据库·制造
xixingzhe21 小时前
MySQL 锁表故障排查与处理
数据库·mysql
真上帝的左手1 小时前
30. 技术专题-‌应用框架组件-关系型数据库-MySQL-Mybatis
数据库·分布式·mysql·中间件·mybatis
为思念酝酿的痛1 小时前
MySQL表的连接
数据库·mysql
数字新视界2 小时前
机房动环监控系统在提升数据中心能效与安全中的应用探索
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
bksczm2 小时前
MySQL之存储引擎
数据库·mysql
计算机毕设定制辅导-无忧学长3 小时前
《基于微信小程序健康习惯激励系统设计与实现》
java·spring boot·mysql·微信小程序·uniapp·健康习惯激励系统
大模型最新论文速读3 小时前
text-to-sql:从学术玩具到生产落地
数据库·sql
ManageEngineITSM3 小时前
工单分类怎么设计?类别、子类别与自动分派的实用方法
大数据·服务器·数据库·人工智能·分类·数据挖掘