我有这样的配置:“主机-1”主机和“主机-2”从服务器,如果“主机-1”关闭,pgpool正确地将“主机-2”提升为主服务器;但是如果“主机-1”返回,pgpool不知道这一点,如果“主机-2”下降,即使“主机-1”在线,pgpool也不会将"Host-1“提升为主服务器。我启用了health_check,但它似乎完全无用,因为"Host-1“(在它上升后)的状态总是3="Node下降”。
这是事件期间命令"show pool_nodes“的输出:
->初始情况:“主机-1”向上(主),“主机-2”向上(从)
node_id | hostname | port | status | lb_weight | role
---------+----------+------+--------+-----------+--------
0 | Host-1 | 5432 | 2 | nan | master
1 | Host-2 | 5432 | 1 | nan | slave->节点0下降:“主机-1”下降,“主机-2”上升
node_id | hostname | port | status | lb_weight | role
---------+----------+------+--------+-----------+--------
0 | Host-1 | 5432 | 3 | nan | slave
1 | Host-2 | 5432 | 2 | nan | master->节点0返回up:“主机-1”向上,“主机-2”向上
node_id | hostname | port | status | lb_weight | role
---------+----------+------+--------+-----------+--------
0 | Host-1 | 5432 | 3 | nan | slave
1 | Host-2 | 5432 | 2 | nan | master请注意,“主机-1”的状态是3,这意味着“节点下降了”。
->节点1下降:“主机-1”向上,“主机-2”下降:此时我无法连接到db,即使节点0已经启动并运行!
我要怎么做才能允许pgpool下一次推广主节点0?如果有用的话,下面是我的pgpool.conf的“后端连接设置”和“健康检查”部分:
# - Backend Connection Settings -
backend_hostname0 = 'Host-1'
# Host name or IP address to connect to for backend 0
backend_port0 = 5432
# Port number for backend 0
#backend_weight0 = 1
# Weight for backend 0 (only in load balancing mode)
#backend_data_directory0 = '/data'
# Data directory for backend 0
backend_flag0 = 'ALLOW_TO_FAILOVER'
# Controls various backend behavior
# ALLOW_TO_FAILOVER or DISALLOW_TO_FAILOVER
backend_hostname1 = 'Host-2'
# Host name or IP address to connect to for backend 0
backend_port1 = 5432
# Port number for backend 0
#backend_weight1 = 1
# Weight for backend 0 (only in load balancing mode)
#backend_data_directory1 = '/data'
# Data directory for backend 0
backend_flag1 = 'ALLOW_TO_FAILOVER'
# Controls various backend behavior
# ALLOW_TO_FAILOVER or DISALLOW_TO_FAILOVER
#------------------------------------------------------------------------------
# HEALTH CHECK
#------------------------------------------------------------------------------
health_check_period = 10
# Health check period
# Disabled (0) by default
health_check_timeout = 20
# Health check timeout
# 0 means no timeout
health_check_user = 'admin'
# Health check user
health_check_password = '12345'
# Password for health check user
health_check_max_retries = 10
# Maximum number of times to retry a failed health check before giving up.
health_check_retry_delay = 1
# Amount of time to wait (in seconds) between retries.发布于 2013-11-24 04:57:07
在提升从节点之前,必须打开它。这意味着,在你的情况下,使用贫民窟完全失败和重建前主人作为一个新奴隶。
基本的问题是,写到新的母版之前必须复制到旧的,然后才能失败。这首先是一个贫民窟的问题。在验证Slony正在工作并且所有东西都被复制之后,您可以对pgpool端进行故障排除,但在此之前不能这样做(然后您可能需要将它重新附加到PGPool上)。在主/从模式下使用PGPool时,PGPool比您使用的任何其他复制系统都次要。
发布于 2013-12-11 08:10:12
一旦您的从节点启动,并且复制工作正常,您需要重新将该节点附加到pgpool。
$ pcp_attach_node 10 pgpool_host 9898管理_pcp_passwd_ 0
最后一个参数是节点id,对于您的情况是0。
请参阅node详细信息。
https://stackoverflow.com/questions/19198654
复制相似问题