我正在使用stream式复制的Postgres 9.2。 我有1个主数据库和2个备用数据库,它托pipe在亚马逊EC2上,每个都有自己的服务器。 在单独的服务器上,我有负载平衡的pgpool(3.2.3)
在我有pgpoolconfiguration
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显示服务器状态为“down”,即使服务器运行良好,由于这个原因,我得到了很多问题。 另外我有在pgpoolconfiguration:
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”选项,让它写日志。
任何想法为什么服务器显示为下降,我的日志是哪里?
这是关于日志的回应。
首先, log_directory是写入pgpool_status的地方,而不是实际的日志,这就是为什么你没有在那里find日志。
logging可以用两种方法中的任何一种来完成。 你已经设置了发送日志到STDERR,即错误消息的文件描述符。 在你用来启动pgpool的脚本中,你可以为STDERR添加一个redirect到一个文件,这个文件就是你的日志文件:
pgpool [whatever options you use] > /var/tmp/pgpool.log 2>&1
另一种方法是通过常规的syslog守护进程设置日志logging。 在这种情况下,像这样改变log_destination:
log_destination 'syslog'
这将发送设施local7上的日志。 如果你想把它发送到另一个设施,使用
syslog_facility 'local0'
或任何你喜欢的设施。 当然,你也需要configuration你的syslog守护进程来处理这个工具。
一旦完成了这个部分,就很容易找出其他问题。