异常宕机后pd节点起不来

【 TiDB 使用环境`】centos7_x86
【 TiDB 版本】6.3.0
【遇到的问题】虚拟机异常宕机后pd节点起不来
【问题现象及影响】


pd日志.txt (8.1 KB)

pd日志中报错:[2022/10/05 18:40:32.300 +08:00] [PANIC] [key_index.go:82] [“‘put’ with an unexpected smaller revision”] [given-revision-main=209167] [given-revision-sub=0] [modified-revision-main=209167] [modified-revision-sub=0]

请问在不重新创建pd的情况下,如何绕过报错让pd正常启动?

重新创建pd的方式(清空data目录),根据官方提供的pd-recover可以修复,连接如下:
https://docs.pingcap.com/zh/tidb/stable/pd-recover#pd-recover-使用文档

但是pd用的etcd不是同步持久化的么,为何还会出现启动后索引不一致的情况呢?之前异常宕机也是起不来,按照上面方式重建了。

我的虚拟机也出现过这个问题,感觉是虚拟机的问题,我理解是虚拟机上的pd,etcd在宕机的时候没有保存,导致部分节点的数据不一致

也就是虚拟机的磁盘实际上并不是实时写入主机硬盘的?我生产环境大部分都是虚拟机,不知道会不会有这个问题。

感觉这个要查下虚拟机的机制,etcd默认是实时落盘
生产还是得pd部署3节点来保证高可用

生产的虚拟机版本跟能跟个人用不知道一不一样,没太细研究这个原理,对于win系统来说他只是个程序,写盘感觉是异步的,所以有可能对于虚拟机内部来说是落盘了,但是对于虚拟机外部(存储在电脑上的一堆虚拟文件)有可能没有及时落盘;我有试过哪怕不关闭操作系统直接关闭虚拟机类似于虚拟机断电pd都没问题(电脑开在开着机然后虚拟磁盘文件应该都自动保存了),但是在我电脑远程不上的时候,我强制关闭电脑,就会出现pd起不来的这种情况

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。