[pgcluster: 215] レプリケーションサーバ障害時

Masanari Ishida ishida @ credist.co.jp
2004年 3月 25日 (木) 16:22:04 JST


お世話になります。石田です。

レプリケーションサーバを2台用意し、レプリケーションサーバ
障害時のテストをPGCluster-1.0.6cv9で行っています。

cluster.confにはREP1を1番目、REP2を2番目に記述したとします。

psqlでクラスタサーバに接続している時にREP1で障害が発生した場合、
更新系の処理を行うとレプリケートされないようです。
(REP1/2はデバッグモードで立ち上げていますが、REP2に動きはありま
せん。)

ただし、一度切断して再度psqlで接続するとREP2に処理が移ってレプリ
ケートされます。
これは仕様ですか?仕様だとしたら、コネクションプーリングを行っ
ているアプリで問題が発生するようなきがします・・・

テストした例:
$ psql -h CL1 db1
db1=# insert into tbl1 values (1);
INSERT 66149 1 
db1=#
<REP1障害発生>
db1=# insert into tbl1 values (1);
INSERT 66150 1 
db1=#                 ←すぐプロンプトは戻るがREP2のデバッグには
            なにも表示されない
db1=# insert into tbl1 values (1);
INSERT 66151 1 
db1=#                 ←プロンプトに戻るまでに20秒くらいかかる
            REP2のデバッグには何も表示されない
db1=# \q
$
$ psql -h CL1 db1
db1=# insert into tbl1 values (1);
INSERT 66152 1    ←REP2のデバッグに表示され、レプリケートされる
db1=#

<REP1>の障害発生からpsqlを抜けるまでのINSERTはレプリケート
されていない。
ロードバランサを使用した場合も同様でした。


----------------------------------------
Masanari Ishida < ishida @ credist.co.jp >
----------------------------------------




pgcluster メーリングリストの案内