tidb 从V6.5.1升级到v7.5.0后,tidb节点无法启动

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

集群整体就tidb没启动?pd正常?

TIDB DDL执行两天了,无法删除 - :sun_with_face: 建议反馈 / 产品缺陷 - TiDB 的问答社区 (asktug.com)

有个帖子和你情况蛮相似

pd,tikv都正常,就tidb无法启动,后面就停止了

tidb启动时的日志有吗?有报错信息吗?

还有这个issue https://github.com/pingcap/tidb/issues/43755

把错误日志贴出来。

就是上面的一致截图


binlog的问题,怎解决呢

你不用binlog吧配置文件里的binlog关了啊。

修改集群配制

tiup cluster edit-config ${cluster-name}
执行 reload 命令滚动分发配置、重启相应组件:
tiup cluster reload tidb-feng [-N ] [-R ]

现阶段最重要的是别慌。

从你第一次提供的日志来看都是info,我感觉不是起不来的根因。

然后你第二次提供的日志来看,

是没有可用的pump节点。这是pump没起来不是tidb没起来。

tidb binlog在后续版本不维护了。只有ticdc再维护。所以你升到7.5是没有办法使用tidb binlog的。

https://docs.pingcap.com/zh/tidb/stable/tidb-binlog-overview#tidb-binlog-简介

  • 从 TiDB v7.5.0 开始,TiDB Binlog 组件的数据同步功能不再提供技术支持,强烈建议使用 TiCDC 作为数据同步的替代方案。
2 个赞

修改binlog配置以后

升级的时候有个tidb的系统表没有建立成功。

如果可能的话,root登一台tidb节点,执行下面的语句,建这个表。

use mysql;
CREATE TABLE IF NOT EXISTS mysql.tidb_runaway_watch_done (
id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
record_id BIGINT(20) not null,
resource_group_name varchar(32) not null,
start_time datetime(6) NOT NULL,
end_time datetime(6),
watch bigint(10) NOT NULL,
watch_text TEXT NOT NULL,
source varchar(512) NOT NULL,
action bigint(10),
done_time TIMESTAMP(6) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE IF NOT EXISTS mysql.tidb_runaway_watch ( id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, resource_group_name varchar(32) not null, start_time datetime(6) NOT NULL, end_time datetime(6), watch bigint(10) NOT NULL, watch_text TEXT NOT NULL, source varchar(512) NOT NULL, action bigint(10), INDEX sql_index(resource_group_name,watch_text(700)) COMMENT "accelerate the speed when select quarantined query", INDEX time_index(end_time) COMMENT "accelerate the speed when querying with active watch" ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE IF NOT EXISTS mysql.tidb_runaway_watch_done ( id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, record_id BIGINT(20) not null, resource_group_name varchar(32) not null, start_time datetime(6) NOT NULL, end_time datetime(6), watch bigint(10) NOT NULL, watch_text TEXT NOT NULL, source varchar(512) NOT NULL, action bigint(10), done_time TIMESTAMP(6) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

看看这俩表现在有没有,没有的话,手工创建一下

1 个赞

tidb没有启动,有办法在其他环境创建进表吗

这就很麻烦了。

你直接提供tidb log目录下的tidb.log,tidb_stderr.log日志吧。至少你截图这个部分都很难说是起不来的根因。

tidb.log (189.0 KB)

这个表不存在不至于tidb起不来吧,再看下还有别的报错吗?或者重启下tidb-server试试

上面有tidb日志

用tidb-ctl可以创建表吗,在tidb没有启动的情况下