[pgpool-general-jp: 250] pgpoolの縮退運転について

"吉元良史" y-yoshi @ wit.co.jp
2007年 9月 13日 (木) 15:25:38 JST


はじめまして、吉元と申します。

当方、初心者で理解が浅い為とんちんかんな事を書いてしまっていたらすみませんが、どうしてもわからなくて困っているので知っている方おられましたらどうかご教授お願いいたします。
以下の環境でpc1、pc2でReplicationを組んでおります。
OS:FedoraCore6
pgpool-II-1.2
postgresql-8.2.4

pc1:	pgpool -> PostgreSQL
	    |
pc2: 	     ---> PostgreSQL

テストにて手動でpc2のPostgreSQLを停止した後、最初にSELECT文を発行した時にフリーズしてしまいます。
また、同じようにpc2のPostgreSQLを停止した後、最初にINSERT文をを発行した時にはフリーズは起こらずにpc1のPostgreSQLにレコードが追加され、その後のSELECT文で問題なくデータも参照できます。

フリーズが発生した時には、pgpoolのデバックログには以下のメッセージが5秒おきに表示されます。
2007-09-12 20:41:03 DEBUG: pid 13099: pool_process_query: num_fds: 7
2007-09-12 20:41:03 ERROR: pid 13099: pool_read2: EOF encountered with backend
2007-09-12 20:41:03 DEBUG: pid 13099: detect_stop_postmaster_error: receive admin shutdown error from a node.
2007-09-12 20:41:03 LOG:   pid 13099: notice_backend_error: 1 fail over request from pid 13099
2007-09-12 20:41:03 DEBUG: pid 13070: failover_handler called
2007-09-12 20:41:03 ERROR: pid 13070: failover_handler: invalid node_id 1 status:3 MAX_NUM_BACKENDS: 128

またフリーズしている時のOSのps axコマンド結果では以下の行が表示されます。
13099 pts/1    S+     0:00 pgpool: postgres txuxhxuxb tsuuhoudb(47090) SELECT

pgpool.confの設定は以下のようにしております。
replication_mode = true
load_balance_mode = true
replication_stop_on_mismatch = true
connection_cache = false
insert_lock = true
system_db_user = 'postgres'
system_db_password = 'postgres'
backend_hostname0 = '192.168.nn.nn' ←pc1のIP
backend_port0 = 5432
backend_weight0 = 1
backend_hostname1 = '192.168.nn.nn' ←pc2のIP
backend_port1 = 5432
backend_weight1 = 1


フリーズの回避方法をご存知の方おられましたら、どうかご教授お願い致します。
それでは、宜しくお願いします。



pgpool-general-jp メーリングリストの案内