10. Escenarios de conmutación por error
Posibles escenarios de conmutación por error y la reacción esperada de esta implementación.
Escenario 1: El nodo maestro de PostgreSQL falla
Cuando falla node0 (el nodo maestro de PostgreSQL actual), se producen automáticamente las siguientes acciones:
Pgpool empezará a ejecutar /etc/pgpool-II/failover.sh.
Se elegirá node1 de PostgreSQL como el nuevo maestro.
El maestro de Pgpool-II se conectará de forma remota a node1 y lo promoverá como maestro.
Intervención manual esperada
Acciones que debe realizar el administrador del sistema:
Revisar los registros sobre node0 para determinar la integridad del servidor.
Reparar el servidor según sea necesario.
Una vez considerado íntegro:
En node0, ejecutar el script start_replication para que node0 siga a node2 (la dirección IP 10.91.9.41 es la IP de node2 en este ejemplo):
/db/bin/start_replication.sh 10.91.9.41
Iniciar el servicio PostgreSQL en node0
sudo systemctl start postgresql-10.x
Utilizar el comando PCP para añadir node0 de nuevo al estado normal.
pcp_attach_node -h /var/run/pgpoolpcp -n 0
Escenario 2: El primer nodo en espera de PostgreSQL falla
Cuando falla node1 (el nodo en espera principal de PostgreSQL actual), las siguientes acciones se producirán automáticamente:
Pgpool empezará a ejecutar "/etcpgpool-II/failover.sh".
Se elegirá node2 de PostgreSQL como nodo en espera principal para el nodo maestro (node0 en este ejemplo).
Pgpool se conectará de forma remota a node2 y lo redirigirá a node0.
node2 es ahora el nodo en espera para node0.
Intervención manual esperada
Acciones que debe realizar el administrador del sistema:
Revisar los registros sobre node1 para determinar la integridad del servidor.
Reparar el servidor según sea necesario.
Una vez considerado íntegro:
En node1, ejecutar el script start_replication para que node1 siga a node2 (la dirección IP 10.91.9.41 es la IP de node2 en este ejemplo):
/db/bin/start_replication.sh 10.91.9.41
Iniciar el servicio PostgreSQL en node1
sudo systemctl start postgresql-10.x
Utilizar el comando PCP para añadir node1 de nuevo al estado normal.
pcp_attach_node -h /var/run/pgpoolpcp -n 1
Escenario 3: El segundo nodo en espera de PostgreSQL falla
Cuando falla node2 (el nodo en espera secundario de PostgreSQL actual), las siguientes acciones se producirán automáticamente:
Pgpool empezará a ejecutar "/etcpgpool-II/failover.sh".
Ninguna acción adicional, ya que node2 no afecta al funcionamiento de los nodos en espera y maestro actuales.
Intervención manual esperada
Acciones que debe realizar el administrador del sistema:
Revisar los registros sobre node2 para determinar la integridad del servidor.
Reparar el servidor según sea necesario.
Una vez considerado íntegro:
En node2, ejecutar el script start_replication para que node2 se vuelva a sincronizar con node1 (la dirección IP 10.91.9.24 es la IP de node1 en este ejemplo):
/db/bin/start_replication.sh 10.91.9.24
Iniciar el servicio PostgreSQL en node2
sudo systemctl start postgresql-10.x
Utilizar el comando PCP para añadir node2 de nuevo al estado normal.
pcp_attach_node -h /var/run/pgpoolpcp -n 2