pgbouncer - クラウド上のオンライン

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド pgbouncer です。

プログラム:

NAME


pgbouncer - PostgreSQL 用の軽量接続プーラー

SYNOPSIS


pgbouncer [-d][-R][-v][-u ユーザー]
pgbouncer -V|-h

Windows コンピュータでは、オプションは次のとおりです。

pgbouncer.exe [-v][-u ユーザー]
pgbouncer.exe -V|-h

Windows サービスを設定するための追加オプション:

pgbouncer.exe --regservice
pgbouncer.exe --unregservice

DESCRIPTION


PGバウンサー PostgreSQL 接続プーラーです。 任意のターゲット アプリケーションに接続可能
PGバウンサー あたかもPostgreSQLサーバーであるかのように、 PGバウンサー への接続が作成されます
そうでない場合は、既存の接続の XNUMX つを再利用します。

の目的 PGバウンサー 新しい接続を開くことによるパフォーマンスへの影響を軽減することです。
PostgreSQL

接続プーリングのトランザクション セマンティクスを損なわないように、 PGバウンサー
接続をローテーションするときに、いくつかのタイプのプーリングをサポートします。

セッション プール
最も丁寧な方法。 クライアントが接続すると、サーバー接続が割り当てられます。
クライアントが接続されている間ずっと。 クライアントが切断されると、
サーバー接続はプールに戻されます。 これがデフォルトの方法です。

トランザクション プール
サーバー接続は、トランザクション中にのみクライアントに割り当てられます。 いつ
PgBouncer はトランザクションが終了し、サーバー接続が元に戻されることを認識します
プールに。

ステートメント プール
最も攻撃的な方法。 サーバー接続はプールに戻されます
クエリが完了した直後。 複数ステートメントのトランザクションは禁止されています
このモードでは壊れる可能性があります。

の管理インターフェイス PGバウンサー いくつかの新しいもので構成されています SHOW 利用可能なコマンド
特別な「仮想」データベースに接続している場合 PGバウンサー.

クイックスタート


基本的な設定と使い方は以下の通りです。

1. pgbouncer.ini ファイルを作成します。 詳細は PGバウンサー(5)。 簡単な例:

[データベース]
テンプレート 1 = ホスト = 127.0.0.1 ポート = 5432 データベース名 = テンプレート 1

【pgバウンサー】
リッスン_ポート = 6543
listen_addr = 127.0.0.1
認証タイプ = md5
auth_file = users.txt
ログファイル = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = 一部のユーザー

2。 作ります ユーザー.txt 許可されたユーザーを含むファイル:

「someuser」「サーバー内のパスワードと同じ」

3。 打ち上げ PGバウンサー:

$ pgbouncer -d pgbouncer.ini

4. 申請書(または psql クライアント)に接続します PGバウンサー 直接ではなく
PostgreSQLサーバー:

$ psql -p 6543 -U someuser template1

5.管理 PGバウンサー 特別な管理データベースに接続することによって PGバウンサー  
発行 表示する 助けて; 始める:

$ psql -p 6543 -U someuser pgbouncer
pgbouncer=# ヘルプを表示;
注意: コンソールの使用法
詳細:
[ヘルプ|設定|データベース|FDS|プール|クライアント|サーバー|ソケット|リスト|バージョン]を表示
SET キー = 引数
RELOAD
PAUSE
つるす
概要
シャットダウン

6. pgbouncer.ini ファイルに変更を加えた場合は、次のコマンドで再ロードできます。

pgbouncer=# リロード;

COMMAND LINE SWITCHES


-d バックグラウンドで実行。 これがないと、プロセスはフォアグラウンドで実行されます。 注: しません
Windows 上で作業し、 PGバウンサー そこでサービスとして実行する必要があります。

-R オンライン再起動を実行します。 つまり、実行中のプロセスに接続し、
そこからソケットを開いて使用します。 アクティブなプロセスがない場合は、ブートします。
通常は。 注: OS が Unix ソケットをサポートし、 unix_socket_dir is
設定で無効になっていません。 Windows マシンでは動作しません。 TLSでは動作しません
接続が切断されると、それらはドロップされます。

-u user
起動時に指定されたユーザーに切り替えます。

-v 冗長性を高めます。 複数回使用できます。

-q 静かにしてください。標準出力にログを記録しないでください。 これはログの詳細さには影響しません。
stdout は使用されないこと。 init.d スクリプトで使用します。

-V バージョンを表示します。

-h 短いヘルプを表示します。

--regservice
Win32: Windows サービスとして実行する pgbouncer を登録します。 の サービス名 設定
パラメータ値は、登録する名前として使用されます。

--unregservice
Win32: Windows サービスの登録を解除します。

管理人 CONSOLE


