[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 メーリングリストの案内