tikv单节点down机

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】场景+问题概述
【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】
【附件】

  • 相关日志 和 监控
    [INFO] [mod.rs:335] [“starting working thread”] [worker=addr-resolver]
    [2021/10/15 01:23:24.207 +00:00] [INFO] [mod.rs:335] [“starting working thread”] [worker=region-collector-worker]
    [2021/10/15 01:23:24.207 +00:00] [INFO] [mod.rs:115] [“encryption: none of key dictionary and file dictionary are found.”]
    [2021/10/15 01:23:24.207 +00:00] [INFO] [mod.rs:453] [“encryption is disabled.”]
    [2021/10/15 01:23:24.563 +00:00] [FATAL] [server.rs:345] [“failed to create raft engine: RocksDb IO error: While sync_file_range returned -1: /data/tidb/tidb-data/tikv-20160/raft/490670.sst: Structure needs cleaning”]
  1. TiUP Cluster Display 信息

  2. TiUP Cluster Edit Config 信息

  3. TiDB- Overview 监控

  • 对应模块日志(包含问题前后1小时日志)

这个节点之前做过哪些操作,是不是磁盘故障导致的,检查下 dmesg -T 有没有相关报错

一共有几个 tikv 节点,故障节点能否先缩容下线

之前也没有做过任何操作,一共三个节点,已经在缩容操作了
dmesg -T有如下报错

[Fri Oct 15 01:19:56 2021] EXT4-fs (nvme1n1p1): Delayed block allocation failed for inode 49025873 at logical offset 4096 with max blocks 137 with error 117
[Fri Oct 15 01:19:56 2021] EXT4-fs (nvme1n1p1): This should not happen!! Data will be lost

磁盘是用的io2类型的云盘

看起来有磁盘坏块,可以报给云厂商处理下,另外由于三副本需要再扩容一个 tikv 节点才能完成 region 迁移和节点下线操作

意思是三副本下线一个会有数据丢失的操作么,看官网图三节点应该是全副本啊

三副本至少需要三个 tikv 才能满足调度规则,单个 tikv 上面不会调度两个 region 副本,现在只有两个 tikv 存活,故障 tikv 上面丢失的副本找不到其他 tikv 可以补副本

哦哦,明白了,还有个问题想请教下,如果我不扩容的情况下,强制缩容一个节点,再扩容,这样会丢数据么

不建议执行强制缩容操作,这种场景下也没什么意义,如果无法修复可以删掉云主机,然后尽快扩容新的 tikv,等 pd 补完 region 副本,故障节点就自动变成 tombstone 状态了

好的,明白了

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