Haute disponibilité ThingWorx > Exemple de déploiement d'une architecture HA PostgreSQL avec Pgpool-II > 6. Configuration de la base de données pour la réplication en streaming en tant que node2
6. Configuration de la base de données pour la réplication en streaming en tant que node2
Assurez-vous que les dossiers /db/node0archive, /db/node1archive et /db/node2archive ont été créés et partagés sur trois noeuds.
Etape 1
Créez un réplicateur d'utilisateurs (mêmes actions que pour node0).
Etape 2
Modifiez postgres.conf sur node1 pour utiliser les mêmes paramètres postgres.conf pour node0, à l'exception de la ligne 10, qui doit avoir la valeur suivante :
Ligne
Paramètre
Valeur
Noeud
10
synchronous_standby_names
'node0,node1'
Etape 3
node1 doit utiliser le même script start_replication.sh que node0.
Etape 4
Reciblez le script Master.sh pour node2.
Créez le script retargetMaster.sh :
vim /db/bin/retargetMaster.sh
avec le contenu suivant (qui est légèrement différent de la version 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
Rendez ensuite les scripts exécutables :
chmod a+x /db/bin/start_replication.sh
chmod a+x /db/bin/reargetMaster.sh
Etape 5
Mettez à jour le paramètre pg_hba (mêmes actions que pour node0).