Debian 和 PostgreSQL - [ASSERT] PostgreSQL Cluster 14 断言失败

Debian 和 PostgreSQL - [ASSERT] PostgreSQL Cluster 14 断言失败

启动 Debian 服务器后,我收到此错误:

[ASSERT] PostgreSQL Cluster 14 的断言失败。

[ASSERT] postgresql 集群 14 断言失败

我的 PostgreSQL 处于活动状态(我通过此命令检查了这一点:)systemctl status [email protected]

在此输入图像描述

我用谷歌搜索并找到这个帖子: 启动时无法启动 PostgreSQL Cluster 10-main 但我一切都很好:

在此输入图像描述

我用谷歌搜索了更多,但找不到任何对我有用的东西。

答案1

您应该检查集群配置文件的路径以获得适当的权限

$ ls -l /etc/postgresql/14/main/postgresql.conf
-rw-r--r-- 1 postgres postgres 1005 Oct  3 16:07 /etc/postgresql/14/main/postgresql.conf

在 Debian 上,systemd 服务单元包含以下内容:/lib/systemd/system/[email protected]

[Unit]
Description=PostgreSQL Cluster %i
AssertPathExists=/etc/postgresql/%I/postgresql.conf
RequiresMountsFor=/etc/postgresql/%I /var/lib/postgresql/%I

基本上错误消息告诉你/etc/postgresql/%I/postgresql.conf找不到。%I应该插入到14/main,因此 systemd 在读取文件时遇到麻烦/etc/postgresql/14/main/postgresql.conf

答案2

就我而言,错误“断言作业失败”[电子邮件受保护]。”是由于尝试启动错误的服务名称(postgresql@14):当我使用正确的名称(postgresql@14-main)时,它会按预期工作。也许您启用了错误的服务在启动时启动。

答案3

我对 SystemD 有一种极度仇恨的关系——有几张针对它的罚单,而 Lennard Poetering 只是耸耸肩……

也就是说:问题是我我的case 看起来很奇怪:client-pg15-01 SystemD 在看到空格破折号等时会对服务名称和文件名进行替换等,并且存在可怕的规则(是的,我很恼火,因为与桌面相比,这对于服务器操作员来说很烦人) /laptop jockey)所以冗长的答案是不要为此混淆正则表达式,而是给出简单的名称,例如clientnamepg15number01没有任何可能混淆服务名称的东西

相关内容