Creación y Configuración de Servidores PostgreSQL Maestro-Esclavo

Clase 30 de 32Curso de PostgreSQL

Resumen

¿Cómo crear servidores con Elastic?

En este tutorial, aprenderemos a crear servidores en Elastic para configurar una base de datos de tipo maestro-esclavo usando PostgreSQL. Elastic nos permite simplificar este proceso ofreciéndonos una plataforma como servicio, lo cual significa que no tendrás que preocuparte por la gestión del código y puedes concentrarte en la infraestructura de bases de datos.

¿Qué pasos seguir en Elastic para crear servidores?

  1. Accede a la plataforma Elastic:

    • Registra una cuenta si es tu primera vez usando Elastic. Recibirás una prueba gratuita de 15 días.
  2. Crea el servidor maestro:

    • Selecciona un servicio de base de datos en PostgreSQL versión 11.5.
    • Configura las opciones básicas sin necesidad de modificar otras configuraciones avanzadas.
    • Activa la opción IPv4 para conectar a través de una dirección IP.
  3. Crea el servidor esclavo:

    • De manera similar, configura otro servicio de PostgreSQL 11.5.
    • Asegúrate de que corren en distintos servidores para simular entornos separados.
    • Asígnale también una dirección IPv4.

Al recibir las notificaciones de Elastic, obtendrás detalles del usuario y contraseñas para acceder a estas instancias.

¿Cómo configurar la conexión PostgreSQL?

Con las instancias listas, es momento de configurar el acceso remoto usando PGAdmin:

  1. Acceso al servidor maestro:

    • Crea una nueva conexión en PGAdmin con la IP y credenciales de la instancia 'maestra'.
    • Guarda la contraseña y verifica la conexión.
  2. Acceso al servidor esclavo:

    • Realiza el mismo procedimiento anterior para la instancia 'esclava'.

Podrás notar que ambas bases inician vacías y no están alojadas localmente sino en servidores externos.

¿Cómo configurar la replicación maestro-esclavo?

La clave para la replicación es la correcta configuración de los archivos PostgreSQL:

Configuración en el servidor maestro

  1. Modificar postgresql.conf:

    • Configura los parámetros de replicación necesarios como wal_level = hot_standby y max_wal_senders.
  2. Actualizar reglas de conexión:

    • Edita los archivos de configuración para permitir conexiones sin contraseña desde el esclavo, asegurando usar la IP interna del servicio por motivos de seguridad.

Configuración en el servidor esclavo

  1. Copiar datos del maestro:

    • Usa comandos para detener el servicio, limpiar data previa y copiar la información desde la instancia maestra.
  2. Modificar postgresql.conf en el esclavo:

    • Cambia el parámetro hot_standby = on para que funcione correctamente como réplica.

Después de estas configuraciones, reinicia los servicios para aplicar las nuevas configuraciones:

# Reiniciar el servicio PostgreSQL
sudo systemctl restart postgresql

¿Cómo verificar el funcionamiento de la replicación?

Para asegurarte de que la replicación esté funcionando:

  1. Prueba crear una nueva base de datos en el maestro.

    • Verifica que aparece automáticamente en el esclavo.
  2. Intentar modificar datos en el esclavo:

    • Notarás que intentos de escritura en el esclavo no se permiten, indicando que es una base de datos de solo lectura. Aquí está el ejemplo del error que recibirás:
ERROR: cannot execute CREATE TABLE in a read-only transaction

¡Y eso es todo! Has configurado exitosamente una replicación maestro-esclavo en PostgreSQL con Elastic. Te invito a seguir explorando y experimentando con este entorno versátil que incluye cargar datos a la base de datos maestra y comprobar su replicación en el esclavo.