Creación y Configuración de Servidores PostgreSQL Maestro-Esclavo
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 y max_wal_senders.
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.
Después de estas configuraciones, reinicia los servicios para aplicar las nuevas configuraciones:
# Reiniciar el servicio PostgreSQLsudo 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.
Las replicas consisten en tener multiples servidores de Postgresql con un minimo de un Master y una Replica
para lograrlo se deben realizar hacer cambios en las configuraciones de la base de datos Master
en postgresql.conf
# los archivos de bitacora se comporten como hot standby
# es decir mantiene los archivos hasta que las replicas los utilizen
wal_level = hot_standby
# Este valor corresponde a la cantidad de replicas que vamos a tener
max_wal_senders = 1
# Como trataremos los archivos de bitacora, los archivaremos para que los puedan leer lar replicas
archive_mode = on
# Se especifica un comando de linux para copiar los archivos
archive_command = 'cp %p /tmp/%f'
tambien en el archivo pg_hba.conf en la base de datos Master
se debe agregar la ip de la base de datos para replicacion
local all all md5
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
host all all 0.0.0.0/0 md5
host replication all xxxxxxxxxx/32 trust
Ahora para la base de datos de Replica nos conectamos por SSH
Detenemos el servicio
sudo service postgresql stop
Borramos los datos locales
rm -rf /var/lib/pgsql/data/*
Traemos todos los datos de master y los traemos a replica
# esto define este postgres como una base de datos de replica
hot_standby = on
Ahora que los cambios estan hechos reiniciamos el servicio
sudo service postgresql start
A partir de ahora las configuraciones se han guardado y ya funcionan en modo de master y replica
incluso la contraseña del servicio replica ahora sera la misma del servicio master
a partir de ahora todos los cambios hechos en master se recrean en replica, y cualquier cambio hecho en replica no se ejecutara ya que estara en modo de solo lectura.
👍
Gracias por el aporte!
Tristemente, esta parte del curso ya no es realizable porque CloudJiffy ahora permite solo una base de dator/env :(
Lo mismo me sucedió a mí. No lo pude hacer por esa misma razón.
x2
Actualicen esta clase, ya pasaron dos años.
Ya van 4 años....
Ya van 5 años...
jaja el profe usando la analoía master y slave, me recuerda al curso de github en donde ya no se llama master sino main por el tema del racismo
JAJAJAJ sí eso pense
Como el curso tiene 3 años, yo intenté usar la misma plataforma que el profesor, pero no pude ni registrarme, así que busqué como hacer la base de datos de réplica desde AWS (Amazon Web Services). Aquí les dejo el tutorial que hice para crearla.
Para poder activar la ipv4 parece que es necesario pagar :(
Me sucede lo mismo.
Alguien tendra una solución?
AWS
La única clase que se debe actualizar o tratar de explicar un poco mejor en relación a los cambios en los archivos de postgre en cada base de datos.
Que interesante esta clase, a un que no pude seguir la practica (No me pude conectar) segun lo que entendi las replicas son muy importantes
me pasa igual, no pude conectar con la practica.
El curso esta desactualizado
No pude seguir al profe porque Cloudjiffy ya no funciona como en ese momento :\ no pude crear mas de un servidor ni tampoco tener la iP
@powerhard777 ¿Cómo te fue?, inicié el curso con Docker y al parecer con eso lo hacen
Me parece tan mal que se compre acceso a todos estos curso, y sean desactualizados y los ejercicios que explican ya no funcionen.
En especial porque las versiones que usan ya no son compatibles.
Hay que actualizar esta clase porfavor.
totalmente de acuerdo
Ya esta clase no es útil a nivel práctico, solo queda de forma ilustrativa porque en cloudify no se pueden crear dos servicios de base de datos con cuenta gratuita
¿Es posible actualizar la información en una réplica?
La respuesta es si, porque la base de datos Maestra actualiza sobre la replica. Entonces, si se puede.
El usuario puede hacerlo? no... entonces la pregunta, puede el usuario modificar la replica? la repsuesta es NO.
Pero la replica si es modificada por la base de datos Maestra, para que ahi los usuarios puedan hacer las consultas
hay un pequeño error de planteamiento en la pregunta
Exacto!
El profesor con un polo de whisky......
Estimados,
pueden hacer un ejemplo(video) de replicación sincrona y asincrona en linux?
debian por ejemplo.
Gracias.
Si te das cuenta, todo lo hicimos por archivos de configuración y ejecutando un comando en consola de linux, la interfaz de jelastic ayuda a ver las cosas más "bonitas" pero todo el proceso lo hicimos a mano. La única diferencia eso si, es que jelastic crea un usuario y clave de manera predeterminada que luego es enviado por correo, al hacerlo todo por consola de linux, tú mismo creas el usuario y la clave, de resto igual.
Excelente contenido del curso, pero lastimosamente a hoy esta desactualizado y no deja seguir los pasos como se describe en el video. Cada cuanto se actualiza el contenido del curso
Este Capitulo de replicas, es excelente, proximos proyectos como base de datos, elijo Postgresql
Sí, muy buen capítulo.
Ya ni siquiera deja crear más de 2 environment. solo permite 1 en free.
Siempre ha permitido uno solo, si bien es cierto no es didactico para nosotros por abrir un entorno gratuito no es que desactualizado, si se dan cuenta en la cuenta del video sale "Balance $6.88", es decir la tiene en cuenta de pago por eso le permite hacer esto.