コンソールはデータベースに通常どおり接続することで使用できます。 PGバウンサー:

$ psql -p 6543 pgbouncer

構成パラメータにリストされているユーザーのみ 管理者ユーザー or 統計_ユーザー 許可されています
コンソールにログインします。 (次の場合を除く) auth_mode=任意の場合、どのユーザーも
stats_user。)

さらに、ユーザー名 PGバウンサー ログインの場合、パスワードなしでログインできます。
Unix ソケット経由で送信され、クライアントは実行中のプロセスと同じ Unix ユーザー UID を持ちます。

表示 コマンド
当学校区の SHOW コマンドは情報を出力します。 以下に各コマンドについて説明します。

SHOW 統計;
統計を表示します。

データベース
統計はデータベースごとに表示されます。

total_requests
によってプールされた SQL リクエストの合計数 PGバウンサー.

合計受信数
が受信したネットワーク トラフィックの総量 (バイト単位) PGバウンサー.

total_sent
によって送信されたネットワーク トラフィックの総量 (バイト単位) PGバウンサー.

total_query_time
が費やした合計マイクロ秒数 PGバウンサー アクティブに接続されている場合
PostgreSQL

avg_req
最後の統計期間の XNUMX 秒あたりの平均リクエスト数。

avg_recv
XNUMX 秒あたりの (クライアントからの) 平均受信バイト数。

avg_sent
XNUMX 秒あたりの (クライアントへの) 平均送信バイト数。

avg_query
平均クエリ継続時間 (マイクロ秒単位)。

SHOW サーバー;
type S、サーバーのこと。

user PGバウンサー サーバーに接続するために使用します。

データベース
データベース名。

状態 pgbouncer サーバー接続の状態、次のいずれか アクティブ, 中古 or アイドル.

addr PostgreSQL サーバーの IP アドレス。

ポート PostgreSQL サーバーのポート。

ローカルアドレス
ローカルマシン上の接続開始アドレス。

ローカルポート
ローカルマシン上の接続開始ポート。

接続時間
接続が確立されたとき。

request_time
最後のリクエストが発行されたとき。

PTR この接続の内部オブジェクトのアドレス。 ユニークなIDとして使用されます。

サーバーとペアになっているクライアント接続のアドレス。

リモートpid
バックエンドサーバープロセスのPID。 UnixソケットとOS経由で接続する場合
プロセス ID 情報 (OS pid) の取得をサポートします。 それ以外の場合は、から抽出されます
サーバーが送信したパケットをキャンセルします。サーバーが Postgres の場合は PID である必要がありますが、
別の PgBouncer にサーバーを提供する場合の乱数。

SHOW クライアント;
type C、クライアント用。

user クライアント接続ユーザー。

データベース
データベース名。

状態 クライアント接続の状態。次のいずれかです。 アクティブ, 中古, 待ち望ん or アイドル.

addr クライアントのIPアドレス。

ポート クライアントが接続されているポート。

ローカルアドレス
ローカルマシン上の接続終了アドレス。

ローカルポート
ローカルマシン上の接続終了ポート。

接続時間
接続時のタイムスタンプ。

request_time
最新のクライアントリクエストのタイムスタンプ。

PTR この接続の内部オブジェクトのアドレス。 ユニークなIDとして使用されます。

クライアントがペアリングされているサーバー接続のアドレス。

リモートpid
プロセス ID (クライアントが UNIX ソケット経由で接続し、OS がプロセス ID の取得をサポートしている場合)。

SHOW プール;
新しいプール エントリは、(データベース、ユーザー) のペアごとに作成されます。

データベース
データベース名。

user ユーザー名

cl_active
サーバー接続にリンクされ、クエリを処理できるクライアント接続。

cl_waiting
クライアント接続はクエリを送信しましたが、まだサーバー接続を取得していません。

sv_active
クライアントにリンクされたサーバー接続。

sv_idle
未使用でクライアントのクエリにすぐに使用できるサーバー接続。

sv_used
アイドル状態が続いたサーバー接続 サーバーチェック遅延、したがって、彼らは必要とします
サーバーチェッククエリ 使用する前に実行する必要があります。

sv_tested
現在次のいずれかを実行しているサーバー接続 サーバーリセットクエリ or
サーバーチェッククエリ.

sv_login
現在ログイン処理中のサーバー接続。

最大待機
キュー内の最初の (最も古い) クライアントが待機した時間 (秒単位)。 これが始まれば
増加すると、現在のサーバーのプールではリクエストを十分に迅速に処理できなくなります。
理由としては、サーバーが過負荷になっているか、サーバーが小さすぎるかのいずれかである可能性があります。 プールサイズ 設定。

プールモード
使用中のプーリング モード。

SHOW リスト;
次の内部情報を行ではなく列で表示します。

