Implementacion de FailOver en Postgresql paso a paso desde cero

  Рет қаралды 5,713

CodigoBinario

CodigoBinario

Күн бұрын

Пікірлер: 64
@a3tro2s
@a3tro2s 6 ай бұрын
Muchas Gracias por el contenido de tu video, esta solución me ayudo mucho en un proyecto!
@CodigoBinarioo
@CodigoBinarioo 6 ай бұрын
Me alegro que te ayudo. Saludos
@relajaod2
@relajaod2 5 ай бұрын
Primero agradecerles por los videos, son muy ilustrativos y me han servido bastante para un proyecto de cluster de postgres. me podrias ayudar en saber como mantener la IP de conexion al postgres o al cluster para que se conecten desde las aplicaciones, en caso de una falla del nodo principal.
@CodigoBinarioo
@CodigoBinarioo 5 ай бұрын
Hola, lo de la ip lo podes hacer por dns
@renemirandamunoz3953
@renemirandamunoz3953 3 ай бұрын
Hola, estoy implementando la herramienta, estoy usando postgres 16 con repmgr 5.4, los tengo en 3 maquinas con debian 12 como s.o , una física y dos que están virtualizadas pero en maquinas diferentes, estoy realizando el failover automático pero cuando desconecto o detengo el servicio de postgres para el nodo principal hace el failover, se cambia el siguiente nodo y este queda como primario con un siguiente timeline, pero cuando restablezco el servicio del nodo que estaba conectado, entra al cluster como primario pero también con el mismo timeline, debido a lo anterior me quedan dos nodos primarios con diferentes timeline, osea que el nodo primario que estaba inactivo no se sincroniza con el nuevo nodo primario actual. ¿Como haría para que el nodo principal se sincronice con el nodo primario actual, que solo me quede un nodo primario corriendo y los demás nodos corriendo en standby ?
@CodigoBinarioo
@CodigoBinarioo 2 ай бұрын
Tenes que ver la conf de repmgr, creo que por ahi tenes el problema. SAludos
@eadweardturcotte4355
@eadweardturcotte4355 25 күн бұрын
Apreciable @CodigoBinarioo, este laboratorio funciona igual para Ubuntu Server? Gracias de antemano
@CodigoBinarioo
@CodigoBinarioo 24 күн бұрын
Si, puede ser que cambie el nombre de algunos paquetes
@mixup9594
@mixup9594 Жыл бұрын
Excelente vídeo, lo realice en un rhel 9.1y cambian algunas cosas pero todo funciono bien. Tengo una duda, la base de datos que replica es la base de datos llamada "repmgr" pero, ¿Si tengo 3 bases de datos, como las puedo replicar?
@mixup9594
@mixup9594 Жыл бұрын
O solo agrego las bases de datos que quiero replicar en el archivo del min 4:30. Ejemplo: # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 scram-sha-256 host replication repmgr 1.1.1.0/24 trust host replication Base_datos_ejemplo 1.1.1.0724 trust podria ser de esta forma tomando de ejemplo " Base_datos_ejemplo". si es asi, ¿se debera agregar algo extra a la configuracion?
@CodigoBinarioo
@CodigoBinarioo Жыл бұрын
Hola no entiendo tu pregunta, decís si tenes 3 master para replicar? repmgr es el software que maneja la replicación y la alta disponibilidad. Saludos
@mixup9594
@mixup9594 Жыл бұрын
@@CodigoBinariooel detalles que si en un host tengo 3 base de datos, se puede replicar esas 3 bases de datos en los hosts de replica?
@CodigoBinarioo
@CodigoBinarioo Жыл бұрын
Ahi le da permisos al host de la base, el pg_hba.conf es como si fuera iptables en linux. Lo que tenes que hacer es instalar repmgr en cada servidor y configurarlo como master y y slave. Saludos
@CodigoBinarioo
@CodigoBinarioo Жыл бұрын
Si, replicas todo
@juancarlosmaya2899
@juancarlosmaya2899 Жыл бұрын
en el caso de que al momento de dar el comando "repmgr cluster matrix" me manda que los nodos son innaccessibles via ssh, y si configure el ssh para cada nodo y me deja entrar sin contraseña
@CodigoBinarioo
@CodigoBinarioo Жыл бұрын
Fijate que sea reciproco, que te puedas conectar sin pass de uno a otro y viceversa y también que localmente se puede conectar sin contraseña. Saludos
@juancarlosmaya2899
@juancarlosmaya2899 Жыл бұрын
Si, si puedo conectarme con todos sin password e igual localmente y sigue sin conexión vía ssh almenos cuando pongo repmgr cluster matrix, no sé si sea configuración de sshd_config o de repmgr.conf
@CodigoBinarioo
@CodigoBinarioo Жыл бұрын
Juan si el repmgr te dice que los nodos no son accesibles por ssh el problema esta ahi, tenes que mirar por ahi. Fijate que te debe de decir que nodo porque no deben de ser todos. Saludos
@flavioe.salasm.9922
@flavioe.salasm.9922 6 ай бұрын
tenia el mismo error que tu. si conectas por ssh entre nodos pero no al hacer uso del comando repmgr cluster matrix el problema esta en el pg_hba.conf no quise colocarle trust por problemas de seguridad. yo cree un enviroment con las variables de postgres export PGUSER='postgres' export PGHOST='pg_host' export PGDATABASE='postgres' export PGPASSWORD=xxxxx' y lo llamo al logearme en el archivo /var/lib/pgsql/.bash_profile ese archivo no lo llama ssh y por ende no tengo acceso. es un problemita de accesos solucion activar variables de entorno en ssh. tambien puedes crear un script que carge las variables de entorno y ejecute el repmgr con tu argumento algo asi como #!/bin/bash # Cargar variables de entorno desde .env source /var/lib/pgsql/.env # Ejecutar repmgr con los argumentos pasados /usr/lib64/postgresql/14/bin/repmgr -f /var/lib/pgsql/repmgr.conf "$@"
@ottopaiz8064
@ottopaiz8064 2 ай бұрын
hola, tengo una pregunta? , las aplicaciones como saben cual es el nodo promovido a primario? o como se conectan las app despues de un cambio de rol??
@CodigoBinarioo
@CodigoBinarioo 2 ай бұрын
Las aplicaciones las tenes que conectar vos, podes hacer un script para que en caso de una caída se conecte al master disponible. Saludos
@UNk-wy2ug
@UNk-wy2ug 8 ай бұрын
@CodigoBinario sabes cual podria ser la razón que al ejecutar el comando repmgr node service --list-actions --action=start me mande un rechazo bash: por el comando repmgr no encontrado, ya revise el codigo y todo esta igual, desconozco la razón :c
@CodigoBinarioo
@CodigoBinarioo 8 ай бұрын
No esta en el path del usuario, agrégalo en el profile del usuario. Saludos
@UNk-wy2ug
@UNk-wy2ug 8 ай бұрын
@@CodigoBinarioo lo he realizado así, pero me meciona lo mismo, incluso he repetido el proceso postgres ALL= NOPASSWD: /bin/systemctl stop postgresql-13, \ /bin/systemctl start postgresql-13, \ /bin/systemctl status postgresql-13, \ /bin/systemctl restart postgresql-13, \ /bin/systemctl reload postgresql-13, \ /bin/systemctl start repmgr13, \ /bin/systemctl status repmgr13, \ /bin/systemctl restart repmgr13, \ /bin/systemctl reload repmgr13, \ /bin/systemctl stop repmgr13
@UNk-wy2ug
@UNk-wy2ug 8 ай бұрын
@@CodigoBinarioo que distribucion usaste para hacerlo?
@CodigoBinarioo
@CodigoBinarioo 8 ай бұрын
Centos
@UNk-wy2ug
@UNk-wy2ug 8 ай бұрын
@@CodigoBinarioo muchas gracias!!!!!
@erickmiranda6152
@erickmiranda6152 7 ай бұрын
@CodigoBinario hola, estoy realizando los pasos que indicas pero con la versio 15 de postgresql y repmgr , pero el servicio repmgr se cae , el error que indica es que no se sumninistra la password, alguna idea de por que ocurre esto con esa version?
@CodigoBinarioo
@CodigoBinarioo 7 ай бұрын
Pega acá el log para ver si te puedo ayudar
@JosAc-k6t
@JosAc-k6t Ай бұрын
Hola espero pueda respomderme me funciono muy bien pero como hago que mis replica vuelvan a standby cuando el master vuelva a estar activo?
@CodigoBinarioo
@CodigoBinarioo Ай бұрын
Volves a switchear, no recuerdo bien porque este video ya tiene un tiempo pero creo que esta ahi. Saludos
@jorgeluisduranmontero9098
@jorgeluisduranmontero9098 Жыл бұрын
@CodigoBinarioo Saludos, tengo esta situación y quería saber si el video aplica para dar solución a la misma o si existe alguna variante o forma de hacerlo: Tengo un servidor postgresql con postgis para datos geográficos, coordenadas, polígonos, etc... a ese servidor se conectan 15 clientes en otros lugares, pero el servidor no siempre está funcional por situaciones energéticas en mi país... lo que necesitaría es implementar servidores en estos 15 clientes, y que el trabajo que se realice en todos estos se replique en el servidor principal.
@CodigoBinarioo
@CodigoBinarioo Жыл бұрын
Hola Jorge como estas A ver si te entiendo, vos lo que queres que todos los servidores te repliquen a uno y que ese uno sea el que brinde servicios a los usuarios? un master a master? Saludos
@jorgeluisduranmontero9098
@jorgeluisduranmontero9098 Жыл бұрын
@@CodigoBinarioo Algo así... a ver en mi empresa actualmente hay un servidor postgresql principal al que se conectan clientes de distintos lugares del país, pero resulta que aca hay muchos cortes eléctricos y cuando el servidor se apaga, los clientes no pueden trabajar..... Lo que estaba pensando es un servidor local para cada cliente, y que estos actualicen al provincial porque necesito tener toda la información de los clientes. Esa es la idea, que cuando se caiga el servidor principal puedan los clientes seguir trabajando y cuando levante el servidor provincial este se actualice de los cambios que han hecho los clientes, y los clientes a la vez se actualicen de los cambios realizados por otros clientes... no se si es un disparate y no se pueda hacer..
@CodigoBinarioo
@CodigoBinarioo Жыл бұрын
Si se puede hacer pero ahi yo lo que haría es una replicación manual por medio de script de sql ya que ahi dependes mucho de las conexiones. Hay que estudiarlo bien pero si se puede
@a3tro2s
@a3tro2s 6 ай бұрын
Hola Excelente video! me sirvió mucho pero tengo un detalle luego de instalar el repmgr13 el servicio queda abajo lo activo y luego le doy start y en el journalctl me sale este error: en particular: ay 31 16:52:45 SERVRL93A repmgrd[9262]: [2024-05-31 16:52:45] [NOTICE] using provided configuration file "/etc/repmgr/13/repmg> May 31 16:52:45 SERVRL93A repmgrd[9262]: [2024-05-31 16:52:45] [ERROR] following errors were found in the configuration file: May 31 16:52:45 SERVRL93A repmgrd[9262]: "conninfo": missing "=" after "localhost" in connection info string May 31 16:52:45 SERVRL93A repmgrd[9262]: (provided: "localhost") May 31 16:52:45 SERVRL93A systemd[1]: repmgr-13.service: Control process exited, code=exited, status=1/FAILURE Cabe destacar que en a linea de conninfo: ya he seteado la ip, el hostname, localhost pero igual me sigue saliendo "conninfo": missing "=" after "localhost" in connection info string
@CodigoBinarioo
@CodigoBinarioo 6 ай бұрын
Que tenes en el /etc/hosts
@a3tro2s
@a3tro2s 6 ай бұрын
@@CodigoBinarioo Listo era el file pg_hba.conf y las reglas. ahora me sale esto; [postgres@SERVRL93A bin]$ /usr/pgsql-13/bin/repmgr primary register INFO: connecting to primary database... ERROR: connection to database failed DETAIL: fe_sendauth: no password supplied DETAIL: attempted to connect using: user=repmgr dbname=repmgr host=SERVRL93A connect_timeout=2 fallback_application_name=repmgr options=-csearch_path= y en el repmgr.conf tengo lo que pusistes en el comentario. pide esa password pero solo se seteo la de postgres en el SO. disculpa la joda, pero que llama esa variable $user en: psql -c 'ALTER USER repmgr SET search_path TO repmgr, "$user", public';
@CodigoBinarioo
@CodigoBinarioo 6 ай бұрын
Esto psql -c 'ALTER USER repmgr SET search_path TO repmgr, "$user", public'; lo que hace es setear el path al usurio en el schema public Desde todos los nodos podes conectarte pos ssh entre ellos sin poner el password? Saludos
@a3tro2s
@a3tro2s 6 ай бұрын
@@CodigoBinarioo SI cree 2 ssh keygen uno con ip y otro con hostname y esta previamente configurado el archivo hosts de cada nodo para que se conecten entre si!
@CodigoBinarioo
@CodigoBinarioo 6 ай бұрын
Probaste con la ip?
PostgreSQL High Availability Options
16:34
Yugabyte
Рет қаралды 7 М.
Configuración de un Servidor Web LAMPP+DNS+FTP (parte 2)
29:13
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
4° Coneccion entre dos contenedores
24:16
Calculo Recurrente
Рет қаралды 27
Galera Cluster MariaDB 💡 Tutorial en español con Centos Linux
36:57
Manuel Cabrera Caballero
Рет қаралды 6 М.
Aprende SSH en Linux con tutorial paso a paso
18:54
KrakenTI
Рет қаралды 36
Webinar: Las Variaciones de la Replicación de PostgreSQL
1:04:26
webinar Evolución y futuro de PostgreSQL
1:05:04
OpenIT Software Libre
Рет қаралды 148
Listas en Python
12:04
CodigoBinario
Рет қаралды 224
Cluster base de datos y un ejemplo práctico
28:01
David Morales
Рет қаралды 3,5 М.
PostgreSQL Replication Failback with pg_rewind
13:13
Scaling Postgres
Рет қаралды 8 М.