pgpool2.git / summary / log / commit / refs
commit b9be610f2afde4ef8930c8a6433b8f664d0ad45c
Author: Bo Peng <pengbo@sraoss.co.jp>
Date: Mon Nov 07 04:49:06 2022 +0000
Improve follow_primary.sh.sample script:
- run checkpoint command on primary to update control file before running pg_rewind
- check if a directory exists before removing it
src/sample/scripts/follow_primary.sh.sample | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/sample/scripts/follow_primary.sh.sample b/src/sample/scripts/follow_primary.sh.sample
index 819d21b71..1c022e6d5 100755
--- a/src/sample/scripts/follow_primary.sh.sample
+++ b/src/sample/scripts/follow_primary.sh.sample
@@ -71,6 +71,9 @@ fi
# Synchronize Standby with the new Primary.
echo follow_primary.sh: pg_rewind for node ${NODE_ID}
+# Run checkpoint command to update control file before running pg_rewind
+${PGHOME}/bin/psql -h ${NEW_PRIMARY_NODE_HOST} -p ${NEW_PRIMARY_NODE_PORT} postgres -c "checkpoint;"
+
# Create replication slot "${REPL_SLOT_NAME}"
${PGHOME}/bin/psql -h ${NEW_PRIMARY_NODE_HOST} -p ${NEW_PRIMARY_NODE_PORT} postgres \
-c "SELECT pg_create_physical_replication_slot('${REPL_SLOT_NAME}');" >/dev/null 2>&1
@@ -87,7 +90,7 @@ ssh -T ${SSH_OPTIONS} ${POSTGRESQL_STARTUP_USER}@${NODE_HOST} "
${PGHOME}/bin/pg_rewind -D ${NODE_PGDATA} --source-server=\"user=${POSTGRESQL_STARTUP_USER} host=${NEW_PRIMARY_NODE_HOST} port=${NEW_PRIMARY_NODE_PORT} dbname=postgres\"
- rm -rf ${NODE_PGDATA}/pg_replslot/*
+ [ -d \"${NODE_PGDATA}\" ] && rm -rf ${NODE_PGDATA}/pg_replslot/*
cat > ${RECOVERYCONF} << EOT
primary_conninfo = 'host=${NEW_PRIMARY_NODE_HOST} port=${NEW_PRIMARY_NODE_PORT} user=${REPLUSER} application_name=${NODE_HOST} passfile=''/var/lib/pgsql/.pgpass'''
@@ -116,8 +119,8 @@ if [ $? -ne 0 ]; then
set -o errexit
- rm -rf ${NODE_PGDATA}
- rm -rf ${ARCHIVEDIR}/*
+ [ -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
[parent: cee81c267a5e]