У меня есть эта конфигурация с pgpool: «Ведущий-1» и ведомый «Host-2», если «Host-1» спускается, pgpool правильно продвигает «Host-2», чтобы стать мастером; но если «Host-1» возвращается, pgpool не знает об этом, и, если «Host-2» спускается, pgpool не продвигает «Host-1», чтобы быть мастером, даже если «Host-1» онлайн. Я включил health_check, но кажется совершенно бесполезным, потому что состояние «Host-1» (после того, как оно встает) всегда 3 = «Node down».pgpool-II: возможно ли продвигать узел для управления более одного раза?
Это вывод команды "показать pool_nodes" во время событий:
-> Первоначально ситуация: "Host-1" UP (мастер), "Host-2" UP (ведомое)
node_id | hostname | port | status | lb_weight | role
---------+----------+------+--------+-----------+--------
0 | Host-1 | 5432 | 2 | nan | master
1 | Host-2 | 5432 | 1 | nan | slave
-> узел 0 идет вниз: "Host-1" DOWN "Host-2" UP
node_id | hostname | port | status | lb_weight | role
---------+----------+------+--------+-----------+--------
0 | Host-1 | 5432 | 3 | nan | slave
1 | Host-2 | 5432 | 2 | nan | master
-> узел 0 возвращается вверх: UP "Host-1", "Host-2" UP
node_id | hostname | port | status | lb_weight | role
---------+----------+------+--------+-----------+--------
0 | Host-1 | 5432 | 3 | nan | slave
1 | Host-2 | 5432 | 2 | nan | master
отмечают, что статус "Host-1", однако 3, что означает "узел вниз"
-> узел 1 идет вниз: "Host-1" UP "Host-2" DOWN: на этот момент я не могу подключиться к db, даже если узел 0 запущен и работает!
Что мне нужно сделать, чтобы разрешить pgpool продвигать мастер узла 0 в другой раз? Если может быть полезным, эти секции «Настройки Backend подключения» и «Проверка работоспособности» моего 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.
Это не имеет ничего общего с Slony. Когда репликация будет восстановлена, pgpool не заметит - но должен быть * указан * узел вверх. Как указывает ответ Очки, сделайте это с помощью «attach» - даже если он кажется прикрепленным, он должен быть «повторно подключен». Видел это сегодня вечером на сервере pgpool и был набросок. –