watchdog_setup

名前

watchdog_setup --  watchdog 機能を有効にした Pgpool-II クラスタのテスト環境を構築するツール

概要

watchdog_setup [option...]

説明

watchdog_setup はカレントディレクトリで、watchdog 機能を有効にした Pgpool-II とノード数が指定できる複数の PostgreSQL のクラスタテスト環境を構築するツールです。 カレントディレクトリは空である必要があります。

watchdog_setup はテストのために使うツールなので、 実際の業務システムで利用することはおすすめしません。また、heartbeat が使用されていないことにもご注意ください。

watchdog_setuppgpool_setup をベースとしたツールです。

現在、watchdog_setup は「ストリーミングレプリケーションモード」、「スナップショットアイソレーションモード」、「ネイティブレプリケーションモード」、「ロジカルレプリケーションモード」、及び「raw モード」に対応しています。

オプション

watchdog_setup は以下のコマンドライン引数を受け付けます:

-wn num_pgpool

Pgpool-II の数を指定します。 指定しない場合は 3 です。

-wp watchdog_base_port

Pgpool-IIPostgreSQL のベースとなるポート番号を指定します。 最初の Pgpool-II のポートは watchdog_base_port となります。 pcp のポートは watchdog_base_port + 1、watchdog のポートは watchdog_base_port + 2 となります。wd_heartbeat_port は watchdog_base_port + 3 (heartbeat が使われていない場合でも)。 1 番目の PostgreSQL ノードのポートは watchdog_base_port + 4、 2 番目の PostgreSQL ノードのポートは watchdog_base_port + 5 というようになります。

省略した場合、50000 が使われます。

-m mode

動作モードを指定します。moder (ネイティブレプリケーションモード)、i (スナップショットアイソレーションモード)、s (ストリーミングレプリケーションモード)、l (ロジカルレプリケーションモード)またはn (raw モード)を指定できます。 指定しない場合は、s (ストリーミングレプリケーションモード) が使われます。

-n num_clusters

PostgreSQL のノード数を指定します。指定しない場合は、ノード数が 2 です。

--no-stop

セットアップ終了後に Pgpool-II, PostgreSQL を終了しません。

-d

デバッグモードで Pgpool-II を起動します。

環境変数

watchdog_setup は以下の環境変数を使用します:

PGPOOL_SETUP

pgpool_setup コマンドへのパスを指定します。 デフォルトでは "pgpool_setup" であり、 pgpool_setup がコマンドサーチパスに入っていなければなりません。

PGPOOL_INSTALL_DIR

Pgpool-II のインストールディレクトリを指定します。 Pgpool-II バイナリーは PGPOOL_INSTALL_DIR/bin ディレクトリ以下、 pgpool.confpool_hba.conf などは PGPOOL_INSTALL_DIR/etc ディレクトリ以下にインストールされます。 デフォルトでは /usr/local ディレクトリ以下にインストールされます。

PGPOOLDIR

Pgpool-II 設定ファイルへのパスを指定します。 デフォルトでは PGPOOL_INSTALL_DIR/etc です。

PGBIN

initdb、pg_ctl と psql など PostgreSQL コマンドへのパスを指定します。 デフォルトでは、/usr/local/pgsql/bin です。

PGLIB

PostgreSQL の共有ライブラリへのパスを指定します。 デフォルトでは、/usr/local/pgsql/lib です。

PGSOCKET_DIR

Unix ソケットのディレクトリへのパスを指定します。 デフォルトでは /tmp です。

INITDBARG

initdb コマンドの引数を指定します。 デフォルトでは "--no-locale -E UTF_8" です。

