PostgreSQL 11.9 无法重新启动服务器,错误 -- pg_ctl: 目录“/var/lib/postgresql/11/main”不是数据库集群目录

AKB*_*ALI 2 postgresql postgresql-11

我们一直在努力重启停电后关闭的数据库集群服务器。我们尝试过 systemctl 、 pg_ctl 和 pg_ctlcluster 命令,但我们总是遇到同样的错误。

目录“/var/lib/postgresql/11/main”不是数据库集群目录

在我们的配置文件(postgresql.conf)中提到了相同的路径:

data_directory = '/var/lib/postgresql/11/main'

我无法理解为什么我们会收到此错误,即使服务器在断电之前以相同的配置运行。

这是我们的生产服务器。

我输入这些命令的命令行是:

  • pg_ctl : /usr/lib/postgresql/11/bin/pg_ctl 启动 -D /var/lib/postgresql/11/main
  • pg_ctlcluster : /usr/bin/pg_ctlcluster --skip-systemctl-redirect 11-main start (这与 postgresql@.service 的 ExecStart 参数下提到的命令相同)
  • systemctl : systemctl 状态 postgresql@11-main.service

Dan*_*ité 5

目录“/var/lib/postgresql/11/main”不是数据库集群目录

这意味着该目录不包含PG_VERSION文件,或者以某种方式无法读取。

该文件包含一行文本,其中包含与该数据目录(11在您的情况下)相对应的 PostgreSQL 主要版本。

这可能意味着数据目录在电源故障后已以某种方式损坏,或者是空的,因为它是未安装的专用分区。在最好的情况下,可以手动修复并按照正常程序重新启动服务。在最坏的情况下,您需要从备份中恢复。另请参阅 https://wiki.postgresql.org/wiki/Corruption了解一些通用建议。