--- /dev/null
+<!--
+doc/src/sgml/ref/watchdog_setup.sgml
+Pgpool-II documentation
+-->
+
+<refentry id="WATCHDOG-SETUP">
+ <indexterm zone="watchdog-setup">
+ <primary>watchdog_setup</primary>
+ </indexterm>
+
+ <refmeta>
+ <refentrytitle>watchdog_setup</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo>Other Commands</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>watchdog_setup</refname>
+ <refpurpose>
+ Create a temporary installation of Pgpool-II clusters with watchdog</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>watchdog_setup</command>
+ <arg rep="repeat"><replaceable>option</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id="R1-WATCHDOG-SETUP-1">
+ <title>
+ Description
+ </title>
+ <para>
+ <application>watchdog_setup</application> creates a temporary
+ installation of <productname>Pgpool-II</productname> clusters with watchdog enabled, which
+ includes a <productname>Pgpool-II</productname> installation and
+ specified number of <productname>PostgreSQL</productname>
+ installations under current directory.
+ Current directory must be empty before running <application>watchdog_setup</application>.
+ </para>
+ <para>
+ <application>watchdog_setup</application> is for testing purpose
+ only and should not be used to create production installations.
+ Also please note that heartbeat is not used.
+ </para>
+
+ <para>
+ <application>watchdog_setup</application>
+ uses <xref linkend="pgpool-setup"> as a workhorse.
+ </para>
+
+ <para>
+ Currently <application>watchdog_setup</application> supports streaming replication mode, native replication mode and raw mode.
+ Watchdog is not supported yet.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+ <para>
+ <application>watchdog_setup</application> accepts the following command-line arguments:
+
+ <variablelist>
+
+ <varlistentry>
+ <term><option>-wn <replaceable class="parameter">num_pgpool</replaceable></option></term>
+ <listitem>
+ <para>
+ Specifies the number of Pgpool-II installations.
+ If this is omitted, <literal>3</literal> is used.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-wp <replaceable class="parameter">watchdog_base_port</replaceable></option></term>
+ <listitem>
+ <para>
+ 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 u 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.
+ </para>
+ <para>
+ If this is omitted, <literal>50000</literal> is used.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-m <replaceable class="parameter">mode</replaceable></option></term>
+ <listitem>
+ <para>
+ Specifies the running mode. <replaceable>mode</replaceable>
+ can be <literal>r</literal> (native replication mode), <literal>s</literal> (streaming replication mode), or
+ <literal>n</literal> (raw mode).
+ If this is omitted, <literal>s</literal> is used.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-n <replaceable class="parameter">num_clusters</replaceable></option></term>
+ <listitem>
+ <para>
+ Specifies the number of PostgreSQL installations.
+ If this is omitted, <literal>2</literal> is used.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--no-stop</option></term>
+ <listitem>
+ <para>
+ Do not stop pgpool and PostgreSQL after the work.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-d</option></term>
+ <listitem>
+ <para>
+ Start pgpool with debug mode.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Environment variables</title>
+ <para>
+ <application>watchdog_setup</application> recognizes following environment variables:
+
+ <variablelist>
+
+ <varlistentry>
+ <term><option>PGPOOL_SETUP</option></term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>PGPOOL_INSTALL_DIR</option></term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>PGPOOLDIR</option></term>
+ <listitem>
+ <para>
+ Specifies the path to Pgpool-II configuration files.
+ The default is PGPOOL_INSTALL_DIR/etc.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>PGBIN</option></term>
+ <listitem>
+ <para>
+ Specifies the path to PostgreSQL commands such as initdb, pg_ctl and psql.
+ The default is /usr/local/pgsql/bin.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>PGLIB</option></term>
+ <listitem>
+ <para>
+ Specifies the path to PostgreSQL shared libraries.
+ The default is /usr/local/pgsql/lib.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>PGSOCKET_DIR</option></term>
+ <listitem>
+ <para>
+ Specifies the path to Unix socket directory.
+ The default is /tmp.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>INITDBARG</option></term>
+ <listitem>
+ <para>
+ Specifies the arguments for initdb command.
+ The default is "--no-locale -E UTF_8".
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Example</title>
+ <para>
+<screen>
+$ watchdog_setup
+Satrting set up
+============= setting up pgpool 0 =============
+Satrting 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 postgreql.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 postgreql.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 master 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 =============
+Satrting 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 postgreql.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 postgreql.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 master 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 =============
+Satrting 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 postgreql.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 postgreql.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 master 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
+Master Node Name : Linux_tishii-CF-SX3HE4BP_50004
+Master 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 : MASTER
+
+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
+
+</screen>
+</para>
+ </refsect1>
+
+</refentry>