PgBouncer#

PgBouncerパッケージバージョン#

デフォルトでは、TPAはPgBouncerの最新バージョンをインストールします。

config.yml ファイルのcluster_vars セクションの下のpgbouncer_package_version: xxx を含めることにより、インストールされるPgBouncerパッケージのバージョンを指定できます。

cluster_vars:
    …
    pgbouncer_package_version: 1.8*
    …

aptまたはyumが受け入れるバージョン指定子を使用できます。

バージョンが一致しない場合は、 * ワイルドカードを追加してみてください。これは、パッケージバージョンに2:... のようなエポック修飾子がある場合に必要になることがよくあります。

PgBouncerの構成#

TPAは、 role にpgbouncer が含まれるインスタンスにPgBouncerをインストールおよび構成します。

デフォルトでは、PgBouncerはポート6432で接続を監視し、pgbouncer_backend が指定されない場合、接続を127.0.0.1:5432 アーキテクチャに応じてPostgresまたは Configuring haproxy のいずれかに転送します。

Variable

Default value

Description

pgbouncer_port

6432

pgbouncerがリッスンするTCPポート

pgbouncer_backend

127.0.0.1

接続するPostgresサーバー

pgbouncer_backend_port

5432

`pgbouncer_backend`がリッスンするポート

pgbouncer_max_client_conn

`max_connections`×0.9

許可される接続の最大数。デフォルトは、可能であればバックエンドの`max_connections`設定から取得されます

pgbouncer_auth_user

pgbouncer_auth_user

認証に使用するPostgresユーザー

データベース#

デフォルトでは、TPAは[databases] の下に単一のワイルドカード* エントリーを使用して/etc/pgbouncer/pgbouncer.databases.ini を生成し、すべての接続をバックエンドサーバーに転送します。次の例に示すようにpgbouncer_databases を設定して、データベース構成を変更できます。

認証#

PgBouncerはpgbouncer_auth_user としてPostgresに接続し、構成済みのauth_query を実行してユーザーを認証します。

PgBouncerによってauth_query として使用されるpgbouncer_get_auth() ファンクションは、単一のデータベースpgbouncer_auth_database に作成されます。このファンクションの実行権限はpgbouncer_auth_user に付与されます。

例#

instances:
  - Name: one
    vars:
      max_connections: 300
  - Name: two
  - Name: proxy
    role:
      - pgbouncer
    vars:
      pgbouncer_backend: one
      pgbouncer_databases:
        - name: dbname
          options:
            pool_mode: transaction
            dbname: otherdb
        - name: bdrdb
          options:
            host: two
            port: 6543

tpaexec upgrade を使用したPgBouncerのマイナー更新#

特定のパッケージバージョンにアップグレードしようとする場合は、 config.yml のpgbouncer_package_version が更新されて、目的のバージョンを反映していることを確認します。

目的のバージョンを追加の引数としてtpaexec upgrade コマンドに渡すこともできます。

tpaexec upgrade <cluster_dir> \
  -e pgbouncer_package_version="<desired version>" \
  --components=pgbouncer

詳細については、 package version selection and upgrade のセクションを参照してください。

アップグレードのためにPgBouncerを選択するには、 tpaexec upgrade コマンドに渡される--components フラグにpgbouncer またはall が含まれていることを確認します

component selection for upgrade のセクションを参照してください

詳細については、