VIP=192.168.100.50
DEVICE=enp0s8
+CIDR_NETMASK=24
for pgpool in "${PGPOOLS[@]}"; do
[ "$HOSTNAME" = "${pgpool}" ] && continue
timeout ${SSH_TIMEOUT} ssh -T ${SSH_OPTIONS} ${POSTGRESQL_STARTUP_USER}@${pgpool} "
- /usr/bin/sudo /sbin/ip addr del ${VIP}/24 dev ${DEVICE}
+ /sbin/ip addr show dev ${DEVICE} | grep ${VIP} > /dev/null 2>&1
"
- if [ $? -ne 0 ]; then
- echo ERROR: escalation.sh: failed to release VIP on ${pgpool}.
+
+ if [ $? -eq 0 ]; then
+ timeout ${SSH_TIMEOUT} ssh -T ${SSH_OPTIONS} ${POSTGRESQL_STARTUP_USER}@${pgpool} "
+ /usr/bin/sudo /sbin/ip addr del ${VIP}/${CIDR_NETMASK} dev ${DEVICE}
+ "
+
+ if [ $? -ne 0 ]; then
+ echo ERROR: escalation.sh: failed to release VIP on ${pgpool}.
+ fi
fi
done
exit 0
OLD_PRIMARY_NODE_HOST="${11}"
OLD_PRIMARY_NODE_PORT="${12}"
-PGHOME=/usr/pgsql-16
+PGHOME=/usr/pgsql-17
REPL_SLOT_NAME=$(echo ${FAILED_NODE_HOST,,} | tr -- -. _)
POSTGRESQL_STARTUP_USER=postgres
SSH_KEY_FILE=id_rsa_pgpool
NEW_PRIMARY_NODE_PORT="$9"
NEW_PRIMARY_NODE_PGDATA="${10}"
-PGHOME=/usr/pgsql-16
-ARCHIVEDIR=/var/lib/pgsql/archivedir
+PGHOME=/usr/pgsql-17
REPLUSER=repl
PCP_USER=pgpool
PGPOOL_PATH=/usr/bin
set -o errexit
[ -d \"${NODE_PGDATA}\" ] && rm -rf ${NODE_PGDATA}
- [ -d \"${ARCHIVEDIR}\" ] && rm -rf ${ARCHIVEDIR}/*
${PGHOME}/bin/pg_basebackup -h ${NEW_PRIMARY_NODE_HOST} -U $REPLUSER -p ${NEW_PRIMARY_NODE_PORT} -D ${NODE_PGDATA} -X stream
cat > ${RECOVERYCONF} << EOT
fi
sed -i \
-e \"s/#*port = .*/port = ${NODE_PORT}/\" \
- -e \"s@#*archive_command = .*@archive_command = 'cp \\\"%p\\\" \\\"${ARCHIVEDIR}/%f\\\"'@\" \
${NODE_PGDATA}/postgresql.conf
"
DEST_NODE_HOST="$1"
DEST_NODE_PGDATA="$2"
-PGHOME=/usr/pgsql-16
+PGHOME=/usr/pgsql-17
POSTGRESQL_STARTUP_USER=postgres
SSH_KEY_FILE=id_rsa_pgpool
SSH_OPTIONS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/${SSH_KEY_FILE}"
DEST_NODE_PORT="$6"
PRIMARY_NODE_HOST="$7"
-PGHOME=/usr/pgsql-16
-ARCHIVEDIR=/var/lib/pgsql/archivedir
+PGHOME=/usr/pgsql-17
REPLUSER=repl
REPL_SLOT_NAME=$(echo ${DEST_NODE_HOST,,} | tr -- -. _)
POSTGRESQL_STARTUP_USER=postgres
set -o errexit
[ -d \"${DEST_NODE_PGDATA}\" ] && rm -rf ${DEST_NODE_PGDATA}
- [ -d \"${ARCHIVEDIR}\" ] && rm -rf ${ARCHIVEDIR}/*
${PGHOME}/bin/pg_basebackup -h $PRIMARY_NODE_HOST -U $REPLUSER -p $PRIMARY_NODE_PORT -D $DEST_NODE_PGDATA -X stream
sed -i \
-e \"s/#*port = .*/port = ${DEST_NODE_PORT}/\" \
- -e \"s@#*archive_command = .*@archive_command = 'cp \\\"%p\\\" \\\"${ARCHIVEDIR}/%f\\\"'@\" \
${DEST_NODE_PGDATA}/postgresql.conf
"
DEST_NODE_PORT="$6" # port number of the DB node to be recovered
MAIN_NODE_HOST="$7" # main node hostname
-PGHOME=/usr/pgsql-16
+PGHOME=/usr/pgsql-17
ARCHIVEDIR=/var/lib/pgsql/archivedir
REPLUSER=repl
MAX_DURATION=60
MAIN_NODE_HOST="$7" # main node hostname
-PGHOME=/usr/pgsql-16
+PGHOME=/usr/pgsql-17
ARCHIVEDIR=/var/lib/pgsql/archivedir # archive log directory
POSTGRESQL_STARTUP_USER=postgres
SSH_KEY_FILE=id_rsa_pgpool