PgBouncerの設定

PgBouncerサービスが実行されている場合、設定ファイルで指定されたPgBouncerリスナーポートに接続しているPostgresクライアントは接続プーリングを使用します。 PgBouncerの接続および設定情報は、次のディレクトリにある pgbouncer.ini ファイルに保存されます。

Linuxの場合:

/opt/edb/pgbouncer1.7/share/

Windowsの場合:

C:/Program Files/edb/pgbouncer1.7/share

PgBouncer構成ファイルは、 [databases] と [pgbouncer] の2つのセクションに分かれています。

設定ファイルの [databases] セクションには、データベースのリストと関連する接続情報が含まれています。 Advanced Serverのインストールでは、構成ファイルにPgBouncerをインストールしたAdvanced Serverのインストールのエントリが含まれています。

edb = host=127.0.0.1 port=5444

構成ファイルに keyword=value ペアの形式で追加のデータベース接続情報を指定できます。次のパラメーターを含めることができます。

パラメータ

説明

name

クライアントアプリケーションが接続するデータベースの名前。

host

ホストのIPアドレス。

port

ホストがリッスンしているポート。

dbname

(オプションの)データベース名。

user

ユーザー名(接続クライアントによって指定された情報と異なる場合)。

password

パスワード(接続クライアントによって指定された情報と異なる場合)。

次の例は、構成ファイルの [databases] セクションで許可されている構文を示しています。

[databases]
edb = host=127.0.0.1 port=5444
acctg = host=192.168.10.101 port=5432 user=bob password=1safe_pwd!

接続名を代替データベース名にマップするには、 dbname パラメーターを含めます。例:

hr = host=127.0.0.1 port=5444 dbname=humanresources

クライアントが認証情報を提供すると、その情報はPgBouncerへの接続に使用され、PgBouncerはPgBouncer構成ファイルで指定された情報を使用してデータベースサーバーに接続します。構成ファイルで提供されるユーザー情報は、Postgresデータベースクラスターで定義されたロールと一致する必要があります。

注釈

pgbouncer.ini でユーザーの詳細を指定しない場合、ユーザー名とパスワードはデータベースサーバーとPgBouncerによって認証されます。そのため、ユーザー名とパスワードは userlist.txt ファイルとデータベースクラスターに含める必要があります。

構成ファイルの [pgbouncer] セクションには、PgBouncerに固有の構成の詳細が含まれています。

パラメータ

説明

admin_users

管理コンソールへのアクセスを許可されているユーザーのコンマ区切りリスト(管理および監視目的)。デフォルトでは、PgBouncerはadmin_users = enterprisedbでインストールされます。

auth_file

PgBouncerに接続する可能性のあるクライアントのユーザー名とパスワードを含む認証ファイルへのパス。認証ファイル(userlist.txt)は/opt/edb/pgbouncer-1.7/etcにあり、クライアントがPgBouncerへのアクセスに使用できるIDを指定する* username / password *ペアが含まれています。以下に示すように、認証ファイル内では、ユーザー名とパスワードを二重引用符で囲んで指定する必要があります。

``user_name````password``

PgBouncerにアクセスできるIDを変更するには、既存の認証ファイルを編集するか、auth_fileパラメーターで代替認証ファイルを指定できます。

auth_type

auth_type

PgBouncerが使用する認証方法。 md5、crypt、plain、trust、またはany。デフォルト値はmd5です。

default_pool_size

サーバーへのアクセスが許可されるユーザー接続の量。デフォルトは20のアクティブな接続です。

group_connections

同じapplication_nameを提供するクライアントは、同じ接続を使用するようにグループ化されます。デフォルトは0です。

ignore_startup_parameters

PgBouncerが無視するアプリケーション起動パケットのコンマ区切りリスト。デフォルトはapplication_nameです。

listen_addr

PgBouncerがクライアント接続をリッスンするIPアドレス。省略すると、Unixソケット接続のみが許可されます。クライアントもPgBouncerと同じホストに存在する必要があり、PgBouncerへの接続時にホストIPアドレスを指定しない場合があります。

listen_port

PgBouncerがクライアント接続を監視するポート。デフォルトでは、PgBouncerはポート6432でリッスンします。

