[pgsql-jp: 37998] Re: pgpoolでsecondaryの異常時にトランザクションを正常終了させる方法

TAKAO Kouji kouji @ netlab.jp
2007年 2月 9日 (金) 17:08:26 JST


高尾です。

> > pgpool 3.1.1 をデータベースのレプリケーションのために使用しています。
> > pgpoolのレプリケーションを使用している場合に片方のデータベースに異常が
> > 発生すると、次のような動作をするものだと認識しております。
> > 
> > (1) ヘルスチェック、もしくは SELECT 文の発行時にpgpoolが異常を検知する
> > (2) その後、pgpool 経由でデータベースにアクセスした時に以下のエラーを
> >     pgpoolが返答する
(snip)
> > しかしながら、master 側はともかく、secondary 側の異常時にはトランザク
> > ションを正常に終了させたいと考えております。なお、データベースの状態は 
> > pgpool の show pool_status により定期的に確認することを考えております。
> 
> 役に立たない意見ですが。。。
> 
> psqlで接続して動作を見ている限り、pgpoolは片肺飛行に入るときは
> 一旦接続を全て切っているように見えます。
> 少なくともfork()し直していますね。
> fork()し直さないで連続的に運用できるとうれしいですね。

fork()しなおしているのですね。

設定などにより、トランザクションが終わってからfork()しなおすようにする
とか、secondaryが異常終了した場合でも、トランザクションがとりあえず完了
するようにはできないのでしょうかね。

CSVのHEADとかで、fork()し直さないで連続的に運用できるようにする計画とか
はないでしょうか。

---
高尾 宏治 - TAKAO Kouji <kouji @ netlab.jp>
株式会社ネットワーク応用通信研究所 <http://www.netlab.jp/>



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