[pgpool-general-jp: 562] 縮退運転について
Masato Hasegawa
masato132 @ gmail.com
2009年 5月 8日 (金) 14:26:37 JST
お世話になっております。
長谷川と申します。
pgpool-II1台、postgres2台の構成で、以下の現象が発生し困っております。
【現象】
1.Telnetでpgpool-IIサーバにログイン
2.pgpool-II経由でpostgresに接続
3.postgresに接続したまま長時間放置すると、Telnetのセッションが切断される。
または、ネットワークを強制切断
4.pgpool-IIサーバ上ではpostgres接続のセッションが残ったままになる。
5.約2時間後、残っていたpostgres接続のセッションが自動切断され、
そのタイミングでDBサーバの1台が切り離される(縮退される)。
無通信状態が長いとTelentのセッションが切断されるのは、F/Wの関係で必ず起こってしまいます。
この時、DBサーバが2台とも正常に稼動しているのですが、
DBサーバのうち1台が障害として判断されてしまい縮退します。
(どちらが切り離されるかはその都度違います。)
これを回避する方法は無いでしょうか?
バージョン
pgpool-II-2.2.2
postgresql-8.3.4
縮退時のログ
pgpool-IIのログ
LOG: pid 21233: statement: RESET ALL
ERROR: pid 21233: pool_read: read failed (Connection timed out)
LOG: pid 21233: notice_backend_error: 0 fail over request from pid 21233
ERROR: pid 21233: pool_flush_it: write failed (Broken pipe) offset: 0 wlen: 5
LOG: pid 20838: starting degeneration. shutdown host XXX.XXX.XXX.XXX(5432)
postgresqlのログ
LOG: could not receive data from client: Connection timedout
LOG: unexpected EOF on client connection
LOG: disconnection: session time: 2:11:20.149 user=postgres
database=test host=pgpool-IIサーバ port=50067
pgpool.confの抜粋
num_init_children = 32
max_pool = 4
child_life_time = 300
child_life_time = 60
connection_life_time = 0
child_max_connections = 0
client_idle_limit = 0
authentication_timeout = 60
replication_mode = true
load_balance_mode = false
replication_stop_on_mismatch = false
replicate_select = false
reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'
master_slave_mode = false
connection_cache = true
health_check_timeout = 20
health_check_period = 0
health_check_user = 'postgres'
parallel_mode = false
enable_query_cache = false
client_idle_limit_in_recovery = 0
replication_timeout = 2000000
backend_hostname0 = 'XXX.XXX.XXX.XXX'
backend_port0 = 5432
backend_weight0 = 1
backend_hostname1 = 'YYY.YYY.YYY.YYY'
backend_port1 = 5432
backend_weight1 = 1
pgpool-general-jp メーリングリストの案内