Fix the wrong variable names in replication_mode_recovery_2nd_stage.sample sample...
authorBo Peng <pengbo@sraoss.co.jp>
Tue, 30 May 2023 13:17:33 +0000 (22:17 +0900)
committerBo Peng <pengbo@sraoss.co.jp>
Tue, 30 May 2023 13:17:33 +0000 (22:17 +0900)
src/sample/scripts/failover.sh.sample
src/sample/scripts/replication_mode_recovery_1st_stage.sample
src/sample/scripts/replication_mode_recovery_2nd_stage.sample

index 47610fcd34845344d0f48da22e6dbcece155fc1c..e8e60dc079cd7085e897c683236cec7f22cf2c38 100755 (executable)
@@ -76,9 +76,9 @@ echo failover.sh: primary node is down, promote new_main_node_id=$NEW_MAIN_NODE_
 ssh -T ${SSH_OPTIONS} ${POSTGRESQL_STARTUP_USER}@${NEW_MAIN_NODE_HOST} ${PGHOME}/bin/pg_ctl -D ${NEW_MAIN_NODE_PGDATA} -w promote
 
 if [ $? -ne 0 ]; then
-    echo ERROR: failover.sh: end: failover failed
+    echo ERROR: failover.sh: promote failed
     exit 1
 fi
 
-echo failover.sh: end: new_main_node_id=$NEW_MAIN_NODE_ID on ${NEW_MAIN_NODE_HOST} is promoted to a primary
+echo failover.sh: end: new_main_node_id=$NEW_MAIN_NODE_ID on ${NEW_MAIN_NODE_HOST} was successfully promoted to primary
 exit 0
index 9d6addbd8b749b751f70f2afb2979e6d2bb3e6e7..300c30395f9bb51bd15948e3af177d59fb9142fc 100755 (executable)
@@ -3,13 +3,13 @@
 
 set -o xtrace
 
-MAIN_NODE_PGDATA="$1"
-DEST_NODE_HOST="$2"
-DEST_NODE_PGDATA="$3"
-MAIN_NODE_PORT="$4"
-DEST_NODE_ID="$5"
-DEST_NODE_PORT="$6"
-MAIN_NODE_HOST="$7"
+MAIN_NODE_PGDATA="$1"              # main node dabatase cluster path
+DEST_NODE_HOST="$2"                # hostname of the DB node to be recovered
+DEST_NODE_PGDATA="$3"              # database cluster path of the DB node to be recovered
+MAIN_NODE_PORT="$4"                # main node port number
+DEST_NODE_ID="$5"                  # node id of the DB node to be recovered
+DEST_NODE_PORT="$6"                # port number of the DB node to be recovered
+MAIN_NODE_HOST="$7"                # main node hostname
 
 PGHOME=/usr/pgsql-15
 ARCHIVEDIR=/var/lib/pgsql/archivedir
index 1db6ad88cdda5eb4208c000da169bfe6680d7110..a4c0c360e3527847a1e498dae125eb466961b070 100755 (executable)
@@ -3,10 +3,14 @@
 
 set -o xtrace
 
-MAIN_NODE_PGDATA="$1"              # main dabatase cluster
-DEST_NODE_HOST="$2"                 # hostname of the DB node to be recovered
-DEST_NODE_PGDATA="$3"              # database cluster of the DB node to be recovered
-MAIN_NODE_PORT="$4"                 # PostgreSQL port number
+MAIN_NODE_PGDATA="$1"              # main node dabatase cluster path
+DEST_NODE_HOST="$2"                # hostname of the DB node to be recovered
+DEST_NODE_PGDATA="$3"              # database cluster path of the DB node to be recovered
+MAIN_NODE_PORT="$4"                # main node port number
+DEST_NODE_ID="$5"                  # node id of the DB node to be recovered
+DEST_NODE_PORT="$6"                # port number of the DB node to be recovered
+MAIN_NODE_HOST="$7"                # main node hostname
+
 
 PGHOME=/usr/pgsql-15
 ARCHIVEDIR=/var/lib/pgsql/archivedir  # archive log directory
@@ -15,17 +19,35 @@ SSH_KEY_FILE=id_rsa_pgpool
 SSH_OPTIONS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/${SSH_KEY_FILE}"
 
 # Force to flush current value of sequences to xlog
-${PGHOME}/bin/psql -p $PORT -t -c 'SELECT datname FROM pg_database WHERE NOT datistemplate AND datallowconn' template1|
+${PGHOME}/bin/psql -h $MAIN_NODE_HOST -p $MAIN_NODE_PORT -t -c 'SELECT datname FROM pg_database WHERE NOT datistemplate AND datallowconn' template1|
 while read i
 do
   if [ "$i" != "" ]; then
-    psql -p $PORT -c "SELECT setval(oid, nextval(oid)) FROM pg_class WHERE relkind = 'S'" $i
+    psql -h $MAIN_NODE_HOST -p $MAIN_NODE_PORT -c "SELECT setval(oid, nextval(oid)) FROM pg_class WHERE relkind = 'S'" $i
   fi
 done
 
-psql -p $PORT -c "SELECT pgpool_switch_xlog('$ARCHIVEDIR')" template1
+if [ $? -ne 0 ]; then
+    echo ERROR: recovery_2nd_stage: failed.
+    exit 1
+fi
+
+psql -h $MAIN_NODE_HOST -p $MAIN_NODE_PORT -c "SELECT pgpool_switch_xlog('$ARCHIVEDIR')" template1
+
+if [ $? -ne 0 ]; then
+    echo ERROR: recovery_2nd_stage: pgpool_switch_xlog failed.
+    exit 1
+fi
 
 # start target server as a streaming replication standby server
 ssh -T ${SSH_OPTIONS} ${POSTGRESQL_STARTUP_USER}@$DEST_NODE_HOST "
         $PGHOME/bin/pg_ctl -l /dev/null -w -D $DEST_NODE_PGDATA promote
 "
+
+if [ $? -ne 0 ]; then
+    echo ERROR: recovery_2nd_stage: promote failed.
+    exit 1
+fi
+
+echo recovery_2nd_stage: end: recovery_2nd_stage is completed successfully 
+exit 0