出力例

    $ watchdog_setup
    Starting set up
    ============= setting up pgpool 0 =============
    Starting set up in streaming replication mode
    creating startall and shutdownall
    creating failover script
    creating database cluster /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool0/data0...done.
    update postgresql.conf
    creating pgpool_remote_start
    creating basebackup.sh
    creating recovery.conf
    creating database cluster /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool0/data1...done.
    update postgresql.conf
    creating pgpool_remote_start
    creating basebackup.sh
    creating recovery.conf
    temporarily start data0 cluster to create extensions
    temporarily start pgpool-II to create standby nodes
    INFO:  unrecognized configuration parameter "debug_level"
    node_id | hostname | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay
    ---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
    0       | /tmp     | 51000 | up     | 0.500000  | primary | 0          | true              | 0
    1       | /tmp     | 51001 | down   | 0.500000  | standby | 0          | false             | 0
    (2 rows)

    recovery node 1...pcp_recovery_node -- Command Successful
    done.
    creating follow primary script
    Pager usage is off.
    node_id | hostname | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay
    ---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
    0       | /tmp     | 51000 | up     | 0.500000  | primary | 0          | false             | 0
    1       | /tmp     | 51001 | up     | 0.500000  | standby | 0          | true              | 0
    (2 rows)

    shutdown all

    pgpool-II setting for streaming replication mode is done.
    To start the whole system, use /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool0/startall.
    To shutdown the whole system, use /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool0/shutdownall.
    pcp command user name is "t-ishii", password is "t-ishii".
    Each PostgreSQL, pgpool-II and pcp port is as follows:
    #1 port is 51000
    #2 port is 51001
    pgpool port is 50000
    pcp port is 50001
    The info above is in README.port.
    ============= setting up pgpool 1 =============
    Starting set up in streaming replication mode
    creating startall and shutdownall
    creating failover script
    creating database cluster /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool1/data0...done.
    update postgresql.conf
    creating pgpool_remote_start
    creating basebackup.sh
    creating recovery.conf
    creating database cluster /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool1/data1...done.
    update postgresql.conf
    creating pgpool_remote_start
    creating basebackup.sh
    creating recovery.conf
    temporarily start data0 cluster to create extensions
    temporarily start pgpool-II to create standby nodes
    INFO:  unrecognized configuration parameter "debug_level"
    node_id | hostname | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay
    ---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
    0       | /tmp     | 51000 | up     | 0.500000  | primary | 0          | true              | 0
    1       | /tmp     | 51001 | down   | 0.500000  | standby | 0          | false             | 0
    (2 rows)

    recovery node 1...pcp_recovery_node -- Command Successful
    done.
    creating follow primary script
    Pager usage is off.
    node_id | hostname | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay
    ---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
    0       | /tmp     | 51000 | up     | 0.500000  | primary | 0          | true              | 0
    1       | /tmp     | 51001 | up     | 0.500000  | standby | 0          | false             | 0
    (2 rows)

    shutdown all

    pgpool-II setting for streaming replication mode is done.
    To start the whole system, use /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool1/startall.
    To shutdown the whole system, use /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool1/shutdownall.
    pcp command user name is "t-ishii", password is "t-ishii".
    Each PostgreSQL, pgpool-II and pcp port is as follows:
    #1 port is 51000
    #2 port is 51001
    pgpool port is 50004
    pcp port is 50005
    The info above is in README.port.
    ============= setting up pgpool 2 =============
    Starting set up in streaming replication mode
    creating startall and shutdownall
    creating failover script
    creating database cluster /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool2/data0...done.
    update postgresql.conf
    creating pgpool_remote_start
    creating basebackup.sh
    creating recovery.conf
    creating database cluster /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool2/data1...done.
    update postgresql.conf
    creating pgpool_remote_start
    creating basebackup.sh
    creating recovery.conf
    temporarily start data0 cluster to create extensions
    temporarily start pgpool-II to create standby nodes
    INFO:  unrecognized configuration parameter "debug_level"
    node_id | hostname | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay
    ---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
    0       | /tmp     | 51000 | up     | 0.500000  | primary | 0          | true              | 0
    1       | /tmp     | 51001 | down   | 0.500000  | standby | 0          | false             | 0
    (2 rows)

    recovery node 1...pcp_recovery_node -- Command Successful
    done.
    creating follow primary script
    Pager usage is off.
    node_id | hostname | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay
    ---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
    0       | /tmp     | 51000 | up     | 0.500000  | primary | 0          | true              | 0
    1       | /tmp     | 51001 | up     | 0.500000  | standby | 0          | false             | 0
    (2 rows)

    shutdown all

    pgpool-II setting for streaming replication mode is done.
    To start the whole system, use /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool2/startall.
    To shutdown the whole system, use /home/t-ishii/work/pgpool-II/current/pgpool2/src/test/a/pgpool2/shutdownall.
    pcp command user name is "t-ishii", password is "t-ishii".
    Each PostgreSQL, pgpool-II and pcp port is as follows:
    #1 port is 51000
    #2 port is 51001
    pgpool port is 50008
    pcp port is 50009
    The info above is in README.port.

    $ ls
    pgpool0  pgpool1  pgpool2  shutdownall	startall

    $ sh startall
    waiting for server to start....16123 2016-08-18 16:26:53 JST LOG:  redirecting log output to logging collector process
    16123 2016-08-18 16:26:53 JST HINT:  Future log output will appear in directory "pg_log".
    done
    server started
    waiting for server to start....16136 2016-08-18 16:26:54 JST LOG:  redirecting log output to logging collector process
    16136 2016-08-18 16:26:54 JST HINT:  Future log output will appear in directory "pg_log".
    done
    server started

    t-ishii@localhost: psql -p 50000 test

    Pager usage is off.
    psql (9.5.4)
    Type "help" for help.

    test=# \q

    $ pcp_watchdog_info -p 50001 -v
    Password:
    Watchdog Cluster Information
    Total Nodes          : 3
    Remote Nodes         : 2
    Quorum state         : QUORUM EXIST
    Alive Remote Nodes   : 2
    VIP up on local node : NO
    Leader Node Name     : Linux_tishii-CF-SX3HE4BP_50004
    Leader Host Name     : localhost

    Watchdog Node Information
    Node Name      : Linux_tishii-CF-SX3HE4BP_50000
    Host Name      : localhost
    Delegate IP    : Not_Set
    Pgpool port    : 50000
    Watchdog port  : 50002
    Node priority  : 1
    Status         : 7
    Status Name    : STANDBY

    Node Name      : Linux_tishii-CF-SX3HE4BP_50004
    Host Name      : localhost
    Delegate IP    : Not_Set
    Pgpool port    : 50004
    Watchdog port  : 50006
    Node priority  : 1
    Status         : 4
    Status Name    : LEADER

    Node Name      : Linux_tishii-CF-SX3HE4BP_50008
    Host Name      : localhost
    Delegate IP    : Not_Set
    Pgpool port    : 50008
    Watchdog port  : 50010
    Node priority  : 1
    Status         : 7
    Status Name    : STANDBY