作者: gary
一、前言
二、计划内停机,单台服务器不可用时
待Tiup正常启动该TiKV实例后,我们需要观察grafana PD相关监控 Grafana PD-->PD Dashboard-->Region healthy 1)PD_miss_peer_region_count Region 的副本数小于 max-replicas 配置的值。
处理方法: 1.查看是否有 TiKV 宕机或在做下线操作,尝试定位问题产生的原因。 2.观察 region health 面板,查看 miss-peer-region-count 是否在不断减少。
2)PD_pending_peer_region_count Raft log 落后的 Region 过多。由于调度产生少量的 pending peer 是正常的,但是如果持续很高,就可能有问题
处理方法: 1.观察 region health 面板,检查 pending_peer_region_count 是否在不断减少。 2.检查 TiKV 之间的网络状况,特别是带宽是否足够。
3)PD_down_peer_region_nums Raft leader 上报有不响应 peer 的 Region 数量。
处理方法: 1.检查是否有 TiKV 宕机,或刚发生重启,或者繁忙。 2.观察 region health 面板,检查 down_peer_region_count 是否在不断减少。 3.检查是否有 TiKV 之间网络不通。
Grafana PD-->Operator-->Schedule Operator Create pd发现region异常,比如region不均衡,region缺副本,Operator 的创建情况。
Grafana PD-->Operator-->Operator finish duration Region在补副本时,主要看pd是否繁忙,Operator 执行耗时的情况
三、计划内停机,两台及以上服务器不可用
1.如果上面命令输出为空,则满足raft协议,可以两台服务器同时进行停机处理。
2.如果上面命令输出为非空,则有部分region不满足raft协议,需要逐一进行停机处理。
四、计划外停机,满足raft多数派
计划外停机满足raft多数派,节点如果可以正常拉起,是不需要人工干预的
但是我们需要留意max-store-down-time参数,PD 认为失联 store 无法恢复的时间,当超过指定的时间没有收到 store 的心跳后,PD 会在其他节点补充副本,默认值:30m。
计划外停机满足raft多数派,节点如果不可以正常拉起,我们快速处理的方法就是缩容掉异常节点,重新扩容一个新节点以保证集群正常运行
1.Rocks DB Apply Snapshot
日志里面可看到sst file size mismatch错误,这种只能通过扩缩容来解决
2.Raft状态机损坏
日志里面可看到last index错误,找到所有损坏的副本,跳过问题region拉起
tikv-ctl --db /path/to/tikv-data/db bad-regions
Tikv-ctl -db /path/to/tikv-data/db tombstone -r <region-id> --force
五、计划外停机,不满足raft多数派
计划外停机不满足raft多数派的影响 1.无法选举新Leader以及宕机超过max-store-down-time也无法进行补副本操作 2.前端业务访问部分出现报错 3.仅访问到异常Region 的应用会出现报错
多副本损坏的有损恢复处理方法可参考: https://tidb.net/blog/b1ae4ee7
两副本丢失处理
三副本丢失处理
数据校验
保证数据与索引一致