重启tikv一个节点后,tikv服务一直报警call CheckLeader failed,日志一直刷

这种情况可能是由于 TiKV 节点重启后,该节点的数据与其他节点不一致导致的。可以尝试以下步骤进行排查:

  1. 首先,可以通过 pd-ctl 工具查看该节点的状态,命令如下:
pd-ctl -u http://{pd_ip}:{pd_port} store

其中,{pd_ip}{pd_port} 分别为 PD 的 IP 地址和端口号。如果该节点的状态为 Tombstone,则说明该节点已经被删除,需要重新添加该节点。

  1. 如果该节点的状态为 Up,则可以尝试使用 tikv-ctl 工具检查该节点的数据是否与其他节点一致,命令如下:
tikv-ctl --host {tikv_ip}:{tikv_port} --db {db_path} --check-compact

其中,{tikv_ip}{tikv_port} 分别为 TiKV 节点的 IP 地址和端口号,{db_path} 为 TiKV 节点的数据存储路径。如果该节点的数据与其他节点不一致,则可以尝试使用 tikv-ctl 工具修复数据,命令如下:

tikv-ctl --host {tikv_ip}:{tikv_port} --db {db_path} --compact {start_key} {end_key}

其中,{start_key}{end_key} 分别为需要修复的数据范围的起始和结束 key 值。

  1. 如果以上步骤都无法解决问题,可以尝试重启整个 TiDB 集群