[pgsql-jp: 39129] Re: pgpoolによりバックエンドのデータベースの異常を検知できないでしょうか。

陶山 泰 postgrml @ suyama.net
2008年 2月 1日 (金) 08:52:19 JST


高尾さん、こんにちは。陶山といいます。

        Thu, 31 Jan 2008 14:53:58 +0900 の
        [pgsql-jp: 39127] pgpoolによりバックエンドのデータベースの異常を検知できないでしょうか。
        に関するメールについてのお返事です。

高尾> pgpool 3.1.2を使用しています。
高尾> pgpoolについてご質問とご要望があります。
高尾> 
高尾> On 2008/01/31, at 12:36, 高尾 宏治 wrote:
高尾> 
高尾> > 稼動系と待機系の主従構成で運用しており、
高尾> > データベースの同期はpgpoolで実現しています。
高尾> > 待機系のデータディレクトリがアンマウントされてしまうと、
高尾> > それ以降、pgpool経由でクエリを発行すると、
高尾> > pgpoolがデータの不整合を検知するため、全てのクエリが失敗するようになります。
高尾> 
高尾> データの不整合を検知したとき、pgpoolのログには以下が記録されます。
高尾> 
高尾> 2008-01-31 14:39:08 ERROR: pid 3816: read_kind: kind does not match between backends master(83) secondary(69)
高尾> 2008-01-31 14:39:08 ERROR: pid 3816: pool_do_auth: failed to read kind before backendkeydata
高尾> 
高尾> 手元のpgpoolの設定では、データの不整合が発生しても
高尾> フェイルオーバーしないように設定しています。
高尾> 
高尾>   replication_stop_on_mismatch = false
高尾> 
高尾> しかし、セカンダリのデータディレクトリが
高尾> アンマウントされるというような異常が発生したときは、
高尾> クエリのレスポンスからpgpoolが異常を検知し、
高尾> セカンダリを切り離すようにはできないものでしょうか。
高尾> pgpoolの設定などで実現できるのであれば、
高尾> ご教授いただけないでしょうか。
高尾> また、もし、現在のバージョンではそのようなことが設定できないのであれば、
高尾> 機能の追加をご検討いただけないでしょうか。

 pgpool-II では、ダメなのでしょうか?
 pgpool2_osc2007-fukuoka.pdf には、「pgpool-II の機能」の中に、
 (石井さんが2007.12.8に福岡で行った講演資料)

 片方のDBが障害を起しても自動的に切り離して運用を継続

と書いてあります。

 「アンマウントされる」という状況と異なるかもしれませんが、PostgreSQL
自体のダウンやPostgreSQLが稼動しているサーバ自体のダウンでは確かに障害
のある方を自動的に切り離して運用が可能なことは確認しています。

 的をはずしていたらゴメンナサイ。

補足
 pgpool-II の 2.0、2.0.1 にはバグがあって上記は動作しません。
 今月中には、2.0.2 が出るそうです。
 私は、その 2.0.2 の開発版みたいなもの(正式リリースではない)を使っ
てテストを行い動作を確認しました。





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