postgres 服务器启动失败,没有日志,如何排除故障?

postgres 服务器启动失败,没有日志,如何排除故障?

我正在 ubuntu 12.04 服务器上启动 postgres 9.3 实例:

~# service postgresql start 

 * The PostgreSQL server failed to start. Please check the log output.
                                                                     [fail]

启动失败,但没有留下任何日志,此文件是空的:

tail /var/log/postgresql/postgresql-9.3-main.log 

并且此目录中没有其他文件:/var/log/postgresql/

解决此问题的最佳方法是什么?

答案1

尝试在启用调试的情况下手动运行它。这将导致它在前台运行并将任何错误消息打印到标准错误,同时也增加了详细程度。

我相信这将是 Ubuntu 上 PostgreSQL 9.3 的正确命令行,但可能需要进行一些非常轻微的调整(注意:为了便于阅读,行被拆分;如果需要,您可以将其重新组合为一行(不带反斜杠)):

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

开头是postgres二进制文件的位置,然后我们启用调试并将其设置为级别 3(您可以将其调高或调低以增加或减少详细程度)。接下来我们指定要开始的数据目录和配置文件。我认为这些应该是 Ubuntu Server 12.04 的默认设置。

希望这能为您提供足够的信息来确定问题所在。

答案2

根据@christopher 的回答:

使用 ubuntu 上的 postgres 12,我运行了:

# with my custom data dir:
/usr/lib/postgresql/12/bin/postgres -d 3 -D /media/ssd1/pg_data -c config_file=/etc/postgresql/12/main/postgresql.conf

# with default config:
/usr/lib/postgresql/12/bin/postgres -d 3 -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf

就我而言,问题如下:

2020-06-02 15:27:45.468 GMT [2522] LOG:  skipping missing configuration file "/media/ssd1/pg_data/postgresql.auto.conf"
2020-06-02 17:27:45.469 CEST [2522] FATAL:  data directory "/media/ssd1/pg_data" has wrong ownership
2020-06-02 17:27:45.469 CEST [2522] HINT:  The server must be started by the user that owns the data directory.
2020-06-02 17:27:45.469 CEST [2522] DEBUG:  shmem_exit(1): 0 before_shmem_exit callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG:  shmem_exit(1): 0 on_shmem_exit callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG:  proc_exit(1): 0 callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG:  exit(1)

我没有得到任何有用的信息sudo cat /var/log/postgresql/postgresql-12-main.log 并且sudo systemctl start postgresql没有产生任何输出

相关内容