[pgcluster: 429] リカバリー時のエラーに関して
kazunari takahashi
kazunari.takahashi @ ctc-g.co.jp
2004年 7月 29日 (木) 19:41:40 JST
高橋と申します.
現在、PGClusterを用いてPostgreSQLのレプリケーション環境を構築すべく、
検証を進めております.
現在は、DBのリカバリ検証をしています.
リカバリー中にマスタDBへのトランザクションを発行しない場合は正常に動作しているのですが、
リカバリ中にマスターDBへinsert文を発行すると、エラーで終了してします.
デバックメッセージに、
「ERROR(PGRsem_unlock): transaction is too busy, please try again after」
なるメッセージが出力されていたのですが、
リカバリ中には、insert文とupdate文を5〜10個ほどDBに発行したのみです.
後でトライしろと言われているので、
-Rオプションでpg_ctlを何回か実行したのですが、だめでした....
どなたかお知恵を拝借できないでしょうか?
[検証環境]
クラスタサーバ×2(solaris8 sparc)
レプリケーションサーバ×1(solaris8 sparc)
pgcluster-1.0.7av9
[リストア方法]
% pg_ctl start -D /usr/local/pgsql/data -o "-i -R"
Start in recovery mode!
Please wait until a data synchronization finishes from Master DB...
postmaster successfully started
%/usr/local/pgsql/bin/postmaster: sorry, recovery failed.
[デバックメッセージ]
DEBUG(replicate_loop): replicate main: selected
DEBUG(pgrecovery_loop): recovery accept port 7778
DEBUG(replicate_loop): wait replicate
DEBUG(read_packet): receive packet no:1
DEBUG(first_setup_recovery): 1st setup target eventdb04
DEBUG(first_setup_recovery): 1st setup port 5432
DEBUG(first_setup_recovery): check another recovery process
DEBUG(PGRsem_unlock): add recovery target to host table
DEBUG(PGRsend_load_balance_packet): set RECOVERY_PGDATA_REQ packet data
DEBUG(PGRget_master): send packet to master eventdb01 recoveryPort 7779
DEBUG(PGRsem_unlock): wait answer from master server
DEBUG(read_packet_from_master): wait
DEBUG(replicate_loop): wait replicate
DEBUG(replicate_loop): wait replicate
DEBUG(read_packet): get answer from master
DEBUG(send_recovery_packet): 1st master eventdb01 - 5432
DEBUG(send_recovery_packet): 1st target eventdb04 - 5432
DEBUG(replicate_loop): wait replicate
DEBUG(replicate_loop): wait replicate
DEBUG(replicate_loop): wait replicate
DEBUG(replicate_loop): wait replicate
DEBUG(read_packet): receive packet no:5
ERROR(PGRsem_unlock): transaction is too busy, please try again after
DEBUG(PGRsem_unlock): 2nd master eventdb01 - 5432
DEBUG(PGRsem_unlock): 2nd target eventdb04 - 5432
DEBUG(PGRsem_unlock): second_setup_recovery end :1
DEBUG(pgrecovery_loop): recovery accept port 7778
DEBUG(replicate_loop): replicate_loop selected
DEBUG(PGRclear_connections): replicate loop exit
高橋 一成
pgcluster メーリングリストの案内