人如其名
(人如其名)
1
【 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正常启动?
人如其名
(人如其名)
2
重新创建pd的方式(清空data目录),根据官方提供的pd-recover可以修复,连接如下:
https://docs.pingcap.com/zh/tidb/stable/pd-recover#pd-recover-使用文档
但是pd用的etcd不是同步持久化的么,为何还会出现启动后索引不一致的情况呢?之前异常宕机也是起不来,按照上面方式重建了。
我的虚拟机也出现过这个问题,感觉是虚拟机的问题,我理解是虚拟机上的pd,etcd在宕机的时候没有保存,导致部分节点的数据不一致
人如其名
(人如其名)
4
也就是虚拟机的磁盘实际上并不是实时写入主机硬盘的?我生产环境大部分都是虚拟机,不知道会不会有这个问题。
大鱼海棠
5
感觉这个要查下虚拟机的机制,etcd默认是实时落盘
生产还是得pd部署3节点来保证高可用
生产的虚拟机版本跟能跟个人用不知道一不一样,没太细研究这个原理,对于win系统来说他只是个程序,写盘感觉是异步的,所以有可能对于虚拟机内部来说是落盘了,但是对于虚拟机外部(存储在电脑上的一堆虚拟文件)有可能没有及时落盘;我有试过哪怕不关闭操作系统直接关闭虚拟机类似于虚拟机断电pd都没问题(电脑开在开着机然后虚拟磁盘文件应该都自动保存了),但是在我电脑远程不上的时候,我强制关闭电脑,就会出现pd起不来的这种情况
system
(system)
关闭
7
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。