TiDB 出现 Region Unavailable,对应数据表读写全部失败故障

线上 TiDB 集群某张业务表突然无法查询和写入,访问表直接返回 Region unavailable 错误,集群其他数据表访问完全正常;查看集群状态发现该表部分 Region 副本缺失,TiKV 无宕机,磁盘无损坏。

1 个赞

某个TiKV宕机时间长会导致safepoint停滞。

文件损坏了把。。。

默认 3 副本,部分 Region 副本缺失,达不到过半投票数

TiDB 默认采用 3 副本机制,Region 副本数量不足,无法满足 Raft 协议过半投票要求,导致 Region 不可用,对应数据表读写失败。
查看异常 Region 信息,等待集群自动补全副本,同时检查 safepoint 及数据文件状态

  • PD 调度卡住:PD 执行 Region 迁移、负载均衡、Split/Merge 任务中断,产生 Pending Peer,临时副本不足;
  • 局部网络 / 端口拦截:TiKV 节点间 Raft 端口(20160)被防火墙、安全组、交换机策略限制,Raft 心跳 / 同步超时,Peer 被标记失效;
  • TiKV 内部 Raft 线程卡死:TiKV 进程存活,但对应 Raft 组线程阻塞、无心跳,PD 判定副本缺失;
  • DDL/Split Region 任务中断:该表近期执行大 DDL、分区、Truncate、手动分桶操作,流程残留脏元数据;
  • Region 逻辑元数据损坏:` 内部 Raft 日志 / 元数据逻辑损坏(磁盘硬件完好)。

单表报 Region unavailable,因该表部分 Region 副本缺失、Raft 组不可用,集群整体及 TiKV 节点正常。

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