web-dev-qa-db-ja.com

pgpool負荷分散はすべてのクエリをマスターにのみ送信しています

私の2つのpostgresqlサーバーはストリーミングレプリケーション用に構成されており、正常に動作しています。

Pgpoolはマスタースレーブモード/ロードバランスモード用に構成されています。

pgpool.conf:

listen_addresses = '*'
port = 9999
backend_hostname0 = 'master-postgres-ip'
backend_port0 = port-no
backend_weight0 = 1
backend_data_directory0 = 'data-dir'
backend_hostname1 = 'slave-postgres-ip'
backend_port1 = port-no
backend_weight1 = 1
backend_data_directory1 = 'data-dir'
load_balance_mode = on
master_slave_mode = on
master_slave_sub_mode='stream'

すべての書き込みクエリがプライマリに移動し、読み取りクエリが2つのクエリに分散されることを期待していました。しかし、すべてのクエリはマスターするだけです。ただし、マスターを停止すると、クエリはスレーブに送られます。

誰かが何がうまくいかないのか教えてもらえますか?

pgpoolは起動時に以下のログを提供します:

2015-11-03 17:25:56: pid 21284: LOG:  find_primary_node: checking backend no 0
2015-11-03 17:25:56: pid 21284: LOG:  find_primary_node: checking backend no 1
2015-11-03 17:25:56: pid 21284: DEBUG:  SSL is requested but SSL support is not available
2015-11-03 17:25:56: pid 21284: DEBUG:  authenticate kind = 3
2015-11-03 17:25:56: pid 21284: ERROR:  failed to authenticate
2015-11-03 17:25:56: pid 21284: DETAIL:  invalid authentication message response type, Expecting 'R' and received 'E'
2015-11-03 17:25:56: pid 21284: DEBUG:  find_primary_node: no primary node found
1
ramanadh

最初は、sr_check_period in pgpool.confを0(ゼロ)にしてSRチェックを無効にします。私はこのチェックを回避し、常に負荷を分散することを考えました。しかし、これが問題を引き起こしています。

この属性にゼロ以外の値を指定した後、負荷分散が機能し始めました。

3
ramanadh

backend_hostname1 = 'master-postgres-ip'->これは、マスターではなく、スレーブを指す必要があります。

0
Petar Spasov