From 6094b9ff91f4ff9315fd781906bc0cfddf26b99f Mon Sep 17 00:00:00 2001 From: Tatsuo Ishii Date: Fri, 31 Oct 2008 04:28:18 +0000 Subject: [PATCH] Bug fix and enhancements from Matsusaka regarding help and styles --- doc/screen.css | 2 +- lang/en.lang.php | 1 + lang/ja.lang.php | 19 +- queryCache.php | 2 +- templates/help/en/pgconfig.tpl | 75 +++++- templates/help/ja/pgconfig.tpl | 480 +++++++++++++++++++++------------ templates/pgconfig.tpl | 97 +++---- 7 files changed, 433 insertions(+), 243 deletions(-) diff --git a/doc/screen.css b/doc/screen.css index 1a13d7b..f28407f 100644 --- a/doc/screen.css +++ b/doc/screen.css @@ -8,7 +8,7 @@ h1 { h2 { padding-bottom: 4px; border-bottom: 1px solid red; - color: red; + color: blue; font-size: small; } h3 { diff --git a/lang/en.lang.php b/lang/en.lang.php index 550b400..a68fd2e 100644 --- a/lang/en.lang.php +++ b/lang/en.lang.php @@ -262,6 +262,7 @@ $message = array( 'e6003' => 'Could not write to pcp.conf. ', 'e7001' => 'pcp.conf not found.', 'e8001' => 'Detailed information cannot be acquired.', + 'cautionaryNote' => 'NOTE: Updated to reflect the settings, the settings are required to reload. Also, [*] has pgpool items will be required to restart.', ); diff --git a/lang/ja.lang.php b/lang/ja.lang.php index 94791d0..b35809e 100644 --- a/lang/ja.lang.php +++ b/lang/ja.lang.php @@ -35,22 +35,22 @@ $message = array( 'descChild_max_connections' => '各pgpool子プロセスが終了するまでの接続回数', 'descClient_idle_limit' => 'クライアントからのクエリの最大待ち時間(秒)', 'descAuthentication_timeout' => 'クライアント認証のタイムアウト時間(秒)', - 'descConnection_cache' => 'コネクションをキャッシュ', + 'descConnection_cache' => 'コネクションキャッシュ機能の有無', 'descConnection_life_time' => 'コネクションプール中のコネクションの有効期間(秒)', - 'descEnable_pool_hba' => 'クライアント認証機能を有効にする', - 'descEnable_query_cache' => 'クエリキャッシュ機能を有効にする', + 'descEnable_pool_hba' => 'クライアント認証機能の有無', + 'descEnable_query_cache' => 'クエリキャッシュ機能の有無', 'descFailover_command' => 'ノード切り離し時に起動するコマンド', 'descFailback_command' => 'ノード復帰時に起動するコマンド', 'descHealth_check_period' => 'ヘルスチェックを行う間隔(秒)', 'descHealth_check_timeout' => 'ヘルスチェックが長時間待たされるのを防ぐためのタイムアウト値(秒)', 'descHealth_check_user' => 'ヘルスチェックを行うためのPostgreSQLユーザ名', - 'descIgnore_leading_white_space' => 'trueならば、load balanceの際にSQL文行頭の空白を無視', + 'descIgnore_leading_white_space' => 'load balance時のSQL文行頭の空白を無視', 'descInsert_lock' => '自動的にトランザクションの開始,テーブルロック,トランザクションの終了', 'descListen_addresses' => 'TCP/IPコネクションを受け付けるアドレス', 'descLoad_balance_mode' => 'レプリケーションモード時にSELECT文を各ノードにロードバランス', - 'descLog_connections' => 'trueならば受信した接続のログを出力', - 'descLog_hostname' => 'trueならばクライアントのホスト名を"ps"ステータスに出力。log_connectionsがtrue であればログにも出力', - 'descLog_statement' => 'trueならばSQL文をログ出力', + 'descLog_connections' => '受信した接続のログを出力', + 'descLog_hostname' => 'クライアントのホスト名を"ps"ステータスに出力', + 'descLog_statement' => 'SQL文をログ出力', 'descLogdir' => 'pgpoolの各種ログファイルを格納するディレクトリ', 'descMaster_slave_mode' => 'マスタ/スレーブモードでpgpoolを運転', 'descMax_pool' => 'pgpoolの各サーバプロセスがキープするPostgreSQLへの最大コネクション数', @@ -68,8 +68,8 @@ $message = array( 'descRecovery_2nd_stage_command' => 'オンラインリカバリ第2ステージで実行するコマンド', 'descRecovery_timeout' => 'オンラインリカバリ終了までの待ち時間(秒)。0 は待ち時間無し', 'descReplication_mode' => 'レプリケーションモードの有効化', - 'descReplication_stop_on_mismatch' => 'trueを指定するとマスタとセカンダリの間でデータの不一致があった場合に強制的に縮退運転', - 'descReplicate_select' => 'true ならば SELECT をレプリケーションし、false ならばマスタにのみ送信', + 'descReplication_stop_on_mismatch' => 'マスタ/セカンダリ間のデータ不一致時に縮退運転', + 'descReplicate_select' => 'SELECT 文のレプリケーション', 'descReplication_timeout' => 'デッドロックを監視するためのタイムアウト時間', 'descReset_query_list' => 'セッションが終了するときにコネクションを初期化するためのSQLコマンド', 'descSocket_dir' => 'pgpoolがコネクションを受け付けるUnix domain socketディレクトリ', @@ -265,6 +265,7 @@ $message = array( 'e6003' => 'pcp.confに書き込みができません', 'e7001' => 'pcp.confが見つかりません', 'e8001' => '詳細情報が取得できません', + 'cautionaryNote' => '注: 更新した設定を反映させるには、設定のリロードが必要です。また、[*]が付いている項目は pgpool の再起動が必要となります。', ); diff --git a/queryCache.php b/queryCache.php index 5c82f18..83f6ed1 100644 --- a/queryCache.php +++ b/queryCache.php @@ -74,7 +74,7 @@ if($conn == false) { $errorCode = 'e2001'; $tpl->assign('errorCode', $errorCode); $tpl->display('error.tpl'); - exit(); +# exit(); } if($action == 'delete') { diff --git a/templates/help/en/pgconfig.tpl b/templates/help/en/pgconfig.tpl index f4d116f..2406a4c 100644 --- a/templates/help/en/pgconfig.tpl +++ b/templates/help/en/pgconfig.tpl @@ -91,6 +91,16 @@ number of connection pools each pgpool server process are keeping. pgpool will m
child_max_connections (integer) If child_max_connections connections were received, child exits. 0 means no exit. The default value is 0. + + +
client_idle_limit (integer) + Queries from clients, in seconds, the maximum waiting time can be set. The default value is 0 (no effect). Did not receive a query within a set time, you force the connection disconnected. The waiting time is running command is not included in the command does not have to worry about orphaned. + + + +
authentication_timeout (integer) + The parameters of the authentication timeout to set time. +
connection_cache @@ -135,6 +145,10 @@ number of connection pools each pgpool server process are keeping. pgpool will m
backend_weight (integer) The weight at the load balance mode is set by the value from 0 to 1. Relative weight is calculated and distributed from the value specified with all the back end servers. + + +
backend_data_directory (string) + PostgreSQL database server in the cluster to specify the full path location. @@ -188,6 +202,22 @@ number of connection pools each pgpool server process are keeping. pgpool will m
print_timestamp If true timestamp is added to each log line. Default value is true. + +
log_statement + If true, SQL statement logs. +
The role of the PostgreSQL log_statement options are similar, there is no option when you debug logging, but the inquiry be useful to examine. + + + +
log_connections + If true, pgpool connect to the information in the log output. The default is false. + + + +
log_hostname + If true, the original host name in the log describes the connection. However, to resolve a name that takes overhead. + + @@ -219,6 +249,11 @@ number of connection pools each pgpool server process are keeping. pgpool will m
replication_stop_on_mismatch Stop replication mode on data mismatch between master and secondary. Default is false. + + +
replicate_select + If true, "SELECT" sent to multiple end-to-back, false, you want to send only to master. The default is false. +
reset_query_list (string) @@ -403,16 +438,40 @@ automatically do the rewriting for you.
parallel_mode When pgpool runs on parallel mode, true is specified. It is necessary to specify a partitioning rule in this case. - - -
log_statement - If true, print all statements to the log. Like the log_statement option to PostgreSQL, this allows for observing queries without engaging in full debugging. - -
enable_query_cache - When the result of SELECT is cached, it makes it to true. - +
enable_query_cache + When the result of SELECT is cached, it makes it to true. + + + +
enable_pool_hba + "pg_hba.conf" in the same format as "pgpool" to allow the connection, you can refuse. However, hostssl connection, a designated group, IPv6 statement is not supported. In addition, the certification system as "trust", "reject", "pam" is supported only. + + + +
failover_command + This is specified in the command, the node is automatically cut off when the runs. For example, when abnormalities were detected in the automatic start of standby and can be used when you do. +
And specify a special character, "pgpool" replaced with the information they need to run the command. +
 %d: Backend ID of a detached node. +
 %h: Hostname of a detached node. +
 %p: Port number of a detached node. +
 %D: Database cluster directory of a detached node. +
 %%: '%' character + + + + +
failback_command + This is specified in the command, returned to the node will be run automatically. For example, the system automatically return to standby and can be used to convey. +
And specify a special character, "pgpool" replaced with the information they need to run the command. +
 %d: Backend ID of an attached node. +
 %h: Hostname of an attached node. +
 %p: Port number of an attached node. +
 %D: Database cluster path of an attached node. +
 %%: '%' character + + diff --git a/templates/help/ja/pgconfig.tpl b/templates/help/ja/pgconfig.tpl index 84a2132..4218be6 100644 --- a/templates/help/ja/pgconfig.tpl +++ b/templates/help/ja/pgconfig.tpl @@ -18,7 +18,9 @@

{$message.strSummary|escape}

pgpoolの設定ファイルであるpgpool.confの設定内容を表示・変更することができます。

{$message.strFeature|escape}

- 変更したい値を入力して更新ボタンを押してください。 + 変更したい値を入力して更新ボタンを押してください。
+ 更新した設定を反映させるには、設定のリロードが必要です。また、[*]が付いている項目は、設定を反映させるために pgpool の再起動が必要となります。 + 

バックエンドホストの追加

新しいバックエンドホストを追加したい場合には、追加ボタンを押してください。
バックエンドホストの項目に新しい入力欄ができますので、そこに新しいバックエンドホストの情報を入力してください。
@@ -37,14 +39,16 @@
  • Health Check
  • Online Recovery
  • System Database
  • +
  • Others
  • +

    Connections

    - + @@ -52,69 +56,108 @@ - - - +
    port (integer) * + - - +
    socket_dir (string) * + - - +
    num_init_children (integer) * + - - +
    max_pool (integer) * + - + - - + + - - + + + + + + + + + - +
    connection_cache (bool) * + - - +
    pgpool2_hostname (string) * + - @@ -123,8 +166,7 @@ TCP/IPコネクションを受け付けるアドレスをホスト名またはIP
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}
    -
    listen_addresses (string)
    -TCP/IPコネクションを受け付けるアドレスをホスト名またはIPアドレスで指定します。「*」を指定するとすべてのIPインタフェースからのコネクションを受け付けます。「''」を指定するとTCP/IPコネクションを受け付けま -せん。デフォルト値は「localhost」です。
    UNIXドメインソケット経由のコネクションは常に受け付けます。 +
    listen_addresses (string) * +
    TCP/IP コネクションを受け付けるアドレスをホスト名または IP アドレスで指定します。 + 「*」を指定するとすべての IP インタフェースからのコネクションを受け付けます。 + 「''」を指定すると TCP/IP コネクションを受け付けません。 + UNIX ドメインソケット経由のコネクションは常に受け付けます。 +
    デフォルト値は localhost です。
    -
    port (integer)
    pgpoolがコネクションを受け付けるポート番号です。デフォルト値は9999ですpgpoolがコネクションを受け付けるポート番号です。 +
    デフォルト値は 9999 です。 +
    -
    socket_dir (string)
    PostgreSQLサーバのUnix domain socketのディレクトリです。デフォルト値は'/tmp'です。PostgreSQL サーバの Unix domain socket のディレクトリです。 +
    デフォルト値は '/tmp' です。 +
    -
    num_init_children (integer)
    preforkするpgpoolのサーバプロセスの数です。デフォルト値は32になっています。
    -なお、問い合わせのキャンセルを行うと通常のコネクションとは別に新たなコネクションが張られます。したがって、すべてのコネクションが使用中の場合は問い合わせのキャンセルができなくってしまうので、ご注意下 - さい。問い合わせのキャンセルを必ず保証したい場合は、想定されるコネクション数の倍の値を設定することをおすすめします。
    prefork する pgpool のサーバプロセスの数です。 + 問い合わせのキャンセルを行うと通常のコネクションとは別に新たなコネクションが張られます。 + 従って、全てのコネクションが使用中の場合は問い合わせのキャンセルができなくってしまうので、ご注意下さい。 + 問い合わせのキャンセルを必ず保証したい場合は、想定されるコネクション数の倍の値を設定することをおすすめします。 +
    デフォルト値は 32 です。 +
    -
    max_pool (integer)
    pgpoolの各サーバプロセスがキープするPostgreSQLへの最大コネクション数です。pgpoolは、ユーザ名、データベースが同じならばコネクションを再利用しますが、そうでなければ新たにPostgreSQLへのコネクションを確立しようとします。したがって、ここでは想定される[ユーザ名:データベース名]のペアの種類の数だけをmax_poolに指定しておく必要があります。もしmax_poolを使いきってしまった場合は一番古いコネクションを切断し、そのスロットが再利用されます。
    max_poolのデフォルト値は4です。
    なお、pgpool全体としては、num_init_children*max_pool 分だけPostgreSQLへのコネクションが張られる点に注意してください
    pgpool の各サーバプロセスがキープする PostgreSQL への最大コネクション数です。 + pgpool は、ユーザ名、データベースが同じならばコネクションを再利用しますが、 + そうでなければ、新たに PostgreSQL へのコネクションを確立しようとします。 + 従って、ここでは想定される [ユーザ名:データベース名] のペアの種類の数だけを max_pool に指定しておく必要があります。 + もし max_pool を使いきってしまった場合は一番古いコネクションを切断し、そのスロットが再利用されます。 +
    なお、pgpool全体としては、num_init_children * max_pool 分だけ PostgreSQL へのコネクションが張られる点に注意してください。 +
    デフォルト値は 4 です。 +

    child_life_time (integer)
    pgpoolの子プロセスの寿命です。アイドル状態になってからchild_life_time秒経過すると、一旦終了して新しいプロセスを起動します。メモリーリークその他の障害に備えた予防措置です。child_life_timeのデフォルト値は300秒、すなわち5分です。0を指定するとこの機能は働きません(すなわち起動しっ放し)。なお、まだ一度もコネクションを受け付けていないプロセスにはchild_life_timeは適用されません。pgpool の子プロセスの寿命です。 + アイドル状態になってから child_life_time 秒経過すると、一旦終了して新しいプロセスを起動します。 + メモリーリークその他の障害に備えた予防措置です。 + なお、まだ一度もコネクションを受け付けていないプロセスには child_life_time は適用されません。 +
    デフォルト値は 300秒(5分)です。0を指定するとこの機能は動作しません。 +

    connection_life_time (integer)
    コネクションプール中のコネクションの有効期間を秒単位で指定します。0を指定すると有効期間は無限になります。connection_life_timeのデフォルト値は0です。コネクションプール中のコネクションの有効期間を秒単位で指定します。 +
    デフォルト値は 0 です。0を指定すると有効期間は無限になります。 +

    child_max_connections (integer)
    各pgpool子プロセスへの接続回数がこの設定値を超えると、その子プロセスを終了します。child_life_timeやconnection_life_timeが効かないくらい忙しいサーバで、PostgreSQLバックエンドが肥大化するのを防ぐのに有効です。各 pgpool 子プロセスへの接続回数がこの設定値を超えると、その子プロセスを終了します。 + child_life_time や connection_life_time が効かないくらい忙しいサーバで、 + PostgreSQL バックエンドが肥大化するのを防ぐのに有効です。 +
    デフォルト値は 0(無効) です。 +
    +
    client_idle_limit (integer)
    前回クライアントから来たクエリから、client_idle_limit 秒越えても次のクエリが届かない場合は、 + クライアントへの接続を強制的に切断し、クライアントからの次のコネクションを待つようにします。 +
    デフォルト値は 0(無効) です。 +
    +
    authentication_timeout (integer)
    認証処理のタイムアウト時間を秒単位で指定します。 +
    デフォルト値は 60 です。0 を指定するとタイムアウトを無効にします。 +
    -
    connection_cache
    trueならコネクションをキャッシュします。デフォルトはtrueです。true の時にコネクションをキャッシュします。 +
    デフォルトは true です。 +
    -
    pgpool2_hostname (string)
    pgpool2が稼働しているホスト名を指定します。pgpool2 が稼働しているホスト名を指定します。 +
    デフォルトでは設定されていません。 +
    - - + @@ -132,32 +174,48 @@ TCP/IPコネクションを受け付けるアドレスをホスト名またはIP - +
    backend_socket_dir (string) * + - - + + - - - + + - - - - - - - + + + + + + + + + + + + + + +
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}
    -
    backend_socket_dir (string)
    PostgreSQLサーバのUnix domain socketのディレクトリです。デフォルト値は'/tmp'です。PostgreSQL サーバの Unix domain socket のディレクトリです。 +
    デフォルト値は'/tmp'です。
    -
    backend_hostname (string)
    postmasterが稼働しているホスト名を指定します。指定しない場合にはUnix domain socketで接続します。 +
    backend_hostname (string)
    postmaster が稼働しているホスト名を指定します。指定しない場合には Unix domain socket で接続します。 +
    -
    backend_port (integer)
    +
    backend_port (integer)
    postmasterが稼働しているポート番号です。

    backend_weight (integer)
    ロードバランスモード時に振り分ける重みを0から1の値で設定します。すべてのバックエンドサーバで指定した値から相対的な重みを計算して振り分けます。
    +
    backend_weight (integer)
    ロードバランスモード時に振り分ける重みを0から1の値で設定します。 + すべてのバックエンドサーバで指定した値から相対的な重みを計算して振り分けます。
    +
    backend_data_directory (string)
    使用する PostgreSQL サーバのデータベースクラスタのパスを指定します。 + 実際には、"backend_data_directory" の後にDBノードIDを付加して使用する複数の PostgreSQL を区別します。 + このパラメータはオンラインリカバリの際に使用します。 + オンラインリカバリを使用しない場合には設定する必要はありません。
    +

    PCP (pgpool Control Port)

    - + @@ -165,26 +223,27 @@ TCP/IPコネクションを受け付けるアドレスをホスト名またはIP - - +
    pcp_port (integer) * + - +
    pcp_socket_dir (string) * + - - +
    pcp_timeout (integer) * + -
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}
    -
    pcp_port (integer)
    PCPに接続するためのポート番号です。デフォルトは9898です。PCP に接続するためのポート番号です。 +
    デフォルトは9898です。
    -
    pcp_socket_dir (string)
    PCPのUnix domain socketのディレクトリです。デフォルト値は'/tmp'です。PCP の Unix domain socket のディレクトリを指定します。 +
    デフォルト値は'/tmp'です。
    -
    pcp_timeout (integer)
    PCPコマンドのタイムアウトを設定します。この時間の間に応答がない場合にはコネクションを切断します。PCPコマンドのタイムアウトを設定します。 + この時間の間に応答がない場合にはコネクションを切断します。 +
    デフォルトは10です。
    @@ -192,23 +251,49 @@ TCP/IPコネクションを受け付けるアドレスをホスト名またはIP - - + - - +
    logdir (string) * + - - +
    print_timestamp * + + + + + + + + + + + + + + @@ -222,7 +307,7 @@ TCP/IPコネクションを受け付けるアドレスをホスト名またはIP
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}
    -
    logdir (string)
    pgpoolの各種ログファイルを格納するディレクトリです。現在のところ、pgpool.pidというプロセスIDを格納するファイルだけが作られるようになっています。logdirのデフォルト値は'/tmp'です。pgpoolの各種ログファイルを格納するディレクトリです。 + 現在のところ、pgpool.pid というプロセスIDを格納するファイルだけが作られるようになっています。 +
    デフォルト値は'/tmp'です。
    -
    print_timestamp
    trueならばpgpoolのログにタイムスタンプを追加します。デフォルトはtrueです。
    true ならば pgpool のログにタイムスタンプを追加します。 +
    デフォルトは true です。
    +
    log_statement
    true の時、SQL 文をログ出力します。 + この役目は PostgreSQL の log_statement オプションと似ており、 + デバッグオプションがないときでも問い合わせをログ出力して調べることができるので便利です。 +
    デフォルト値は false です。 +
    +
    log_connections
    true の時、クライアントから受信した接続ごとにログを出力します。 +
    デフォルト値は false です。 +
    +
    log_hostname
    true の時、クライアントのホスト名を "ps" コマンドの結果に出力します。 + また log_connections が有効になっている場合、クライアントから受信した接続のログと一緒にホスト名も出力されます。 + ただしホスト名の探索には負荷がかかりますので、有効にする場合には注意してください。 +
    デフォルト値は false です。 +
    - + @@ -230,27 +315,37 @@ TCP/IPコネクションを受け付けるアドレスをホスト名またはIP - +
    replication_mode * + - - - + + - - - + + + + + + - @@ -266,7 +361,7 @@ PostgreSQLのバージョンによって使用できるSQLコマンドが違う
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}
    -
    replication_mode
    レプリケーションモードで動作させる場合はtrueを指定してください。デフォルト値はfalseです。レプリケーションモードで動作させる場合は true を指定してください。 +
    デフォルト値は false です。

    replication_timeout (integer)
    ノード間でのデッドロックを監視するためのタイムアウト時間をミリ秒単位で指定します。デフォルト値は5000、すなわち5秒です。0を指定するとタイムアウトしなくなります。
    デットロックを監視するためのタイムアウト時間をミリ秒単位で指定します。 +
    デフォルト値は 5000 (5秒)です。
    -
    replication_stop_on_mismatch
    trueを指定するとマスタとセカンダリの間でデータの不一致があった場合に強制的に縮退運転に入ります。このオプションがfalseの場合は、該当の問い合わせを強制的に終了するだけに留めます。デフォルト値はfalseです。
    true の場合、マスタとセカンダリの間で、データの不一致があった場合に強制的に縮退運転に入ります。 + false の場合には、該当の問い合わせを強制的に終了するだけに留めます。 +
    デフォルト値は false です。
    +
    replicate_select
    true 場合に設定するとロードバランスされない SELECT 文をレプリケーションさせます。 +
    デフォルト値は false です。

    reset_query_list (string)
    セッションが終了するときにコネクションを初期化するためのSQLコマンドを「;」で区切って列挙します。デフォルトは以下のようになっていますが、任意のSQL文を追加しても構いません。 -

    reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'

    -PostgreSQLのバージョンによって使用できるSQLコマンドが違うので、PostgreSQL 7.3以前では注意してください(「4. pgpoolの稼働環境」参照)。
    なお、「ABORT」は、PostgreSQL 7.4以上ではトランザクションブロックの中にいない場合には発行されません。 +
    セッションが終了するときにコネクションを初期化するための SQL コマンドを「;」で区切って列挙します。 +
    デフォルト値は以下のようになっていますが、任意の SQL文を追加しても構いません。 +

    reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'

    + PostgreSQL のバージョンによって使用できる SQLコマンドが違うので、 + PostgreSQL 7.3 以前では注意してください(「4. pgpoolの稼働環境」参照)。 +
    なお、「ABORT」は、PostgreSQL 7.4以上ではトランザクションブロックの中にいない場合には発行されません。
    - + @@ -275,20 +370,28 @@ PostgreSQLのバージョンによって使用できるSQLコマンドが違う - + - - - + + - - + @@ -302,7 +405,7 @@ PostgreSQLのバージョンによって使用できるSQLコマンドが違う
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}

    health_check_timeout (integer)
    pgpoolはサーバ障害やネットワーク障害を検知するために、定期的にバックエンドに接続を試みます。これを「ヘルスチェック」と言います。障害が検知されると、フェイルオーバや縮退運転を試みます。
    この パラメータは、ネットワークケーブルが抜けた際などにヘルスチェックが長時間待たされるのを防ぐためのタイムアウト値を秒単位で指定します。デフォルトは20秒です。0を指定するとタイムアウト処理をしません。
    なお、ヘルスチェックを有効にすると、ヘルスチェックのための余分の接続が1つ必要になりますので、PostgreSQLのpostgresql.confの設定項目のmax_connectionsを少くとも1増やすようにしてください
    pgpool はサーバ障害やネットワーク障害を検知するために、定期的にバックエンドに接続を試みます。 + これを「ヘルスチェック」と言います。障害が検知されると、フェイルオーバや縮退運転を試みます。 +
    このパラメータは、ネットワークケーブルが抜けた際などにヘルスチェックが長時間待たされるのを + 防ぐためのタイムアウト値を秒単位で指定します。 +
    なお、ヘルスチェックを有効にすると、ヘルスチェックのための余分の接続が1つ必要になりますので、 + PostgreSQL の postgresql.conf の設定項目の max_connections を少くとも1増やすようにしてください。 +
    デフォルト値は20秒です。0を指定するとタイムアウト処理をしません。 +

    health_check_period (integer)
    ヘルスチェックを行う間隔を秒単位で指定します。0を指定するとヘルスチェックを行いません。デフォルトは0です(つまりヘルスチェックを行いません)。 -
    ヘルスチェックを行う間隔を秒単位で指定します。0を指定するとヘルスチェックを行いません。 +
    デフォルト値は0です。 +

    health_check_user (string)
    ヘルスチェックを行うためのPostgreSQLユーザ名です。ヘルスチェックを行うための PostgreSQL ユーザ名です。 +
    デフォルト値は 'nobody' です。 +
    - + @@ -310,46 +413,47 @@ PostgreSQLのバージョンによって使用できるSQLコマンドが違う - + - - + + - + - + - + @@ -362,42 +466,47 @@ PostgreSQLのバージョンによって使用できるSQLコマンドが違う
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}

    recovery_user (string)
    オンラインリカバリを行うための PostgreSQL ユーザ名です。オンラインリカバリを行うための PostgreSQL ユーザ名です。 +
    デフォルト値は 'nobody' です。

    recovery_password (string)
    オンラインリカバリを行うための PostgreSQL ユーザパスワードです。
    オンラインリカバリを行うための PostgreSQL ユーザパスワードです。 +
    デフォルト値は設定されていません。

    recovery_1st_stage_command (string)
    最初にオンラインリカバリ中に起動するコマンド名を - 指定します。コマンド ファイルはセキュリティ上の観点 - からデータベースクラスタ以下にあるコマ ンドやスクリ - プトのみを呼び出します。 例えば、 - recovery_1st_stage_command = 'sync-command' と設定し - てある場 合、$PGDATA/sync-command を起動しようとしま - す。 recovery_1st_stage_command を実行している間は - pgpool ではクライアン トからの接続を制限しません。参 - 照や更新を行うことができます。最初にオンラインリカバリ中に起動するコマンド名を指定します。 + コマンドファイルはセキュリティ上の観点からデータベースクラスタ以下にあるコマンドや + スクリプトのみを呼び出します。 +
    例えば、

    recovery_1st_stage_command = 'sync-command'

    と設定してある場合、 + $PGDATA/sync-command を起動しようとします。 + recovery_1st_stage_command を実行している間は pgpool ではクライアントからの接続を制限しません。 + 参照や更新を行うことができます。 +
    デフォルト値は設定されていません。

    recovery_2nd_stage_command (string)
    2 回目のオンラインリカバリ中に起動するコマンド名 - を指定します。コマン ドファイルはセキュリティ上の観 - 点からデータベースクラスタ以下にあるコ マンドやスク - リプトのみを呼び出します。 例えば、 - recovery_2nd_stage_command = 'sync-command' と設定し - てある場 合、$PGDATA/sync-command を起動しようとしま - す。 recovery_2nd_stage_command を実行している間は - pgpool ではクライアン トから接続、参照、更新処理を一 - 切受け付けません。また、バッチ 処理などによって接続 - しているクライアントが長時間存在している場合には コ - マンドを起動しません。接続を制限し、現在の接続数が 0 - になった時点 でコマンドを起動します。2 回目のオンラインリカバリ中に起動するコマンド名を指定します。 + コマンドファイルはセキュリティ上の観点からデータベースクラスタ以下にあるコマンドや + スクリプトのみを呼び出します。 +
    例えば、

    recovery_2nd_stage_command = 'sync-command'

    と設定してある場合、 + $PGDATA/sync-command を起動しようとします。 + recovery_2nd_stage_command を実行している間は pgpool ではクライアントから接続、参照、 + 更新処理を一切受け付けません。 + また、バッチ処理などによって接続しているクライアントが長時間存在している場合にはコマンドを起動しません。 + 接続を制限し、現在の接続数が 0 になった時点でコマンドを起動します。 +
    デフォルト値は設定されていません。

    recovery_timeout (integer)
    オンラインリカバリ処理の最大待ち時間を指定します。0 を指定すると待ち時間無しとなり、リカバリが一瞬で終了しない場合以外は失敗となります。オンラインリカバリ処理の最大待ち時間を指定します。 + 0 を指定すると待ち時間無しとなり、リカバリが一瞬で終了しない場合以外は失敗となります。 +
    デフォルト値は 90 です。
    - + - - +
    system_db_hostname (string) * + - - +
    system_db_port (integer) * + - +
    system_db_dbname (string) * + - +
    system_db_schema (string) * + - +
    system_db_user (string) * + - +
    system_db_password (string) * + @@ -411,7 +520,7 @@ PostgreSQLのバージョンによって使用できるSQLコマンドが違う
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}
    -
    system_db_hostname (string)
    システムDBが稼働しているホスト名を指定します。指定しない場合にはUnix domain socketで接続します。システム DB が稼働しているホスト名を指定します。 + 指定しない場合には Unix domain socket で接続します。 +
    デフォルト値は localhost です。
    -
    system_db_port (integer)
    システムDBがあるPostgreSQLに接続するためのポート番号を指定します。システム DB がある PostgreSQL に接続するためのポート番号を指定します。 +
    デフォルト値は 5432 です。
    -
    system_db_dbname (string)
    システムDBのデータベース名を指定します。システムDBのデータベース名を指定します。 +
    デフォルト値は pgpool です。
    -
    system_db_schema (string)
    システムDBのスキーマを指定します。システムDBのスキーマを指定します。 +
    デフォルト値は pgpool_catelog です。
    -
    system_db_user (string)
    システムDBに接続するユーザ名を指定します。システムDBに接続するユーザ名を指定します。 +
    デフォルト値は pgpool です。
    -
    system_db_password (string)
    システムDBに接続するユーザのパスワードを指定します。システムDBに接続するユーザのパスワードを指定します。 +
    デフォルト値は設定されていません。
    - + @@ -419,62 +528,80 @@ PostgreSQLのバージョンによって使用できるSQLコマンドが違う - - - +
    load_balance_mode * + + - - +
    master_slave_mode * + + - - - +
    insert_lock + + - - +
    ignore_leading_white_space + + - - - +
    parallel_mode * + + - - - - - - - +
    enable_query_cache * + + + + + + + + + + + + + + @@ -483,6 +610,7 @@ COMMIT;
    {$message.strParameter|escape}{$message.strParameter|escape} {$message.strDetail|escape}
    -
    load_balance_mode
    trueを指定するとレプリケーションモードの際に、SELECT文をマスタとセカンダリの間でロードバランスします。デフォルト値はfalseです
    レプリケーションモードの際に、SELECT 文をマスタとセカンダリの間でロードバランスします。 +
    デフォルト値は false です。
    -
    master_slave_mode
    trueならばマスタ/スレーブモードでpgpoolを運転します。デフォルトはfalseです。このモードはreplication_modeとは両立しません。
    true ならばマスタ/スレーブモードで pgpool を運転します。このモードは replication_mode とは両立できません。 +
    デフォルトは false です。
    -
    insert_lock
    -SERIAL型を使っているテーブルをレプリケーションすると、SERIAL型の列の値がマスタとセカンダリで一致しなくなることがあります。この問題は、該当テーブルを明示的にロックすることで回避できます(もちろんトランザ -クションの並列実行性は犠牲になりますが)。しかし、そのためには、 -

    -INSERT INTO ... -

    -

    -を -

    -

    -BEGIN;
    - -LOCK TABLE ...
    -INSERT INTO ...
    -COMMIT; -

    -

    - に書き換えなければなりません。insert_lockをtrueにすると自動的にトランザクションの開始、テーブルロック、トランザクションの終了を行ってくれるので、こうした手間を省くことができます(すでにトランザクションが開始されている場合はLOCK TABLE...だけが実行されます)。 - -

    SERIAL 型を使っているテーブルをレプリケーションすると、SERIAL 型の列の値がマスタとセカンダリで + 一致しなくなることがあります。この問題は、該当テーブルを明示的にロックすることで回避できます。 + (その場合、トランザクションの並列実行性は犠牲になります。) +
    しかし、そのためには、

    INSERT INTO ...

    を

    BEGIN;
    LOCK TABLE ...
    INSERT INTO ...
    COMMIT;

    + に書き換えなければなりません。 +
    insert_lock を true にすると自動的にトランザクションの開始、テーブルロック、トランザクションの終了を + 行ってくれるので、こうした手間を省くことができます。 + (すでにトランザクションが開始されている場合は LOCK TABLE... だけが実行されます。) +
    デフォルト値は false です。
    -
    ignore_leading_white_space
    trueならば、load balanceの際にSQL文行頭の空白を無視します(全角スペースは無視されません)。これは、DBI/DBD:Pgのように、勝手に行頭にホワイトスペースを追加するようなAPIを使い、ロードバランスしたいときに有効です
    true ならば、load balance の際にSQL文行頭の空白を無視します(全角スペースは無視されません)。 + これは、DBI/DBD:Pg のように、勝手に行頭にホワイトスペースを追加するような API を使い、 + ロードバランスしたいときに有効です。 +
    デフォルト値は true です。
    -
    parallel_mode
    pgpoolをパラレルモードで稼働させる場合にはtrueを指定します。この場合には分散ルールを指定する必要があります。
    pgpool をパラレルモードで稼働させる場合には true を指定します。 + この場合には分散ルールを指定する必要があります。 +
    デフォルト値は false です。
    -
    log_statement
    trueならばSQL文をログ出力します。この役目はPostgreSQLのlog_statementオプションと似ていて、デバッグオプションがないときでも問い合わせをログ出力して調べることができるので便利です。
    -
    enable_query_cache
    SELECTの結果をキャッシュする場合にはtrueにします。
    SELECT の結果をキャッシュする場合には true にします。 +
    デフォルト値は false です。
    +
    enable_pool_hba
    pool_hba.conf を使ったクライアント認証機能を有効にする場合には true にします。 +
    デフォルト値は false です。
    +
    failover_command
    ここで指定したコマンドは、ノードが切り離された際に自動的に実行されます。例えば、主系の異常を検出した際に待機系の起動を自動で行う際などに利用できます。 +
    特殊文字を指定すると、pgpool が必要な情報に置き換えてコマンドを実行します。 +
     %d: 切り離されたノード番号 +
     %h: 切り離されたノードのホスト名 +
     %p: 切り離されたノードのポート番号 +
     %D: 切り離されたノードのデータベースクラスタパス +
     %%: '%'文字 +
    デフォルトでは設定されていません。
    +
    failback_command
    ここで指定したコマンドは、ノードが復帰した際に自動的に実行されます。例えば、主系の復帰を自動で待機系に伝える際などに利用できます。 +
    特殊文字を指定すると、pgpool が必要な情報に置き換えてコマンドを実行します。 +
     %d: 復帰したノード番号 +
     %h: 復帰したノードのホスト名 +
     %p: 復帰したノードのポート番号 +
     %D: 復帰したノードのデータベースクラスタパス +
     %%: '%'文字 +
    デフォルトでは設定されていません。
    +