ログファイル

PgBouncerログファイルへのパス。

max_client_conn

許可される接続の最大数。デフォルトは100です。

pidfile

プロセスIDファイルへのパス。

pool_mode

pool_modeの値は、サーバー接続が接続プールで利用可能になる時期を指定します。セッション、トランザクション、またはステートメント。デフォルト値はセッションです。

server_reset_query

デフォルトはDISCARD ALLで、PgBouncerにデータベースセッションに加えられた変更をすべて消去するよう指示します。

stats_users

接続して読み取り専用クエリを実行できるユーザーのカンマ区切りリスト。デフォルトはstats_users = enterprisedbです。

次の例は、構成ファイルの [pgbouncer] セクションで許可されている構文を示しています。

[pgbouncer]
logfile = /var/log/edb/pgbouncer1.7/edb-pgbouncer-1.7.log
pidfile = /var/run/edb/pgbouncer1.7/edb-pgbouncer-1.7.pid
listen_addr = *
listen_port = 6432
auth_type = md5
auth_file = /opt/edb/pgbouncer-1.7/etc/userlist.txt
admin_users = enterprisedb
stats_users = enterprisedb
pool_mode = session
server_reset_query = DISCARD ALL
ignore_startup_parameters = application_name
max_client_conn = 100
default_pool_size = 20
group_connections = 0

pgbouncer.ini ファイルで使用される設定の詳細については、 pgbouncer.ini <https://pgbouncer.github.io/config.html>`_ 。

PgBouncer構成ファイルを編集して環境を反映した後、変更を有効にするにはPgBouncerサービスを再起動する必要があります。 PgBouncerサービスの名前は edb-pgbouncer-1.7 です。プラットフォーム固有のコマンドを使用して、必要に応じてサービスを停止、開始、または再起動します。

PgBouncer管理コンソールの使用

管理コンソールを使用すると、PgBouncerアクティビティに関する統計情報を取得し、PgBouncerプロセスを制御できます。 edb-psqlクライアントを使用して、 pgbouncer データベースに接続することでPgBouncer管理コンソールにアクセスできます。次の例は、Linuxシステム上のedb-psqlクライアントを使用して pgbouncer データベースに接続します。 PgBouncerはユーザー名 enterprisedb でポート 6432 をリッスンしています:

Advanced Serverインストールの bin ディレクトリに移動した後、次のコマンドを入力します。

# ./psql -p 6432 -U enterprisedb pgbouncer

必要な接続情報は、サーバーが必要とする接続クライアント、プラットフォーム、および認証情報によって異なることに注意してください。

pgbouncer データベースに接続したら、 SHOW CLIENTS コマンドを使用してクライアント関連の情報を取得できます。

# SHOW CLIENTS;

SHOW CLIENTS コマンドは以下を返します:

--[ RECORD 1]-+--------------------
   type         | C
   user         | postgres
   database     | pgbouncer
   state        | active
   addr         | unix
   port         | 6432
   local_addr   | unix
   local_port   | 6432
   connect_time | 2010-05-25 05:26:20
   request_time | 2010-05-25 05:39:46
   ptr          | 0x8655d20
   link         |

SHOW コマンドの他のバリエーションを使用して、PgBouncerに関する情報を取得できます。

統計を表示する
サーバーを表示
プールを表示
リストを表示する
ユーザーを表示
データベースを表示する
FDSを表示
構成を表示

次のコマンドを使用して、PgBouncerプロセスを制御できます。

PAUSE

PAUSE コマンドを使用して、現在のクエリが完了するのを待ってからすべてのサーバーを切断します。

SUSPEND

SUSPEND コマンドを使用して、ソケットバッファーをフラッシュし、PgBouncerプロセスを中断します。

RESUME

PAUSE または SUSPEND コマンドの後に作業を再開するには、 RESUME コマンドを使用します。

SHUTDOWN

SHUTDOWN コマンドを使用して、PgBouncerプロセスを停止して終了します。

RELOAD

RELOAD コマンドを使用して、PgBouncer設定ファイルをリロードします。

PgBouncerの使用に関する詳細については、ここをクリック <http://pgbouncer.projects.pgfoundry.org/doc/usage.html>`_ 。