我们一直在努力重新启动DB集群服务器,该服务器在停电后关闭。我们已经尝试了systemctl、pg_ctl和pg_ctlcluster命令,但是每次我们都会遇到相同的错误。
目录"/var/lib/postgresql/11/main“不是数据库集群目录
在我们的配置文件(postgresql.conf)中提到了相同的路径:
data_directory = '/var/lib/postgresql/11/main‘
我无法理解为什么我们要得到这个错误,甚至服务器在电源关闭之前运行的配置也是一样的。
这是我们的生产服务器。
我提供给这些命令的命令行是:
发布于 2021-10-14 10:33:39
目录"/var/lib/postgresql/11/main“不是数据库集群目录
这意味着这个目录不包含PG_VERSION
文件,或者它不知何故是不可读的。
该文件包含一行文本,其中包含与此数据目录相对应的主要版本的PostgreSQL (在本例中为11
)。
这可能意味着数据目录在电源故障之后以某种方式损坏了,或者是空的,因为它是一个没有挂载的专用分区。在最好的情况下,它可以手动修复和服务重新启动的正常程序。在最坏的情况下,您需要从备份恢复。有关一些一般性建议,请参见https://wiki.postgresql.org/wiki/Corruption。
发布于 2021-10-14 05:31:19
由于您的postgresql.conf
具有参数data_directory
集,因此postgresql.conf
可能位于与数据目录不同的目录中。
启动数据库时,-D
选项的参数不是数据目录,而是包含postgresql.conf
的目录。
因此,假设您遵循的是正常的Debian/Ubuntu布局,它可能是
pg_ctl -D /etc/postgresql/11/main start
发布于 2021-11-05 14:43:27
我在-> 问Ubuntu上找到了这个答案
这就是:它对我起作用了。
在我的例子中,这与配置不当的地区有关。
我在这个dba.stackexchange.com答案中找到了解决方案:
这个解决方案对我有效。我有PostgreSQL11-main,所以要适应您的版本。
https://dba.stackexchange.com/questions/301102
复制相似问题