首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PostgreSQL 11.9无法以错误重新启动服务器- pg_ctl:目录"/var/lib/postgresql/11/main“不是数据库集群目录

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

Database Administration用户
提问于 2021-10-14 02:27:39
回答 3查看 6K关注 0票数 2

我们一直在努力重新启动DB集群服务器,该服务器在停电后关闭。我们已经尝试了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_ctl群集--跳过-systemctl-重定向11-主要启动(这是在postgresql@.service的ExecStart参数下提到的相同命令)
  • systemctl : systemctl状态postgresql@11-main.service
EN

回答 3

Database Administration用户

发布于 2021-10-14 10:33:39

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

这意味着这个目录不包含PG_VERSION文件,或者它不知何故是不可读的。

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

这可能意味着数据目录在电源故障之后以某种方式损坏了,或者是空的,因为它是一个没有挂载的专用分区。在最好的情况下,它可以手动修复和服务重新启动的正常程序。在最坏的情况下,您需要从备份恢复。有关一些一般性建议,请参见https://wiki.postgresql.org/wiki/Corruption

票数 5
EN

Database Administration用户

发布于 2021-10-14 05:31:19

由于您的postgresql.conf具有参数data_directory集,因此postgresql.conf可能位于与数据目录不同的目录中。

启动数据库时,-D选项的参数不是数据目录,而是包含postgresql.conf的目录。

因此,假设您遵循的是正常的Debian/Ubuntu布局,它可能是

代码语言:javascript
运行
复制
pg_ctl -D /etc/postgresql/11/main start
票数 3
EN

Database Administration用户

发布于 2021-11-05 14:43:27

我在-> 问Ubuntu上找到了这个答案

这就是:它对我起作用了。

Begin:

在我的例子中,这与配置不当的地区有关。

我在这个dba.stackexchange.com答案中找到了解决方案:

  1. 使用sudo dpkg-重新配置区域设置以生成必要的区域设置。
  2. 通过sudo pg_dropcluster 9.5main删除现有的数据库集群(这将删除集群中的所有数据!)
  3. 通过sudo pg_createcluster 9.5 main重新创建集群--启动
  4. 通过sudo服务PostgreSQL重新启动postgresql

这个解决方案对我有效。我有PostgreSQL11-main,所以要适应您的版本。

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/301102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档