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に関する情報を取得できます。
次のコマンドを使用して、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>`_ 。