情報を表示するバックエンドノードのインデックスを指定します。
すべてのバックエンドノードの情報を表示します。
pcp_common_options を参照してください。
ここでは例を示します。
$ pcp_node_info -w -p 11001 -n 1 /tmp 11003 1 0.500000 waiting up standby standby 0 streaming async 2021-02-27 14:51:30
結果は以下の順のとおりです。
1. ノードのホスト名 2. ノードのポート番号 3. ステータス 4. ロードバランスウェイト 5. バックエンド状態名 6. 実際のバックエンドの状態 (Pgpool-II 4.3以降。PQpingParamsで取得) 7. バックエンドの役割 8. 実際のバックエンドの役割(Pgpool-II 4.3以降。pg_is_in_recoveryで取得) 9. レプリケーションの遅延 10. レプリケーション状態 (Pgpool-II 4.1以降。pg_stat_replicationから取得) 11. 同期レプリケーション状態 (Pgpool-II 4.1以降。pg_stat_replicationから取得) 12. 最終ステータス変更時刻
3 (ステータス)は [0..3] までの数字で表わされます。各数字の意味は以下のとおりです。
0 - 初期化時のみに表われる。PCP コマンドで表示されることはない。
1 - ノード稼働中。接続無し
2 - ノード稼働中。接続有り
3 - ノードダウン
4 (ロードバランスウェイト)は0から1に正規化されたフォーマットで出力されます。
6は実際のバックエンドの状態をリアルタイムで取得して表示します。
情報の取得は、このコマンドが実行された時にPQpingParams
を呼び出すことによって行われます。
PQpingParams
はPostgreSQL 9.1以降でのみサポートされています。
Pgpool-IIがPostgreSQL 9.0以前とともに構築されると、この列は"unknown"と表示されます。
また、ヘルスチェックが無効になっている場合も"unknown"と表示されます。
pcp_detach_nodeでバックエンドノードを切り離すと、Pgpool-IIが管理する状態は"down"になりますが、バックエンドの実際の状態は"up"なので、5と6が一致しないことはあり得ます。
逆に、5が"up"なのに、6が"down"というのは起こらないはずです。
8は実際のバックエンドの状態をリアルタイムで取得して表示します。
その結果はストリーミングレプリケーションモードでは、"primary"か"standby"ですが、情報が取得できなければ"unknown"と表示します。
Pgpool-IIはノードID順にバックエンドノードを調べ、最後に見つけたスタンバイ以外のノードをプライマリとするので、誤ってスタンバイ以外のノードが複数できたときなどには、7と8が一致しないことはありえます。
(このコマンドはそのような状態を見つけるのに役立ちます。)
それ以外のモードでは、"main"あるいは"replica"と表示されます。
ストリーミングレプリケーションモードと違って、pg_is_in_recovery
は呼び出されず、7と8が異なる値になることはありません。
9, 10, 11は、sr_check_periodが0以外でなければ正しく表示されません。 また、10, 11は、sr_check_userがPostgreSQLのスーパーユーザーであるか、"pg_monitor"グループに所属していなけれ正しく表示されません。
注意: sr_check_userをpg_monitorグループに所属させるには、以下のSQLコマンドをPostgreSQLスーパーユーザーで実行してください("sr_check_user"をsr_check_userの設定値で置き換えてください)
GRANT pg_monitor TO sr_check_user;PostgreSQL 9.6にはpg_monitorグループがないので、sr_check_userはPostgreSQLのスーパーユーザーでなければなりません。
-aまたは --allオプションはすべてのバックエンドノードの情報を表示します。
$ pcp_node_info -w -p 11001 -a /tmp 11002 1 0.500000 waiting up primary primary 0 none none 2021-02-27 14:51:30 /tmp 11003 1 0.500000 waiting up standby standby 0 streaming async 2021-02-27 14:51:30
--verbose オプションは出力内容を理解するのに役に立ちます。例を示します:
$ pcp_node_info -w -p 11001 --verbose 1 Hostname : /tmp Port : 11003 Status : 1 Weight : 0.500000 Status Name : waiting Backend Status Name : up Role : standby Backend Role : standby Replication Delay : 0 Replication State : streaming Replication Sync State : async Last Status Change : 2021-02-27 14:51:30