5.11. ストリーミングレプリケーションのチェック

Pgpool-IIPostgreSQL 9.0から利用可能になったPostgreSQL組み込みのストリーミングレプリケーション機能と一緒に動作することができます。 ストリーミングレプリケーション向けにPgpool-IIを設定するには、master_slave_modeを有効にしてmaster_slave_sub_mode'stream'に設定します。

Pgpool-IIではストリーミングレプリケーションとHot Standbyを併用することを前提にしています。 すなわちスタンバイデータベースでは参照クエリのみを扱うことができます。

sr_check_period (integer)

ストリーミングレプリケーションの遅延チェックの間隔を秒単位で指定します。 デフォルト値は0で、これはチェックを行わないことを意味します

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

sr_check_user (string)

ストリーミングレプリケーションのチェックを行うPostgreSQLユーザ名を指定します。 このユーザはLOGIN権限を持ち、すべてのバックエンドに存在しなければなりません。

SSLが有効なら、ストリーミングレプリケーションチェックプロセスはSSL接続を使うかもしれません。

注意: sr_check_usersr_check_passwordは、sr_check_periodが0 (無効)の場合でもプライマリサー バの特定のために使用されます。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

sr_check_password (string)

ストリーミングレプリケーションのチェックを行うsr_check_user PostgreSQLユーザのパスワードを指定します。 ユーザがパスワードが必要としなければ空文字('')を使用します。

sr_check_passwordが空のままの場合、 Pgpool-IIは空のパスワードを使用する前にまずpool_passwdファイルからsr_check_userのパスワードを取得できるか試みます。

sr_check_passwordは以下の書式で指定します。

AES256-CBC暗号化パスワード

パスワードを格納する最もセキュアで推奨できる方法です。 パスワード文字列はAESで始まっていなければなりません。 pg_encユーティリティを使って正しくAESで暗号化された文字列を作ることができます。 Pgpool-IIは暗号化されたパスワードを使うために起動時に有効な復号鍵を要求します。 Pgpool-IIに復号鍵を提供する方法の詳細は項6.4.2を参照してください。

MD5ハッシュパスワード

AESほどはセキュアではありませんが、平文パスワードよりは良いです。 パスワード文字列はMD5で始まっていなければなりません。 バックエンドにはMD5認証を設定しなければならないことに注意してください。 pg_md5ユーティリティを使って正しいMD5ハッシュパワード文字列を作ることができます。

平文パスワード

暗号化されていない平分のパスワードです。 可能ならば使用を避けるべきです。 パスワード文字列はTEXTで始まっていなければなりません。 例えば、パスワードとしてmypassを設定したい場合、パスワードフィールドにTEXTmypassと指定します。 有効な接頭辞がない場合、Pgpool-IIは平文のパスワードとして文字列を見なします。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

sr_check_database (string)

ストリーミングレプリケーションの遅延チェックを行うデータベース名を指定します。 デフォルトは「postgres」です。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

delay_threshold (integer)

プライマリサーバに対するスタンバイサーバのレプリケーション遅延の許容度をWALバイト単位で指定します。 Pgpool-IIは、スタンバイサーバの遅延がこの設定レベルを超えた場合には、 load_balance_modeが有効であっても、プライマリに追いつくまでそのスタンバイノードにはSELECTクエリを送信せず、全てプライマリサーバに送るようにします。 このパラメータが0の場合は、遅延のチェックを行ないません。 この遅延閾値のチェックはsr_check_period毎に行われます。 デフォルト値は0です。

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。

log_standby_delay (string)

レプリケーションの遅延状況をログ出力する条件を指定します。 以下の表にこのパラメータでとることができる値のリストを示します。

表 5-9. スタンバイ遅延のログ出力オプション

説明
'none'スタンバイの遅延はログ出力されない (デフォルト)
'always'スタンバイの遅延が0より大きければ、レプリケーション遅延がチェックされる度に、スタンバイの遅延がログ出力される
'if_over_threshold'delay_thresholdの値を超えた時だけ、スタンバイの遅延がログ出力される

このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。