[pgcluster: 179] クラスタサーバの復旧
Masanari Ishida
ishida @ credist.co.jp
2004年 2月 27日 (金) 19:29:37 JST
お世話になります。石田と申します。
以前の投稿でもありましたが、クラスタサーバ復旧がうまくいく時と
いかない時があります。
試したのはpgcluster-1.0.6/1.0.6b/1.0.6cv1です。構成は以下のとおりです。
レプリケーションサーバ:1台(REP1:デバッグモードで起動)
クラスタサーバ:3台(CL1〜3)
psql実行用:1台(AP1)
を別々のマシン上で実行しました。
------------
|パターン1|
------------
1)CL3を停止
$ pg_ctl stop -m immediate -o "-i"
2)AP1よりpsqlにてCL1に接続し、exitする。
REP1のログにCL3がerrorと記録
3)CL3を復旧。(だれもクラスタサーバには接続していない。)
$ pg_ctl start -o "-i -R"
4)AP1よりpsqlでCL1に接続し、INSERT文を実行
test_db=# insert into tbl1 values (1);
5)REP1に以下が表示され、ログにはCL3がerrorとなる。
DEBUG(get_ip_by_name): send_replicate_packet_to_server query=insert into tbl1
values (1)
DEBUG(get_ip_by_name): db:test_db port:5432 user:postgres host:CL3 query:insert
into tbl1 values (1)
DEBUG(get_ip_by_name): sync_command(SELECT
PGR_SYSTEM_COMMAND_FUNCTION(2,1077858286,670307) )
WARNING: Message from PostgreSQL backend:
The Postmaster has informed me that some other backend
died abnormally and possibly corrupted shared memory.
I have rolled back the current transaction and am
going to terminate your database system connection and exit.
Please reconnect to the database system and repeat your query.
ERROR(get_ip_by_name): PQexec error
DEBUG(PGRsend_load_balance_packet): sem_unlock[3]
DEBUG(PGRsem_unlock): replicate_loop selected
6)CL3よりpsqlで接続
1.0.6b/cv1では接続できませんでした。応答をずっと待ち続けているような感じでした。
1.0.6では接続できました。でもREP1から切り離されているのでレプリケート対象外
となっていました。
ただし、再度同様のことを行うと上記のような問題は発生せず、
正常に復旧し、レプリケートもされていきます。
3回目は上記同様。更に続けていくと以下のようになりました。
1回目:異常 2回目:正常
3回目:異常 4回目:正常
5回目:異常 6回目:正常
7回目:異常 8回目:正常
9回目:異常 10回目:正常
------------
|パターン2|
------------
1)〜3)までパターン1と同じ。
4)AP1よりCL3に接続し、exitする。
5)AP1よりCL1に接続し、INSERTを実行。
6)AP1よりCL3に接続し、参照系、更新系の処理を行う。問題発生せず。
ただし、再度同様のことを行うと、パターン1のようにCL3がREP1から切断されます。
これを更に続けていくと以下のようになりました。
1回目:正常 2回目:異常
3回目:正常 4回目:異常
5回目:正常 6回目:異常
7回目:正常 8回目:異常
9回目:正常 10回目:異常
1.0.6cv1で、ロードバランサを使用した場合も行ってみましたが
同様でした。
以上、ご報告です。
----------------------------------------
Masanari Ishida < ishida @ credist.co.jp >
----------------------------------------
pgcluster メーリングリストの案内