V. pgpool_admエクステンション

pgpool_admは、参照II, PCP コマンド (実際には, pcp ライブラリ)にアクセスできるようにするための一連のエクステンションです。

図 1. pgpool_admが動く仕組み

Pgpool-II経由でも(1)、あるいは直接PostgreSQLに対しても(2)、関数を呼び出すことができます。 (1)の場合には、Pgpool-IIはユーザからクエリを受け付け(1)、PostgreSQLに転送します(3)。 PostgreSQLは、Pgpool-IIに接続し(5)、Pgpool-IIPostgreSQLに(3)の結果を返します。 PostgreSQLPgpool-IIに結果を返し(5)、Pgpool-IIはそのデータをユーザに転送します(6)。

(2)の場合には、PostgreSQLがクエリをユーザから受け付けます(2)。 PostgreSQLPgpool-IIに接続し(5)、Pgpool-IIPostgreSQLに(3)の結果を返します。 PostgreSQLはそのデータをユーザに返します(4)。

pgpool_adm関数の呼び出し形式は2種類あります。 最初の形式はPgpool-IIのホスト名(またはIPアドレス)、pcpポート番号、pcpユーザ名、パスワード、それ以外のパラメータです。

2番目の形式では、Pgpool-IIサーバ名が必要になります。 サーバ名はPostgreSQLの"CREATE FOREIGN SERVER"コマンドで定義済みでなければなりません。 pcpポート番号は9898に固定されています。 pcpユーザ名は、呼び出し元のPostgreSQLユーザ名と同じであると見なされます。 パスワードは$HOME/.pcppassから取得します。

1. pgpool_admのインストール

pgpool_admはエクステンションであり、すべてのPostgreSQLサーバにインストールする必要があります。

      $ cd src/sql/pgpool_adm
      $ make
      $ make install
     

次のSQLコマンドをアクセスしたいすべてのデータベースに発行します。

      $ psql ...
      $ CREATE EXTENSION pgpool_adm
     

目次
pgpool_adm_pcp_node_info --  指定ノードIDの情報を表示する関数
pgpool_adm_pcp_pool_status --  pgpool.confのパラメータを取得する関数
pgpool_adm_pcp_node_count --  ノード数を取得する関数
pgpool_adm_pcp_attach_node --  指定ノードをアタッチする関数
pgpool_adm_pcp_detach_node --  指定ノードをデタッチする関数