TIDB版本:4.0GA
问题描述:TIKV某个节点磁盘坏掉(所在磁盘已不能挂载),现进行坏掉节点剔除进行缩容操作,如下:
1:/home/tidb/tidb-ansible/resources/bin/pd-ctl -u “http://172.16.10.1:2379” store 找到节点id,节点状态为down,操作时间9点30左右
2:/home/tidb/tidb-ansible/resources/bin/pd-ctl -u “http://172.16.10.1:2379” -d store delete 11 进收缩容,节点状态变为offline
3: tidb-ansible/resources/bin/pd-ctl -u “http://172.16.10.1:2379” operator show
[]
进行缩容后,节点一直处于”下线中“,求教这个如何处理呢?
replica-schedule-limit
, max-pending-peer-count
和max-snapshot-count
已调整
调整参数后,还是一直处于offline状态,是否需要手工执行operator add remove-peer 呢?
qizheng
(qizheng)
5
下线过程中会产生 region 调度,PD 监控 Operator 页面 看一下是否有 operator 调度产生
-
Schedule Operator Create
:展示 Operator 的创建情况,从名称可以知道 Operator 是哪个调度器创建的以及创建的原因。
-
Operator finish duration
:展示了 Operator 执行耗时的情况
-
Operator Step duration
:展示不同 Operator Step 执行耗时的情况
另外有几个 TiKV 节点,三副本需要确保剩下的 store 数量大于等于 3 个
qizheng
(qizheng)
7
下线 store 的 region count 有没有持续减少,如果有,可以再调大 store-limit 并考虑对下线 store 添加 evict leader
看region health 监控里 并没有减少,没有变化。
有没有办法强制让这个节点下线。我的tikv 是5台机器,每台机器两个tikv节点。现在这个坏掉的节点一直offline中,导致查询一直报tikv time out错误。
xfworld
(魔幻之翼)
10
执行unsafe-recover 后发现状态还是offline:
ttidb>$ /home/tidb/tidb-ansible/resources/bin/pd-ctl -u “http://172.16.10.1:2379” store 11
{
“store”: {
“id”: 11,
“address”: “172.16.10.2:20171”,
“state”: 1,
“labels”: [
{
“key”: “host”,
“value”: “tikv5”
}
],
“version”: “4.0.0”,
“status_address”: 172.16.10.2:20181",
“git_hash”: “198a2cea01734ce8f46d55a29708f123f9133944”,
“start_timestamp”: 1621829497,
“last_heartbeat”: 1624162571588102809,
“state_name”: “Offline”
},
“status”: {
“capacity”: “0B”,
“available”: “0B”,
“used_size”: “0B”,
“leader_count”: 0,
“leader_weight”: 1,
“leader_score”: 0,
“leader_size”: 0,
“region_count”: 17766,
“region_weight”: 1,
“region_score”: 223531,
“region_size”: 223531,
“start_ts”: “2021-05-24T12:11:37+08:00”,
“last_heartbeat_ts”: “2021-06-20T12:16:11.588102809+08:00”,
“uptime”: “648h4m34.588102809s”
}
}
一通乱操作,解决了。
经历了两次 ,处理起来还是迷迷糊糊的。
看监控region health一直有问题: