pgpool-ii 显示服务器已关闭,但服务器运行良好

pgpool-ii 显示服务器已关闭,但服务器运行良好

我使用的是带流复制的 postgres 9.2。我有 1 个主数据库和 2 个备用数据库,它们托管在 amazon EC2 上,每个数据库都有自己的服务器。在单独的服务器上,我有 pgpool(3.2.3) 来执行负载平衡

在 pgpool 配置中我有

num_init_children=290, 
max_pool- 2, 
child_life_time - 0
child_max_connections - 100, 
connection_life_time- 100, 
client_idle_limit - 0
do not cache onnections

有时 pgpool 显示服务器状态为“关闭”,即使服务器正常运行,因此我遇到了很多问题。此外,我在 pgpool 配置中遇到:

health_check_timeout - 60
health_check_period - 30
health_check_max_retries - 3
health_check_retry_delay -5

另外,pgpool 不会写入日志 :( 我将日志记录设置为

log_destination "stderr"
debug_level 0
logdir /var/tmp

我检查了权限,它有 777,所以事实并非如此。当我启动 pgpool 时,我使用“-n”选项启动它以让它写入日志。

知道为什么服务器显示为关闭以及我的日志在哪里吗?

答案1

这是关于日志的回应。

首先,这log_directory是写入 pgpool_status 的地方,而不是实际的日志,这就是您在那里找不到日志的原因。

日志记录可以通过两种方式完成。您已将其设置为将日志发送到 STDERR,即错误消息的文件描述符。在您用于启动 pgpool 的脚本中,您可以将 STDERR 的重定向添加到文件,该文件将成为您的日志文件:

pgpool [whatever options you use] > /var/tmp/pgpool.log 2>&1

另一种方法是将日志记录设置为通过常规 syslog 守护程序进行。在这种情况下,请按如下方式更改 log_destination:

log_destination 'syslog'

这将发送设施 local7 上的日志。如果您希望将其发送到另一个设施,请使用

syslog_facility 'local0'

或者任何你喜欢的功能。当然,你还需要配置你的 syslog 守护进程来处理该功能。

一旦完成了这一部分,您就有可能更轻松地解决其他问题。

相关内容