2011-01-13 12 views
0

2つ以上のWebサーバでpgpoolを実行しようとしていますが、rails appなどがあります。アイデアは、slonyやストリーミング、pgpoolによるフェイルオーバによるレプリケーションです。また、replcaとWebサーバーの接続がプールされたクエリを用意するのもいいでしょうが、重要なことはmaster_slaveとフェールオーバーの動作を取得することです。master_slaveモードでのpgpoolのバックエンドに対する認証が失敗する

私はUbuntu 10.04 LTSのaptパッケージからpgpool version 3.4.1(lainihi)をインストールしました。 db01はマスターであり、slonyを介してdb02に複製されます。私のpgpool.confのは、次のようになります。

# configure frontend 
listen_addresses = 'localhost' 
port = 5432 

# configure the backends 
backend_host_name = 'db01' 
backend_port = 5432 
secondary_backend_host_name = 'db02' 
secondary_backend_port = 5432 

# uncomment this and pgpool fails to connect 
#master_slave_mode = true 
#master_slave_sub_mode = 'slony' 

それは「rawモード」で今動作し、私はmaster_slaveで多くを得るでしょうかしら?それは、pgpoolのように思える

2011-01-13 02:03:17 DEBUG: pid 24144: I am 24144 accept fd 6 
2011-01-13 02:03:17 DEBUG: pid 24144: Protocol Major: 1234 Minor: 5679 database: user: 
2011-01-13 02:03:17 DEBUG: pid 24144: SSLRequest: sent N; retry startup 
2011-01-13 02:03:17 DEBUG: pid 24144: Protocol Major: 3 Minor: 0 database: XXX user: XXX 
2011-01-13 02:03:17 DEBUG: pid 24147: I am 24147 accept fd 6 
2011-01-13 02:03:17 DEBUG: pid 24147: Protocol Major: 3 Minor: 0 database: XXX user: XXX 
2011-01-13 02:03:17 DEBUG: pid 24144: pool_read_message_length: lenghth: 12 
2011-01-13 02:03:17 DEBUG: pid 24144: trying md5 authentication 
2011-01-13 02:03:17 DEBUG: pid 24144: master: 1 salt: 8bcce867 
2011-01-13 02:03:17 DEBUG: pid 24147: pool_read_message_length: lenghth: 12 
2011-01-13 02:03:17 DEBUG: pid 24147: trying md5 authentication 
2011-01-13 02:03:17 DEBUG: pid 24147: master: 1 salt: bb5f7a63 
2011-01-13 02:03:17 DEBUG: pid 24144: master: 0 salt: 5abb8e55 
2011-01-13 02:03:17 DEBUG: pid 24144: do_md5: backend does not return R while processing MD5 authentication E 
2011-01-13 02:03:17 ERROR: pid 24144: pool_do_auth: backend does not return authenticaton ok 
2011-01-13 02:03:17 DEBUG: pid 24147: master: 0 salt: 4c1e5953 
2011-01-13 02:03:17 DEBUG: pid 24147: do_md5: backend does not return R while processing MD5 authentication E 
2011-01-13 02:03:17 ERROR: pid 24147: pool_do_auth: backend does not return authenticaton ok 

は、バックエンドで認証することはできません、次の私が見るpgpoolのログに

# psql -h localhost -U XXX -W 
Password for user XXX: 
psql: server closed the connection unexpectedly 
    This probably means the server terminated abnormally 
    before or while processing the request. 

、私:私はmaster_slaveのコメントを外しとにかく場合=真の私は、私が接続したときfollingを取得しますpsqlを使って各クライアントの各バックエンドサーバに接続することができます.pgpoolは「rawモード」で動作します。

pgpoolを構成する助けがあれば、大歓迎です。それは素晴らしい解決策のように見えますが、それを設定することは予想よりも難しくなっています。

TIA、

答えて

1

デニスは最後にこれを自分で解決しました。問題は、pgpoolsの奇妙なバージョン管理とaptからのインストールに起因します。

最初の問題は、pgpoolがpgpoolからpgpool-IIにメジャーバージョンを切り替えることでした。 pgpool-IIはforkや互換性のない兄弟ではなく、より多くの機能を備えた後の "point oh"リビジョンです。 pgpoolの最新バージョンは3.4.1で、最新バージョンのpgpool-IIは3.0.1です。注意深く見ていなければ、pgpool 3.4.1> pgool-II 3.0.1と考えるかもしれませんが、そうではありません。

2番目の問題は、上記のpgpoolとpgpool2用の2つのaptパッケージがあることです。もちろん、pgpool2はpgpool-IIです。 pgpoolをインストールしている人がpgpool2パッケージが存在することを知っているように、パッケージで "see also"と言う方法があればうれしいでしょう。

pgpool-IIのソースを取得してコンパイルすると(aptパッケージで有効になっていないSSLを有効にする)、マスタースレーブスイッチは広告として動作します。

関連する問題