10. Scénarios de basculement
Cette rubrique décrit les possibles scénarios de basculement et la réaction attendue pour ce déploiement.
Scénario 1 : défaillance du noeud maître PostgreSQL
En cas de défaillance de node0 (le noeud maître PostgreSQL actuel), les actions suivantes se produisent automatiquement :
Pgpool exécute /etc/pgpool-II/failover.sh.
Le noeud node1 PostgreSQL est choisi comme nouveau noeud maître.
Le noeud maître Pgpool-II se connecte à distance à node1 et le promeut en tant que noeud maître.
Intervention manuelle attendue
Actions à effectuer par l'administrateur système :
Consultez les journaux sur node0 pour déterminer l'intégrité du serveur.
Réparez le serveur si nécessaire.
Une fois l'intégrité restaurée, procédez comme suit :
Sur node0, exécutez le script start_replication pour que node0 suive node2 (l'adresse IP 10.91.9.41 est l'adresse IP de node2 dans cet exemple) :
/db/bin/start_replication.sh 10.91.9.41
Démarrez le service PostgreSQL sur node0.
sudo systemctl start postgresql-10.x
Utilisez la commande PCP pour rétablir node0 dans son fonctionnement normal.
pcp_attach_node -h /var/run/pgpoolpcp -n 0
Scénario 2 : défaillance du premier noeud de secours PostgreSQL
En cas de défaillance de node1 (le noeud de secours principal PostgreSQL actuel), les actions suivantes se produisent automatiquement :
Pgpool exécute "/etcpgpool-II/failover.sh".
Le noeud node2 PostgreSQL sera choisi comme noeud de secours principal pour le noeud maître (node0 dans cet exemple).
Pgpool se connecte à distance à node2 et le recible sur node0.
node2 est maintenant le noeud de secours de node0.
Intervention manuelle attendue
Actions à effectuer par l'administrateur système :
Consultez les journaux sur node1 pour déterminer l'intégrité du serveur.
Réparez le serveur si nécessaire.
Une fois l'intégrité restaurée, procédez comme suit :
Sur node1, exécutez le script start_replication pour que node1 suive node2 (l'adresse IP 10.91.9.41 est l'adresse IP de node2 dans cet exemple) :
/db/bin/start_replication.sh 10.91.9.41
Démarrez le service PostgreSQL sur node1.
sudo systemctl start postgresql-10.x
Utilisez la commande PCP pour rétablir node1 dans son fonctionnement normal.
pcp_attach_node -h /var/run/pgpoolpcp -n 1
Scénario 3 : défaillance du second noeud de secours PostgreSQL
En cas de défaillance de node2 (le noeud de secours secondaire PostgreSQL actuel), les actions suivantes se produisent automatiquement :
Pgpool exécute "/etcpgpool-II/failover.sh".
Aucune action supplémentaire n'est requise, car node2 n'affecte pas le fonctionnement des noeuds principal et de secours.
Intervention manuelle attendue
Actions à effectuer par l'administrateur système :
Consultez les journaux sur node2 pour déterminer l'intégrité du serveur.
Réparez le serveur si nécessaire.
Une fois l'intégrité restaurée, procédez comme suit :
Sur node2, exécutez le script start_replication pour que node2 se resynchronise avec node1 (l'adresse IP 10.91.9.24 est l'adresse IP de node1 dans cet exemple) :
/db/bin/start_replication.sh 10.91.9.24
Démarrez le service PostgreSQL sur node2.
sudo systemctl start postgresql-10.x
Utilisez la commande PCP pour rétablir node2 dans son fonctionnement normal.
pcp_attach_node -h /var/run/pgpoolpcp -n 2