watchdog_setup
Description
watchdog_setup creates a temporary installation of Pgpool-II clusters with watchdog enabled, which includes a Pgpool-II installation and specified number of PostgreSQL installations under current directory. Current directory must be empty before running watchdog_setup .
watchdog_setup is for testing purpose only and should not be used to create production installations. Also please note that heartbeat is not used.
watchdog_setup uses pgpool_setup as a workhorse.
Currently watchdog_setup supports streaming replication mode, snapshot isolation mode, native replication mode, logical replication mode and raw mode.
Options
watchdog_setup accepts the following command-line arguments:
- -wn num_pgpool
-
Specifies the number of Pgpool-II installations. If this is omitted, 3 is used.
- -wp watchdog_base_port
-
Specify the starting base port number used by Pgpool-II and PostgreSQL. For the first Pgpool-II, Pgpool-II port is watchdog_base_port. pcp port is watchdog_base_port + 1, watchdog port is watchdog_base_port + 2. wd_heartbeat_port is watchdog_base_port + 3 (though heartbeat is not used). The first PostgreSQL node's port is watchdog_base_port + 4, second PostgreSQL node's port is watchdog_base_port + 5 and so on.
If this is omitted, 50000 is used.
- -m mode
-
Specifies the running mode. mode can be r (native replication mode), i (snapshot isolation mode), s (streaming replication mode), l (logical replication mode) or n (raw mode). If this is omitted, s is used.
- -n num_clusters
-
Specifies the number of PostgreSQL installations. If this is omitted, 2 is used.
- --no-stop
-
Do not stop pgpool and PostgreSQL after the work.
- -d
-
Start pgpool with debug mode.
Environment variables
watchdog_setup recognizes following environment variables:
- PGPOOL_SETUP
-
Specifies the path to pgpool_setup command. The default is "pgpool_setup", thus it is assumed that pgpool_setup is in the command search path.
- PGPOOL_INSTALL_DIR
-
Specifies the Pgpool-II installation directory. Pgpool-II binaries is expected to be placed under PGPOOL_INSTALL_DIR/bin and pgpool.conf and pool_hba.conf etc. are expected to be placed under PGPOOL_INSTALL_DIR/etc. The default is /usr/local.
- PGPOOLDIR
-
Specifies the path to Pgpool-II configuration files. The default is PGPOOL_INSTALL_DIR/etc.
- PGBIN
-
Specifies the path to PostgreSQL commands such as initdb, pg_ctl and psql. The default is /usr/local/pgsql/bin.
- PGLIB
-
Specifies the path to PostgreSQL shared libraries. The default is /usr/local/pgsql/lib.
- PGSOCKET_DIR
-
Specifies the path to Unix socket directory. The default is /tmp.
- INITDBARG
-
Specifies the arguments for initdb command. The default is "--no-locale -E UTF_8".
Example
$ 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