10. Scenari di failover
Possibili scenari di failover e reazione prevista da questa distribuzione.
Scenario 1: errore del nodo master PostgreSQL
In caso di errore di node0 (il nodo master PostgreSQL corrente), si verificano automaticamente le azioni descritte di seguito.
• Pgpool inizia a eseguire /etc/pgpool-II/failover.sh.
• Viene scelto node1 PostgreSQL come nuovo master.
• Il master Pgpool-II esegue l'accesso remoto a node1 e lo promuove come master.
Intervento manuale previsto
Azioni che devono essere eseguite dall'amministratore del sistema:
• Esaminare i log su node0 per determinare lo stato del server.
• Riparare il server, se necessario.
• Se viene considerato integro:
◦ In node0 eseguire lo script start_replication per fare in modo che node0 segua node2 (in questo esempio l'indirizzo IP 10.91.9.41 è l'IP di node2):
/db/bin/start_replication.sh 10.91.9.41
◦ Avviare il servizio PostgreSQL su node0
sudo systemctl start postgresql-10.x
◦ Utilizzare il comando PCP per aggiungere nuovamente node0 allo stato normale.
pcp_attach_node -h /var/run/pgpoolpcp -n 0
Scenario 2: errore del primo nodo di standby PostgreSQL
In caso di errore di node1 (il nodo di standby principale di PostgreSQL corrente), si verificano automaticamente le azioni descritte di seguito.
• Pgpool inizia a eseguire "/etcpgpool-II/failover.sh".
• Viene scelto node2 PostgreSQL come nodo di standby principale per il nodo master (in questo esempio node0).
• Pgpool esegue l'accesso remoto a node2 e specifica node0 come nuova destinazione.
• node2 ora è il nodo di standby per node0.
Intervento manuale previsto
Azioni che devono essere eseguite dall'amministratore del sistema:
• Esaminare i log su node1 per determinare lo stato del server.
• Riparare il server, se necessario.
• Se viene considerato integro:
◦ In node1 eseguire lo script start_replication per fare in modo che node1 segua node2 (in questo esempio l'indirizzo IP 10.91.9.41 è l'IP di node2):
/db/bin/start_replication.sh 10.91.9.41
◦ Avviare il servizio PostgreSQL su node1
sudo systemctl start postgresql-10.x
◦ Utilizzare il comando PCP per aggiungere nuovamente node1 allo stato normale.
pcp_attach_node -h /var/run/pgpoolpcp -n 1
Scenario 3: errore del secondo nodo di standby PostgreSQL
In caso di errore di node2 (il nodo di standby secondario di PostgreSQL corrente), si verificano automaticamente le azioni descritte di seguito.
• Pgpool inizia a eseguire "/etcpgpool-II/failover.sh".
• Non si verificano azioni aggiuntive come node2 che hanno un impatto sul funzionamento del nodo master e di quello di standby correnti.
Intervento manuale previsto
Azioni che devono essere eseguite dall'amministratore del sistema:
• Esaminare i log su node2 per determinare lo stato del server.
• Riparare il server, se necessario.
• Se viene considerato integro:
◦ In node2 eseguire lo script start_replication per effettuare la risincronizzazione di node2 con node1 (in questo esempio l'indirizzo IP 10.91.9.24 è l'IP di node1):
/db/bin/start_replication.sh 10.91.9.24
◦ Avviare il servizio PostgreSQL su node2
sudo systemctl start postgresql-10.x
◦ Utilizzare il comando PCP per aggiungere nuovamente node2 allo stato normale.
pcp_attach_node -h /var/run/pgpoolpcp -n 2