データベースを追加しました
データベースの数。

users ユーザーの数。

プール プールの数。

無料クライアント
無料クライアントの数。

使用済みクライアント
使用されたクライアントの数。

ログインクライアント
のクライアント数 ログイン でのみ停止させることができます。

free_servers
空きサーバーの数。

使用済みサーバー
使用されているサーバーの数。

SHOW ユーザー;
ユーザー名

プールモード
ユーザーがオーバーライドする pool_mode、またはデフォルトが代わりに使用される場合は NULL。

SHOW データベース;
設定されたデータベースエントリの名前。

host pgbouncer が接続するホスト。

ポート pgbouncer が接続するポート。

データベース
pgbouncer が接続する実際のデータベース名。

強制ユーザー
ユーザーが接続文字列の一部である場合、pgbouncer と
PostgreSQL は、クライアント ユーザーが何であっても、指定されたユーザーに強制的に使用されます。

プールサイズ
サーバー接続の最大数。

プールモード
データベースの pool_mode をオーバーライドするか、デフォルトが代わりに使用される場合は NULL です。

SHOW FDS;
内部コマンド - 使用中の FDS のリストと、それに付随する内部状態が表示されます。

接続しているユーザーのユーザー名が「pgbouncer」の場合、Unix ソケット経由で接続し、
実行中のプロセスと同じ UID の場合、実際の fd は接続経由で渡されます。 これ
オンライン再起動を行うためにメカニズムが使用されます。 注: これは Windows マシンでは機能しません。

このコマンドは内部イベント ループもブロックするため、PgBouncer が動作している間は使用しないでください。
使用中で。

fd ファイル記述子の数値。

タスク の一つ プーラー, クライアント or .

user FDを使用した接続のユーザー。

データベース
FDを使用した接続のデータベースです。

addr FDを使用した接続のIPアドレス、 UNIX Unix ソケットが使用されている場合。

ポート FDを使用した接続で使用するポート。

キャンセル この接続のキャンセルキー。

対応するサーバー/クライアントの fd。 アイドル状態の場合は NULL。

SHOW 構成;
現在の構成設定を次の列で XNUMX 行に XNUMX つずつ表示します。

キー 設定変数名

構成値

変わりやすい
どちらでも はい or いいえは、実行中に変数を変更できるかどうかを示します。 もしも いいえ
変数は起動時にのみ変更できます。

SHOW DNS_ホスト;
DNS キャッシュ内のホスト名を表示します。

hostname
ホスト名

TTL 次の検索までの秒数。

アドレス カンマ区切りのアドレスのリスト。

SHOW DNS_ゾーン
キャッシュ内の DNS ゾーンを表示します。

ゾーン名
ゾーン名。

シリアル 現在のシリアル。

カウント このゾーンに属するホスト名。

プロセス 制御 コマンド
PAUSE [デシベル];
PgBouncer はすべてのサーバーからの切断を試行し、最初にすべてのクエリが完了するのを待ちます。
コマンドはすべてのクエリが完了するまで返されません。 の時に使用します
データベースを再起動します。

データベース名を指定すると、そのデータベースのみが一時停止されます。

無効にする デシベル;
指定されたデータベース上のすべての新しいクライアント接続を拒否します。

有効 デシベル;
前回の接続後に新しいクライアント接続を許可する 無効にする

KILL デシベル;
指定されたデータベース上のすべてのクライアントとサーバーの接続をただちに削除します。

つるす;
すべてのソケット バッファがフラッシュされ、PgBouncer はそのバッファ上のデータのリッスンを停止します。 の
すべてのバッファが空になるまでコマンドは返されません。 PgBouncer時に使用します
オンライン再起動。

概要 [デシベル];
前回からの作業を再開する PAUSE or つるす

シャットダウン;
PgBouncer プロセスが終了します。

リロード;
PgBouncer プロセスは構成ファイルをリロードし、変更可能な設定を更新します。

シグナル
シグアップ 設定をリロードします。 コマンド発行と同じ リロード; コンソール上。

SIGINT 安全なシャットダウン。 発行と同じ 一時停止;   シャットダウン; コンソール上。

シグターム
即時シャットダウン。 発行と同じ シャットダウン; コンソール上。

リイベント 設定
libevent のドキュメントから:

epoll、kqueue、devpoll、poll のサポートを無効にすることができます
または、環境変数 EVENT_NOEPOLL を設定して選択します。
EVENT_NOKQUEUE、EVENT_NODEVPOLL、EVENT_NOPOLL、または EVENT_NOSELECT、


環境変数 EVENT_SHOW_METHOD を設定することで、libevent
使用するカーネル通知メソッドを表示します。

onworks.net サービスを使用してオンラインで pgbouncer を使用する



最新のLinuxおよびWindowsオンラインプログラム