TiKV缩容过程中出现leader丢失的问题,请问有解决方案吗

【 TiDB 使用环境】生产环境 or 测试环境 or POC 生产环境
【 TiDB 版本】 v5.4
【遇到的问题】 Failed! [500] “cannot build operator for region with no leader”
【复现路径】做过哪些操作出现的问题
【问题现象及影响】

【附件】

1 个赞

pd-ctl region 看看那个报错region状态

1 个赞

region 状态如下,没有leader信息,请问有办法指定或者切换region的leader么?
{
“id”: 2341,
“start_key”: “7480000000000000FF555F728000000000FF10A7EE00000FA”,
“end_key”: “7480000000000000FF555F728000000000FF18FC37000000FA”,
“epoch”: {
“conf_ver”: 39,
“version”: 77
},
“peers”: [
{
“id”: 11131,
“store_id”: 677,
“role_name”: “Voter”
},
{
“id”: 11842,
“store_id”: 11762,
“role_name”: “Voter”
}
],
“leader”: {
“role_name”: “Voter”
},
“written_bytes”: 0,
“read_bytes”: 0,
“written_keys”: 0,
“read_keys”: 0,
“approximate_size”: 0,
“approximate_keys”: 0
}

1 个赞

leader 是自动选举出来的,除非环境坏了,无法完成选举

1 个赞

请问这种情况下没有leader的region没办法恢复了么?

1 个赞

环境是ok的,只是某些region没有leader节点了(这里的11762 store节点已经不存在了),kv的日志都是正常的
{
“id”: 2341,
“start_key”: “7480000000000000FF555F728000000000FF10A7EE00000FA”,
“end_key”: “7480000000000000FF555F728000000000FF18FC37000000FA”,
“epoch”: {
“conf_ver”: 39,
“version”: 77
},
“peers”: [
{
“id”: 11131,
“store_id”: 677,
“role_name”: “Voter”
},
{
“id”: 11842,
“store_id”: 11762,
“role_name”: “Voter”
}
],
“leader”: {
“role_name”: “Voter”
},
“written_bytes”: 0,
“read_bytes”: 0,
“written_keys”: 0,
“read_keys”: 0,
“approximate_size”: 0,
“approximate_keys”: 0
}

1 个赞

手动指定leader

请问有相关文档吗?

https://docs.pingcap.com/zh/tidb/dev/pd-control#operator-check--show--add--remove

没有用的,这些命令都是基于leader来操作的,现在region leader都没有

估计你这个只能用多副本失败的方式处理问题region了,tikv-ctl命令

https://docs.pingcap.com/zh/tidb/dev/pd-control#恢复数据时寻找相关-region. 根据这个看一下是否可以吧 看你的region还剩余几个

请问【多副本失败方式】有相关文档吗

没有用,因为只有把这些region指定leader,然后才能操作,现在不知道有什么方法可以强制指定region 的leader

切换leader操作是无效的

» operator add transfer-leader 2341 677
Failed! [500] “cannot build operator for region with no leader”

肯定无效了,你需要优先恢复多副本的状态,才能满足选举
实在不行,要做恢复的话,参考这个:
https://docs.pingcap.com/zh/tidb/stable/tikv-control#强制-region-从多副本失败状态恢复服务慎用

现在这个情况如果确认只剩一个孤本了,你可以参考最后两篇…

手动指定一个

这些region没办法通信的

应该是重启pd导致的这个问题,请问pd有备份机制么

pd 本身就是 3 节点,高可用了… 还要怎么备份?