Postgresql 9.1的日志在哪里?(在FreeBSD 10上无法启动)

6

我尝试找到解决方案,但没有任何帮助。

我需要从应用程序中备份我的pgsql数据,这是我几个月前使用的。我发现postgresql服务器未运行。但无法启动它。

我以pgsql用户(su pgsql)身份运行pg_ctl -D /usr/local/pgsql/data -l logging.log -w -s start,输出显示无法启动服务器,并告诉我检查日志。但logging.log是一个空文件。我在网上找到的任何默认日志文件都是几个月前修改的,或者为空,甚至不存在。

我不知道如何找到错误,因为日志为空,或者我不知道该在哪里寻找它们。

重要提示:几个月前它还可以正常工作,但在那段时间内几乎没有更改(可能是主机名更改)。

  • Postgres版本为v9.1
  • 系统:FreeBSD 10.0-RC4

1
你是否检查了/usr/local/pgsql/data/pg_log日志文件? - user330315
启动时是否有“-verbose”命令?它可能会提供更多信息。 - ryekayo
@a_horse_with_no_name - 我根本没有这个目录/文件 :/ 有pg_xlog和pg_clog,但是它们都很旧,也没有什么有趣的东西。 - Janusz 'Ivellios' Kamieński
@ryekayo - 我可以执行 sh -x /usr/local/etc/rc.d/postgresql start 然后得到很多数据,但最后出现了 + su -l pgsql -c 'exec /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -w -s -m fast start' ,这基本上与我上面写的相同。最后显示 pg_ctl: could not start server,请检查日志输出。+ _return=1+ [ 1 -ne 0 ]+ [ -z '' ]+ return 1+ return 1。但是...没有日志:/ - Janusz 'Ivellios' Kamieński
检查/usr/local/pgsql/data/postgresql.conf文件,看看(1)logging_collector是否开启,以及(2)log_directory的值是多少。如果启用了logging_collector,那么日志将保存在log_directory路径中。 - MatheusOl
好的,它是关闭状态,所以我把它打开了,并将dir设置为pg_log(这也是默认值)。尝试了一下,但只有一个空的“postgresql-2014-12-09_212815.log”文件。 - Janusz 'Ivellios' Kamieński
2个回答

6

一些FreeBSD ports的版本安装PostgreSQL时启用了syslog日志记录功能。您可以通过查看/usr/local/pgsql/data/postgresql.conf中的log_destination = 'syslog'来确认这一点。

如果是这种情况,日志输出应该会显示在/var/log/messages中。


0

默认启用syslog日志记录(log_destination = 'syslog'),并且日志输出应该在/var/log/messages中可见。

如果您想在单独的文件中记录日志:

1)创建日志文件:

touch /var/log/postgresql/postgresql.log

2) 编辑 /etc/syslog.conf 文件,添加以下行

!postgres
*.*                                             /var/log/postgresql/postgresql.log
!*

编辑后,您需要重新启动服务

service syslogd restart

4) 不要忘记轮换postgresql.log(编辑/etc/newsyslog.conf)

5) 也许为了看到某些内容,您需要设置日志记录级别。例如,可以在您的postgresql.conf中添加以下内容:

client_min_messages = log
log_min_messages = info

log_checkpoints = on
log_connections = on
log_disconnections = on

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接