Alta disponibilidad de ThingWorx > Ejemplo de implementación de alta disponibilidad de PostgreSQL con Pgpool-II > 5. Configurar la base de datos para la replicación en flujo como node1
5. Configurar la base de datos para la replicación en flujo como node1
Asegúrese de que las carpetas /db/node0archive, /db/node1archive y /db/node2archive se hayan creado y compartido en los tres nodos.
Paso 1
Cree el replicador de usuarios (las mismas acciones que para node0).
Paso 2
Edite postgres.conf en node1 para utilizar los mismos parámetros de postgres.conf para node0, excepto la fila 10, que debe tener el siguiente valor:
Fila
Parámetro
Valor
Nodo
10
synchronous_standby_names
'node0,node2'
Paso 3
node1 debe tener el mismo script start_replication.sh que node0.
El script start_replication.sh se utiliza para iniciar el proceso de replicación en node1 y node2.
* 
Permite ejecutar el script start_replication.sh solo desde el node1 y el node2.
Paso 4
Redirija el script Master.sh para node1.
Cree el script retargetMaster.sh:
vim /db/bin/retargetMaster.sh
con el siguiente contenido (que es ligeramente diferente de la versión de node0):
#!/bin/bash -x
NEW_MASTER_HOSTNAME=$1
NEW_ARCHIVE_FOLDER=$2
if grep -q "$1" /db/postgres/recovery.conf
then
echo $1 is current target,server does not need a restart, done!
else
#service postgresql stop
/usr/pgsql-10.x/bin/pg_ctl -D /db/postgres stop -m fast
#/db/bin/start_replication.sh $NEW_MASTER_HOSTNAME
# Write out new recovery.conf file
rm /db/postgres/recovery.conf
echo "standby_mode = 'on'" >> /db/postgres/recovery.conf
echo "primary_conninfo = 'port=5432 host=$NEW_MASTER_HOSTNAME user=replicator password=trUf6yuz2?_Gub sslmode=disable sslcompression=1 application_name=node1'" >> /db/postgres/recovery.conf
echo "trigger_file='/db/trigger'" >> /db/postgres/recovery.conf
echo "restore_command = 'cp -f $NEW_ARCHIVE_FOLDER/%f %p>/db/postgres/recovery.conf
echo "archive_cleanup_command = '/usr/bin/pg_archivecleanup $NEW_ARCHIVE_FOLDER %r>/db/postgres/recovery.conf
echo "recovery_target_timeline = 'latest'" >> /db/postgres/recovery.conf
/usr/pgsql-10.x/bin/pg_ctl -D /db/postgres -l /db/postgres.log start
echo target is $1 now
fi
A continuación, convierta los scripts en ejecutables:
chmod a+x /db/bin/start_replication.sh
chmod a+x /db/bin/reargetMaster.sh
Paso 5
Actualice pg_hba. conf (las mismas acciones que para node0).
¿Fue esto útil?