Creación y Configuración de Servidores PostgreSQL Maestro-Esclavo
Clase 30 de 32 • Curso 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?
-
Accede a la plataforma Elastic:
- Registra una cuenta si es tu primera vez usando Elastic. Recibirás una prueba gratuita de 15 días.
-
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.
-
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:
-
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.
-
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
-
Modificar
postgresql.conf
:- Configura los parámetros de replicación necesarios como
wal_level = hot_standby
ymax_wal_senders
.
- Configura los parámetros de replicación necesarios como
-
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
-
Copiar datos del maestro:
- Usa comandos para detener el servicio, limpiar data previa y copiar la información desde la instancia maestra.
-
Modificar
postgresql.conf
en el esclavo:- Cambia el parámetro
hot_standby = on
para que funcione correctamente como réplica.
- Cambia el parámetro
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:
-
Prueba crear una nueva base de datos en el maestro.
- Verifica que aparece automáticamente en el esclavo.
-
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.