postgresql Postgres 11复制槽文件有错误的幻数

yeotifhr  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(2)|浏览(377)

我们有一个Postgres 11集群,包含一个主服务器和一个热复制服务器。复制服务器已经停止工作很长时间了。但是,主服务器遇到意外的电源故障。之后,它无法重新启动,日志显示:

2021-05-10 10:20:09.134 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2021-05-10 10:20:09.134 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2021-05-10 10:20:09.137 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2021-05-10 10:20:09.245 UTC [22] LOG:  database system was shut down at 2021-05-10 09:30:22 UTC
2021-05-10 10:20:09.248 UTC [22] PANIC:  replication slot file "pg_replslot/replica_1_slot/state" has wrong magic number: 842020920 instead of 17112225
2021-05-10 10:20:09.531 UTC [1] LOG:  startup process (PID 22) was terminated by signal 6
2021-05-10 10:20:09.531 UTC [1] LOG:  aborting startup due to startup process failure
2021-05-10 10:20:09.546 UTC [1] LOG:  database system is shut down

字符串
有什么办法解决这个问题吗?多谢了。

bf1o4zei

bf1o4zei1#

关闭PostgreSQL,转到数据目录并运行

rm -r pg_replslot/replica_1_slot

字符串
如果这是您唯一的问题,那么删除复制插槽就可以解决它。
但是,复制插槽通常不会像这样损坏。可能还有其他损坏的文件。
如果您可以像这样启动服务器,请立即使用pg_dumpall,如果成功,请将其恢复到不同硬件上的新集群。如果无法启动服务器,请对数据目录进行文件系统备份。
测试你的硬件,它可能是问题所在。

zzlelutf

zzlelutf2#

对于版本14,这对我来说是有效的:
关闭PostgreSQL,转到数据目录并运行

mv pg_logical/replorigin_checkpoint /tmp

字符串
方法来源:https://www.postgresql.org/message-id/CA%2BXUKciJpR-Wxt2irzjToYisMMPnoZA7Mc3h-CUf56JtJEsvAQ%40mail.gmail.com

相关问题