store offline长时间不转成墓碑

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】场景+问题概述
tidb 集群一个store执行下线操作,目前这个store上已经没有region,通过region check 检查确认已经没有任何region的副本在这个store上了(down,offline,pendding),但是这个store的状态一直是offline,这个store的机器因为故障已经下线报修了。

反复执行store delete,均返回成功,pd日志上没有看到任何跟着store有关的打印。
【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】
V4.0.14
【附件】

  1. TiUP Cluster Display 信息

  2. TiUP Cluster Edit Config 信息

  3. TiDB- Overview 监控

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

image

看起来是store中的信息不准确了

1 个赞

pd-ctl region --jq=.regions[] | {id: .id, peer_stores: [.peers[].store_id] | select(length as $total | map(if .==(5) then . else empty end)) }
看下有哪些 region 在 store 5 上
如果有就看下有这些 region 在哪些 store 上:
pd-ctl region {region-id}

1 个赞

没有,我把region都dump下来检索,确实没有

1 个赞

pd-ctl region --jq=".regions[] | {id: .id, peer_stores: [.peers[].store_id] | select(length != 3)}" 查看下是否有副本数不为 3 的 region 是否有问题吧,如果没有明显问题的 region ,直接设置该 store 为 tombstone 吧

1 个赞

怎么直接设置store 为 tombstone?

1 个赞

副本数不为 3 的 region 信息发下看看

1 个赞

region副本数量不为3的现在很多,是因为我还在下线别的节点。
我没有查到如何直接标记store为tombstone?你能告诉我在哪里有吗

1 个赞

tombstone 这个手动设置要谨慎,再帮忙确认下,region --jq=".regions[] | {id: .id, peer_stores: [.peers[].store_id] | select(length < 3)}" 的 region 有没有吧

1 个赞

看起来没有

1 个赞

总的几个tikv节点呢 下线最好一个节点下完了tombstone 再下其他节点 防止可能出现region副本丢失导致region不可用

1 个赞

总的有 51 个 store

1 个赞

51个tikv可以直接缩容嘛

1 个赞

select region_id from TIKV_REGION_PEERS where store_id = 5
在表里面查下是否还有这个store的region信息 有的话强制下线会有问题 我之前遇到过这个坑

看起来你是已经成功下线3个节点了?

2 个赞

对,已经下线了3个了

1 个赞

??不可以吗?

数据库里还能查到你下线中的那个store的信息吗 就我发你的那条sql 如果已经没有那个下线中store的region信息可以直接设置成墓碑


database是啥?

请按照以下步骤操作:
1.查看 store 上的 region 有哪些
pd-ctl region --jq=".regions[] | {id: .id, peer_stores: [.peers[].store_id] | select(any(.==xxxxx))}"
2.确认这个 store 上的 region 副本可以清理后,通过上面获取的 region id 清理掉残留 region 上的 peer
operator add remove-peer
3.如果是脚本批量执行,可能存在报错 ‘failed to add operator’ ,可以在脚本中每执行一次命令后,添加 sleep 2s 或 3s,缓解报错
4.都清理完毕后,store 会变为 tombstone

2 个赞

我的意思是可以先清理tombstone的store,再将故障store缩容,最后再清理
之前尝试过3副本情况下,直接将一个offline tikv 强制删除,貌似tikv也会补副本,不过建议按照上面大佬的操作步骤来:joy: