Configuring and usage¶
使用する前にEDB PgBouncerを構成します。
EDB PgBouncerの設定¶
EDB PgBouncerサービスが実行されているとき、構成ファイルで指定されたEDB
PgBouncerリスナーポートに接続するPostgresクライアントは接続プーリングを使用します。
EDB PgBouncerの接続と構成情報は、 .ini ファイルに格納されます。
RedHat/Centos、Debian、およびSLES 12 SP5では、.ini
ファイルは次のディレクトリにあります。
/etc/edb/pgbouncer<x.x>/
<x.x> EDB PgBouncerバージョンです。
Windowsでは、 .ini ファイルは次のディレクトリにあります。
C:\Program Files\edb\pgbouncer<x.x>\share\
<x.x> EDB PgBouncerバージョンです。
EDB PgBouncer構成ファイルは、 [databases] と[pgbouncer]
の2つのセクションに分かれています。
構成ファイルの[databases]
セクションには、データベースのリストと関連する接続情報が含まれています。構成ファイルには、EDB
PgBouncerをインストールしたEDB Postgres Advanced
Serverをインストールするためのエントリが含まれています。
edb = host=127.0.0.1 port=5444
PostgreSQLサーバーの場合、次の例に示すように、PostgreSQLサーバーの詳細を入力する必要があります。
postgres = host=127.0.0.1 port=5432
keyword=value
ペアの形式で構成ファイルに、より多くのデータベース接続情報を指定できます。表に示されているパラメーターを含めることができます。
Parameter |
Description |
|---|---|
host |
ホストのIPアドレス |
port |
ホストがリッスンしているポート |
dbname |
(オプションの)データベース名 |
user |
ユーザー名(接続するクライアントが指定した情報と異なる場合) |
password |
パスワード(接続するクライアントが指定した情報と異なる場合) |
次の例は、構成ファイルの[databases]
セクションで許可される構文を示しています。
[databases]
edb = host=127.0.0.1 port=5444
postgres = host=127.0.0.1 port=5432
acctg = host=192.168.10.101 port=5432 user=bob password=XXXXXX
dbname
パラメーターを含めて、接続名を代替データベース名にマップします。例:
hr = host=127.0.0.1 port=5445 dbname=humanresources
クライアントが認証情報を提供すると、その情報はEDB PgBouncerへの接続に使用されます。 EDB PgBouncerは、EDB PgBouncer構成ファイルで指定された情報を使用して、データベースサーバーに接続します。構成ファイルで提供されるユーザー情報は、Postgresデータベースクラスターで定義されたロールと一致する必要があります。
注釈
pgbouncer.ini でユーザーの詳細を指定しない場合、ユーザー名とパスワードはデータベースサーバーとEDB PgBouncerによって認証されます。そのため、ユーザー名とパスワードを`userlist.txt` ファイルとデータベースクラスターに含めます。
構成ファイルの[pgbouncer] セクションには、EDB
PgBouncerに固有の構成の詳細が含まれています。
Parameter |
Description |
|---|---|
admin_users |
管理コンソールへのアクセスが許可されているユーザーのカンマ区切りリスト(管理とモニタリングの目的)。デフォルトでは、EDB PgBouncerは`admin_users = enterprisedb`でインストールされます。 PostgreSQLサーバーの場合、この値を`admin_users = postgres`として設定します。 |
auth_file |
EDB PgBouncerに接続できるクライアントのユーザー名とパスワードを含む認証ファイルへのパス。認証ファイル(userlist.txt)は`/etc/edb/pgbouncer<x.x>/`にあり、クライアントがEDB PgBouncerへのアクセスに使用できるIDを指定する ユーザー名/パスワード のペアが含まれています。認証ファイルには、ユーザー名とパスワードをダブルクォーテーションで囲んで指定します。 EDB PgBouncerにアクセスできるIDを変更するには、既存の認証ファイルを編集するか、 `auth_file`パラメーターで代替の認証ファイルを指定します。 |
auth_type |
EDB PgBouncerが使用する認証方法。 md5、crypt、plain、trust、または`any`のいずれかです。デフォルト値は`md5`です。 |
auth_dbname |
データベース名を指定するオプション。 auth_queryで言及されたクエリは、このデータベースに対して実行されます。 |
default_pool_size |
サーバーへのアクセスが許可されているユーザー接続の量。デフォルトは20のアクティブな接続です。 |
ignore_startup_parameters |
EDB PgBouncerが無視するアプリケーションスタートアップパケットのコンマ区切りリスト。デフォルトはapplication_nameです。 |
listen_addr |
EDB PgBouncerがクライアント接続をリッスンするIPアドレス。省略すると、Unixソケット接続のみが許可されます。クライアントはEDB PgBouncerと同じホストに存在する必要があり、EDB PgBouncerに接続するときにホストIPアドレスを指定することはできません。 |
listen_port |
EDB PgBouncerがクライアント接続を監視するポート。デフォルトでは、EDB PgBouncerはポート6432でリッスンします。 |
logfile |
EDB PgBouncerログファイルへのパス。 |
max_client_conn |
許可される接続の最大数。デフォルトは100です。 |
pidfile |
プロセスIDファイルへのパス。 |
pool_mode |
pool_mode`の値は、サーバー接続を接続プールで使用できるようになる時期を指定します。 `session、transaction、または`statement`になります。デフォルト値は`session`です。 |
server_reset_query |
デフォルトは`DISCARD ALL`で、データベースセッションに加えられた変更をクリーンアップするようにEDB PgBouncerに指示します。 |
stats_users |
読み取り専用クエリに接続して実行できるユーザーのコンマ区切りリスト。デフォルトは`stats_users = enterprisedb`です。 PostgreSQLサーバーの場合、この値を`stats_users = postgres`として設定します。 |
cancel_wait_timeout |
PgBouncerがキャンセルリクエストの転送を断念するまでの時間。デフォルトは10秒です。 |
次の例は、 EDB Postgres Advanced Server用のEDB PgBouncer
1.16の構成ファイルの[pgbouncer]
セクションで許可される構文を示しています。
[pgbouncer]
logfile = /var/log/edb/pgbouncer1.16/edb-pgbouncer-1.16.log
pidfile = /var/run/edb/pgbouncer1.16/edb-pgbouncer-1.16.pid
listen_addr = *
listen_port = 6432
auth_type = md5
auth_file = /etc/edb/pgbouncer-1.16/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
pgbouncer.ini ファイルで使用される設定の詳細については、
pgbouncer.iniを参照してください。
環境のEDB PgBouncer構成ファイルを編集した後、EDB
PgBouncerサービスを再起動して変更を有効にします。 CentOS、Rocky
Linux、AlmaLinux、RHEL、SUSE、およびWindowsプラットフォームの場合、EDB
PgBouncerサービス名はedb-pgbouncer-1.16 です。
Debパッケージの場合、EDB PgBouncerサービス名はedb-pgbouncer116
です。プラットフォーム固有のコマンドを使用して、必要に応じてサービスを停止、開始、または再起動します。
EDB PgBouncer管理コンソールの使用¶
管理コンソールを使用すると、EDB
PgBouncerアクティビティに関する統計情報を取得し、EDB
PgBouncerプロセスを制御できます。 edb-psqlクライアントを使用して、
pgbouncer データベースに接続することにより、EDB
PgBouncer管理コンソールにアクセスできます。
次の例では、Linuxシステム上のedb-psqlクライアントを使用してpgbouncerデータベースに接続します。 EDB PgBouncerは、enterprisedbのユーザー名でポート6432でリッスンしています。
EDB Postgres Advanced Serverインストールの下のbinディレクトリに移動した後、次のコマンドを入力します。必要な接続情報は、接続するクライアント、プラットフォーム、およびサーバーが必要とする認証情報によって異なります。
$ ./edb-psql -p 6432 -U enterprisedb pgbouncer
PostgreSQLサーバーの場合、コマンドは次のとおりです。
$ ./edb-psql -p 6432 -h /tmp -U postgres pgbouncer
pgbouncerデータベースに接続した後、 SHOW CLIENTS
コマンドを使用して、クライアント関連の情報を取得できます。
SHOW CLIENTS;¶
SHOW CLIENTS コマンドは以下を返します。
__OUTPUT__
- -[ RECORD 1]-+--------------------
type | C
user | enterprisedb
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 コマンドの他のバリエーションを使用して、EDB
PgBouncerに関する情報を取得できます。
SHOW STATS SHOW SERVERS SHOW POOLS SHOW LISTS
SHOW USERS SHOW DATABASES SHOW FDS SHOW CONFIG
SHOW STATE
次のコマンドを使用して、EDB PgBouncerプロセスを制御できます。 PgBouncerの使用の詳細については、 PgBouncer project site を参照してください。
PAUSE
PAUSE
コマンドを使用して、現在のクエリが完了するのを待った後、すべてのサーバーを切断します。
SUSPEND
SUSPEND コマンドを使用して、ソケットバッファーをフラッシュし、EDB
PgBouncerプロセスを一時停止します。
RESUME
RESUME コマンドを使用して、 PAUSE またはSUSPEND
コマンドの後に作業を再開します。
SHUTDOWN
SHUTDOWN コマンドを使用して、EDB
PgBouncerプロセスを停止し、終了します。
RELOAD
RELOAD コマンドを使用して、EDB
PgBouncer構成ファイルをリロードします。