pgpool_setup creates a temporary installation of Pgpool-II cluster, which includes a Pgpool-II installation and specified number of PostgreSQL installations under current directory. Current directory must be empty before running pgpool_setup.
pgpool_setup is for testing purpose only and should not be used to create production installations.
Currently pgpool_setup supports streaming replication mode, native replication mode and raw mode. To support watchdog, see watchdog_setup for details.
pgpool_setup accepts the following command-line arguments:
Specifies the running mode. mode can be r (native replication mode), s (streaming replication mode), or n (raw mode). If this is omitted, s is used.
Specifies the number of PostgreSQL installations. If this is omitted, 2 is used.
Specify the base port number used by Pgpool-II and PostgreSQL. Pgpool-II port is base_port. pcp port is base_port + 1. The first PostgreSQL node's port is base_port + 2, second PostgreSQL node's port is base_port + 3 and so on.
If -pg option is specified, the first PostgreSQL node's port is assigned to pg_base_port, the second PostgreSQL node's port is pg_base_port + 1 and so on.
If this is omitted, 11000 is used.
Specify the base port number used by PostgreSQL. The first PostgreSQL node's port is base_port + 2, second PostgreSQL node's port is base_port + 3 and so on.
If this is omitted, base_port+2 is used.
Do not stop pgpool and PostgreSQL after the work.
Start pgpool with debug mode.
pgpool_setup recognizes following environment variables:
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.
Specifies the path to Pgpool-II configuration files. The default is PGPOOL_INSTALL_DIR/etc.
Specifies the path to PostgreSQL commands such as initdb, pg_ctl and psql. The default is /usr/local/pgsql/bin.
Specifies the path to PostgreSQL shared libraries. The default is /usr/local/pgsql/lib.
Specifies the path to Unix socket directory. The default is /tmp.
Specifies the arguments for initdb command. The default is "--no-locale -E UTF_8".
$ pgpool_setup
Starting set up in streaming replication mode
creating startall and shutdownall
creating failover script
creating database cluster /home/t-ishii/tmp/test/data0...done.
update postgresql.conf
creating pgpool_remote_start
creating basebackup.sh
creating recovery.conf
creating database cluster /home/t-ishii/tmp/test/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 | 11002 | up | 0.500000 | primary | 0 | true | 0
1 | /tmp | 11003 | down | 0.500000 | standby | 0 | false | 0
(2 rows)
recovery node 1...pcp_recovery_node -- Command Successful
done.
creating follow master script
Pager usage is off.
node_id | hostname | port | status | lb_weight | role | select_cnt | load_balance_node | replication_delay
---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
0 | /tmp | 11002 | up | 0.500000 | primary | 0 | false | 0
1 | /tmp | 11003 | 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/tmp/test/startall.
To shutdown the whole system, use /home/t-ishii/tmp/test/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 11002
#2 port is 11003
pgpool port is 11000
pcp port is 11001
The info above is in README.port.
$ ls
README.port bashrc.ports data1 log pgpool_reload run startall
archivedir data0 etc pcppass pgpool_setup.log shutdownall
$ ./startall
waiting for server to start....11840 2016-08-18 13:08:51 JST LOG: redirecting log output to logging collector process
11840 2016-08-18 13:08:51 JST HINT: Future log output will appear in directory "pg_log".
done
server started
waiting for server to start....11853 2016-08-18 13:08:52 JST LOG: redirecting log output to logging collector process
11853 2016-08-18 13:08:52 JST HINT: Future log output will appear in directory "pg_log".
done
server started
$ psql -p 11000 test
Pager usage is off.
psql (9.5.4)
Type "help" for help.
test=# show pool_nodes;
node_id | hostname | port | status | lb_weight | role | select_cnt | load_balance_node | replication_delay
---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
0 | /tmp | 11002 | up | 0.500000 | primary | 0 | false | 0
1 | /tmp | 11003 | up | 0.500000 | standby | 0 | true | 0
(2 rows)