[pgsql-jp: 41655] Re: pgpoolの縮退運転について

株式会社 マンチェス 岩 株式会社 マンチェス 岩
2014年 5月 24日 (土) 09:26:45 JST


石井様。岩田です。

お返事いただきありがとうございます。インラインで回答いたします。

>> 環境は、pgpool-II 2.3.3+postgreSQL8.2.4×3です。pgpoolをレプリケーショ
>> ンモードで動作させており、主 要な設定は下記のとおりです。
> pgpool-II 2.3.3もPostgreSQL8.2.4もコミュニティサポートが終了しているので、
> 早急にアップグレードすることをお勧めします。

はい。いずれもサポートが終わっていることを承知で利用しています。pgpool-
IIは素晴らしいソリューションと思いますが、レプリケーショ ンを行うときの
クエリ発行における注意点が多々あるので、それらすべてを吸収しているとは思
えず、バージョンアップに躊躇しているところです。

>> あるUPDATE分が影響してpgpoolが不一致を検出しABORTさせた後、postgreSQL(セ
>> カンダリ2台目)が切り離されて縮退運 転となりました。下記がその当時のクエ
>> リログですが、伏せてあるUPDATE分はpostgreSQL3台ともまったく同じ内容です。
>>
>> 内容が同じなのに不一致って何?と思ったんですが、良く観察すると
>> postgreSQL(セカンダリ1台目)のdurationが176.003 msでした。原因はこれか
>> な?とも思いましたが、クエリログにrollback等の記録もないのでやはり不一致
>> の根本的な理由が分からずにいま す。
> pgpool-IIは、UPDATE文の不一致ではなく、UPDATEを実施した結果行が異なるこ
> とを検出して縮退を行います。つまりデータの不一致があるのが原因ですので、
> 各サーバの該当テーブルの内容が一致しているか調べるのが良いでしょう。

ということは、durationの問題ではなさそうですね。考えすぎてました。
テーブルの内容については、すいません、頻繁に内容が変わるので今となっては
確認のしようがないです。

石井様に助言を頂いて、改めてマニュアルを確認してみたのですが、pgpoolの設
定のうち、縮退に関わるものとしては 「replication_stop_on_mismatch、
failover_if_affected_tuples_mismatch」が あるんですね。
"replication_stop_on_mismatch"は、パケットの種類を見て縮
退、"failover_if_affected_tuples_mismatch"は結果行数を見て縮退するとあり
ますが、今回の場合 は"failover_if_affected_tuples_mismatch"のチェックに
引っかかって切り離されたと考えられるということ でしょうか?としても、
ABORTさせるクエリをpgpoolが発行しているので、
failover_if_affected_tuples_mismatch=falseの動きをしているように見えま
す。であれば、切り離しさ れないと思いますが、そこは
replication_stop_on_mismatch=trueが効いているのでしょうか?

お願いいたします。



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