pgpool2.git / summary / log / commit / refs

commit    d6abdf50802f5c092dcbbd7d9b934a7a9508a55c
Author:   Tatsuo Ishii <ishii@sraoss.co.jp>
Date:     Fri Apr 30 05:22:56 2021 +0000

    Fix watchdog_setup.
    
    watchdog_setup creates database cluster entity under pgpool0. In other
    pgpool nodes's pgpool.conf just has the port number for PostgreSQL in
    pgpool0.  But backend_data_directory remains their own PostgreSQL
    cluster. For example:
    
    backend_data_directory0 = '/home/t-ishii/work/Pgpool-II/current/x/pgpool2/data0'
    
    This is fine until online recovery runs. If it referrers to the database
    cluster directory, which is not correct of course.
    
    Fix this by replacing database cluster directories with symlinks to
    pgppol/data0 and so on. This will reduce disk space.
    
    Also fix usage message that now Snapshot Isolation mode is supported.


src/test/watchdog_setup.in | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/test/watchdog_setup.in b/src/test/watchdog_setup.in index 9dca33a93..60787e698 100644 --- a/src/test/watchdog_setup.in +++ b/src/test/watchdog_setup.in @@ -18,7 +18,7 @@ # this tool for production environment! # Note that this script uses pgpool_setup as a work horse. # -# usage: watchdog_setup [-wn num_pgpool][-wp watchdog_base_port][-m r|s|n][-n num_clusters][-p base_port][--no-stop][-d] +# usage: watchdog_setup [-wn num_pgpool][-wp watchdog_base_port][-m r|s|n|i][-n num_clusters][-p base_port][--no-stop][-d] # -wn num_pgpool: create num_pgpool pgpool nodes. The default is 3. Must be greater than 1. # -wp watchdog_base_port: starting port number. The default is # 50000. @@ -107,7 +107,7 @@ function set_pgpool_conf { echo "recovery_password = ''" >> $CONF echo "recovery_1st_stage_command = 'basebackup.sh'" >> $CONF - if [ $MODE = "r" ];then + if [ $MODE = "r" || $MODE = "i" ];then echo "recovery_2nd_stage_command = 'pgpool_recovery_pitr'" >> $CONF fi @@ -305,9 +305,15 @@ do sed -i '/.*data.*/d' startall sed -i '/.*data.*/d' shutdownall - # replace database cluster path to pgpool0 so that pgpool1 etc. share the cluster - PGPOOLCONF=etc/pgpool.conf - sed -i "/backend_data_directory/s/pgpool$cnt/pgpool0/g" $PGPOOLCONF + # change database cluster directory symlink to pgpool0. + # The database cluster entity only resides in pgpool0. + n=0 + while [ $n -lt $NUMCLUSTERS ] + do + rm -fr data$n + ln -s ../pgpool0/data$n . + n=`expr $n + 1` + done fi echo "cd pgpool$cnt" >> $STARTALL [parent: cc0220722a08]