tikv节点挂掉,启动不成功

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

这个是info_collecting搜集到的信息

麻烦提供以下信息:

  1. 问题节点的 TiKV 日志,以及 TiKV 的版本。
  2. {tidb_ansible_path}/resource/bin/pd-ctl -u “http://{pd_ip}:{pd_port}” stores show

这个tikv的节点信息,tidb的版本是3.0.6的,日志文件有500多兆,上传失败了 tikv.json (3.8 KB)

请问 sync-log 参数开了吗,是发生了异常宕机的情况么?

tikv 日志过多能不能提供一下tikv 重启时的日志

sync-log这个参数没有修改,应该是默认的true; 里面截的日志,是一部分,最近几天其他日志大概都是这样,只是一直不停在打 这台机器没有宕过机,这个是刚装好集群之后没几天就挂了,另外一台服务器宕过机 tikv.log (18.8 KB)

那麻烦查询一下目前副本数不为 3 的 region

如果有副本数不为 3 的 region,查看一下具体对应的 region 信息

根据pd没有查出来异常的region,是不是我命令用的不对啊 image

» region --jq=".regions[] | {id: .id, peer_stores: [.peers[].store_id] | select(length != 3)}"

通过这个命令看下呢

执行报错了 image

看下系统是否安装了 jq 命令

您好,安装jq之后,发现依然没有副本不全的region信息

使用命令扫描日志也没有发现问题 grep panic 1/deploy/log/tikv.log | grep region|grep -oP ‘region [0-9]*’|sort|uniq -c

  1. 集群有几个 tikv 节点?副本数是 3 吗?
  2. 目前集群访问是否正常,tidb 中有访问报错的信息吗?
  3. 如果集群访问有报错,可以尝试滚动重启一下所有正常 tikv 节点,再尝试重启异常 tikv 节点
  4. 磁盘是 ext4 格式吗,挂载参数有 nodelalloc 吗?
  1. 集群一共分配了6个tikv节点,分布在三台机器上,副本数是默认的

  2. 集群访问一直没有问题,读写都没有问题,tidb平时没有错误

  3. 执行ansible-playbook stop.yml和ansible-playbook start.yml之后,那个节点还是还是起不来

  4. 磁盘不是ext4的,是centos7默认的文件系统

那目前可以缩容这两个tikv 节点,并更换 tikv 节点 port 后重新扩容上线加入集群

那这个大概是什么原因呢?3备份缩容会不会丢失数据呢?还有就是我查看远程tikv的region信息时,会报错

  1. 看下监控 PD -> Cluster -> Region Healthy 中有没有异常的 reigon,如果确认没有异常的 region 那不会有问题
  2. tikv-ctl 报错这个,–host 指定 ip:port 方式试下

这个是最近七天的region-health的信息

tikv-ctl指定端口号也不行

找研发确认了一下,tikv-ctl 报错是因为同时指定了 host 和 db 导致的,所以这个只能本地方式执行

看监控 region 都是正常的,可以进行缩容并扩容的方式恢复集群,另外建议文件系统使用官方推荐的 ext4 格式,并加上 nodelalloc 参数挂载