region操作丢失

【 TiDB 使用环境】测试
【 TiDB 版本】
集群版本V4.0.7–4.0.8
【复现路径】
集群节点TIKV宕机下线,在没有直接人工干预,TIKV半个月还没下线成功,测试环境业务验证SQL提示region is unavailable,登陆tidb卡顿或操作show processlist非常耗时,操作部分命令提示异常9005,通过监控观察发现:
1、通过观察负载不高
2、有存储告警
3、通过dashboard有频率比较高的SQL操作(查询也会失败)
3、有执行add index
4、统计信息在频繁更新信息
此时执行admin show 也是直接报错region is unavailable提示信息。
【过程处理-1】
1、人工干预驱逐
2、扩容tikv
3、调整统计信息更新时间
4、降低DDL并发度
【过程处理-2】
1、通过以上操作,集群经过一段时间,恢复可用,执行admin show ddl 可以正常出结果,取消DDL操作
2、升级到4.0.8
【过程处理-3】
集群恢复可以用,慢慢等待节点宕机节点变墓碑
【过程处理-4】
3月27号关注pd:


提示依然还没下线成功,查询异常store上的region情况,如图:

查询region号,展示region信息:

根据之前遇到的处理经验,执行了删除cache操作:

登陆pd-ctl查看region是否恢复状态:
image
一直显示null,重启了2个peer节点依然一样,节点日志显示:


不过现在监控store状态展示已经恢复:
,节点也显示 “state_name”: “Tombstone”
【疑问】
删除的region信息无法恢复回来» region 102207
null,2个节点信息如上图,是否可以执行unsafe操作呢?

如果数据实在是丢了,为了保证集群的稳定,可以采用 unsafe 操作,也可以 recreate region

要是数据没丢,还是可以挽救一下的,3副本也不是那么容易丢数据的

嗯 ,现在还没发现异常,不知道为什么3副本情况 ,还是出现了异常