pcp_node_info

名前

pcp_node_info --  指定されたノードの情報を表示する

概要

pcp_node_info [option...] [node_id]

説明

pcp_node_info 指定されたノードの情報を表示します。

オプション

-n node_id
--node-id=node_id

情報を表示するバックエンドノードのインデックスを指定します。

-a
--all

すべてのバックエンドノードの情報を表示します。

その他

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以降。pg_isreadyで取得)
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] までの数字で表わされます。各数字の意味は以下のとおりです。

4 (ロードバランスウェイト)は0から1に正規化されたフォーマットで出力されます。

6は実際のバックエンドの状態をリアルタイムで取得して表示します。 情報の取得は、このコマンドが実行された時にPQpingParamsを呼び出すことによって行われます。 PQpingParamsPostgreSQL 9.1以降でのみサポートされています。 Pgpool-IIPostgreSQL 9.0以前とともに構築されると、この列は"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_userPostgreSQLのスーパーユーザーであるか、"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_userPostgreSQLのスーパーユーザーでなければなりません。

-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