TiUP参数检测通过,reload后 pd/kv/db都无法启动且无日志

【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】v8.5.2
【操作系统】Rocky10
【部署方式】虚拟机部署 12c 16g x N
【集群数据量】该问题无关数据量
【集群节点数】3kv 3db 2pd 该问题无关节点数,任意节点皆可复现
【问题复现路径】

1.准备一个可以正常运行的tidb 集群,任何配置都可以,跟配置无关
2.使用 tiup cluster edit-config 编辑配置文件
3.增加如下配置

server_configs:
  tidb:
    log:
      file:
        max-size: 100MiB
        max-days: 3
        max-backups: 5

增加后保存,tiup没有拒绝该配置。可以保存。
4.重复使用tiup cluster edit-config 编辑配置文件,可见tiup已经修改参数为

server_configs:
  tidb:
    log:
      file: "max-size: 100MiB  max-days: 3  max-backups: 5"

我理解这里就是参数是没问题的。
5.使用tiup cluster reload 重新部署集群,使用 -R指定角色或不指定角色均可,不影响结果。
6.tiup把配置推出去后,在pd/db/kv的第一个节点上就会卡住,访问节点主机可以看到节点已经关闭了,但是tiup没反应。ctrl+c终止tiup后,使用 tiup cluster display 查看集群状态,可以看到 pd / kv / db 都离线了。
7.使用 tiup cluster start/restart/reload 均无法重启结点,tiup都是卡住。
8.重启节点主机,节点也不会正常启动。
9.查询有问题节点的日志。无任何新日志产生。可以理解为节点上的服务就没启动。
10.重新使用 tiup cluster edit-config 编辑配置文件,删除相关配置。reload后也无法启动节点。

至此该集群彻底死去失去响应。除了虚拟机回滚,没有找到救回的办法。

【遇到的问题:问题现象及影响】

错误配置会导致所有pd/db/kv节点无法启动且无日志。

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】

该问题不产生日志,但是问题可复现。

tiup cluster display 显示各组件状态是怎样的?

我本地虚拟机是这样配置的

就是彻底down了。怎么搞都无法启动了。

非常感谢。我再起一个单点,按照你的配置试一试。原库不敢试了。涉及到的机器有点多,回滚动作大。

1 个赞

rocky10这么新,会不会是不支持 :upside_down_face:

搭了个单节点的实验环境专门用来调试(多节点的快照简直要命)

reload的时候卡住后提示如下

Upgrading component tidb
        Executing pre-upgrade command on 192.168.193.88

        Restarting instance 192.168.193.88:4000

Error: failed to restart: 192.168.193.88 tidb-4000.service, please check the instance's log(/tidb-deploy/tidb-4000/log) for more detail.: timed out waiting for port 4000 to be started after 2m0s

Verbose debug logs has been written to /root/.tiup/logs/tiup-cluster-debug-2025-08-03-19-39-52.log.

实际上并未就相关事件有任何日志记录。

使用display查看状态

Cluster type:       tidb
Cluster name:       tidb-aio
Cluster version:    v8.5.2
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://192.168.193.88:2379/dashboard
Dashboard URLs:     http://192.168.193.88:2379/dashboard
Grafana URL:        http://192.168.193.88:3000
ID                    Role          Host            Ports        OS/Arch       Status   Data Dir                             Deploy Dir
--                    ----          ----            -----        -------       ------   --------                             ----------
192.168.193.88:9093   alertmanager  192.168.193.88  9093/9094    linux/x86_64  Up       /tidb-deploy/alertmanager-9093/data  /tidb-deploy/alertmanager-9093
192.168.193.88:3000   grafana       192.168.193.88  3000         linux/x86_64  Up       -                                    /tidb-deploy/grafana-3000
192.168.193.88:2379   pd            192.168.193.88  2379/2380    linux/x86_64  Up|L|UI  /data_nodata/pd-2379                 /tidb-deploy/pd-2379
192.168.193.88:9090   prometheus    192.168.193.88  9090/12020   linux/x86_64  Up       /data_nodata/prometheus-9090         /tidb-deploy/prometheus-9090
192.168.193.88:4000   tidb          192.168.193.88  4000/10080   linux/x86_64  Down     -                                    /tidb-deploy/tidb-4000
192.168.193.88:20160  tikv          192.168.193.88  20160/20180  linux/x86_64  Up       /data_tikv1/tikv-20160               /tidb-deploy/tikv-20160
192.168.193.88:20161  tikv          192.168.193.88  20161/20181  linux/x86_64  Up       /data_tikv2/tikv-20161               /tidb-deploy/tikv-20161
192.168.193.88:20162  tikv          192.168.193.88  20162/20182  linux/x86_64  Up       /data_tikv3/tikv-20162               /tidb-deploy/tikv-20162

提示tidb down了。
单节点模式,tikv和pd没有down。重启机器后,tikv和pd依然可以启动。

使用edit-config去掉对应参数后。重新reload后,tidb也启动正常了。

结果跟集群是不一致的。有点懵逼。

这个目录下面没有日志?很奇怪,还有一种可能,就是超时了。

超时2分钟未收到节点启动的信息,会报错,但是节点还在执行启动信息。之前遇到过一次,是服务器资源不足,导致启动缓慢。reload报错之后,display是down,也是没有日志,过了十分钟,再display,就是up状态了。不知道你那边是不是相同的问题。

感谢大佬
单节点使用此配置测试通过。
集群使用该方法配置测试通过。

1 个赞

目录下有日志,但是日志跟启动失败无关。是执行reload命令前的日志。reload之后就无任何日志产生了。

单机版重新改了配置还能起来。集群版删掉错误配置文件之后,reload也起不来,等多久就不行。

直接执行服务启动里面的脚本,看屏幕信息。最早用tidb的时候就发现了这个情况,如果启动就出错的话,就不会有任何日志记录,只能通过命令行手工启动去发现问题

谢谢大佬提供思路。这个问题之前也有,但是没找到怎么手动执行,所以就没尝试。之前是把配置改对之后就能运行了。这次是遇到了改对配置也起不来。不过现在看来,单点的改回正确配置能启动,又不像是tidb的问题。 :joy:

节点的部署目录下,scripts 下的 .sh 脚本文件,手工执行,如果屏幕没有输出信息,看看脚本文件中写的 stderr.log 文件

我记得节点 ddown 了之后,就算你把配置改正确,down掉的节点也收不到正确的配置,应该是要去down掉的节点手工把配置文件改正确

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。