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了好几。

相关推荐
|华|3 分钟前
PostgreSQL日常维护
数据库·postgresql
APguantou5 分钟前
NCRE-三级数据库技术-第9章-安全管理
数据库·安全·sqlserver
计算机学姐11 分钟前
基于SpringBoot的高校实验室预约管理系统
java·spring boot·后端·mysql·spring·信息可视化·tomcat
lzhdim17 分钟前
SQL 入门 9:SQL 高级子查询:ANY、EXISTS 与多位置应用
java·开发语言·数据库·sql·mysql
曾凡宇先生17 分钟前
mysql连接问题
数据库
jwt79392793719 分钟前
MySQL 批量删除海量数据的几种方法
数据库·mysql
Yvonne爱编码25 分钟前
数据库---Day8 多表联合查询
数据库
云飞云共享云桌面37 分钟前
SolidWorks三维设计不用单独买电脑,1台服务器10个设计用
运维·服务器·数据库·3d·电脑
l1t1 小时前
DeepSeek总结的PAX:PostgreSQL存储引擎
数据库·postgresql
我不听你讲话1 小时前
PostgreSQL 日常维护核心内容总结
数据库·postgresql