Gracias y el logs del esclavo que te dice?
On 20/9/21 13:42, Ekaterina Amez wrote:
Hola Anthony,
En el archivo recovery.conf tengo puesto
Standby_mode=on
Y en el postgresql.conf
Hot_standby=on
Saludos.
El El lun, 20 sept 2021 a las 18:30, Anthony Sotolongo
<asotolo...@gmail.com <mailto:asotolo...@gmail.com>> escribió:
Hola Ekaterina, ¿Qué valor tiene hot_standby en el esclavo?
Saludos
On 20/9/21 11:48, Ekaterina Amez wrote:
Hola Lista,
Estoy probando a montar una réplica sencilla entre mi ordenador
(Ubuntu 18.04) y un ordenador que tengo para pruebas (CentOS7).
El CentOS es el servidor maestro y el Ubuntu el esclavo. Ambos
con PG 9.6.23 instalado. Uno está en la IP 192.168.1.65:5433
<http://192.168.1.65:5433> (maestro) y el otro en la 60
(esclavo). Como veis, el maestro está ejecutándose en otro puerto
que no es el de por defecto.
El maestro está configurado así (postgresql.conf):
wal_level = replica
archive_mode = on
archive_command = 'cp %p /var/lib/pgsql/9.6/wal_archive/%f'
max_wal_senders = 2
wal_keep_segments = 8
synchronous_standby_names = 'pgslave001'
hot_standby = on
Y las conexiones están configuradas así (pg_hba.conf):
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 0.0.0.0/0 <http://0.0.0.0/0> trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 192.168.1.0/24 <http://192.168.1.0/24> trust
Utilizo esta configuración porque quiero asegurarme de que no
tengo problemas de conexión. El firewall de CentOS está abierto:
[root@test-eka data]# sestatus
SELinux status: disabled
[root@test-eka data]# firewall-cmd --list-services
dhcpv6-client http postgresql ssh
[root@test-eka data]# firewall-cmd --service=postgresql
--add-port=5433/tcp --permanent
Warning: ALREADY_ENABLED: '5433:tcp'
success
Desde el servidor esclavo puedo conectarme sin problemas al maestro:
$ /usr/lib/postgresql/9.6/bin/psql -h 192.168.1.65 -p 5433 -U
postgres
psql (9.6.23)
Digite «help» para obtener ayuda.
postgres=# \q
Con esto así, hago el backup inicial:
sudo -u postgres /usr/lib/postgresql/9.6/bin/pg_basebackup -h
192.168.1.65 -p 5433 -U replicador -D
/var/lib/postgresql/9.6/main --verbose --progress --xlog
Creo el archivo recovery.conf
restore_command = 'scp
192.168.1.65:/var/lib/pgsql/9.6/wal_archive/%f %p'
standby_mode = on
primary_conninfo = 'host=192.168.1.65 port=5433 user=replicador
password=replicador application_name=pgslave001'
Y arranco el esclavo:
ekaterina@ekaterina-ubuntu:$ sudo systemctl start
postgresql@9.6-main.service <mailto:postgresql@9.6-main.service>
ekaterina@ekaterina-ubuntu:$ sudo systemctl status
postgresql@9.6-main.service <mailto:postgresql@9.6-main.service>
● postgresql@9.6-main.service
<mailto:postgresql@9.6-main.service> - PostgreSQL Cluster 9.6-main
Loaded: loaded (/lib/systemd/system/postgresql@.service;
indirect; vendor preset: enabled)
Active: active (running) since Mon 2021-09-20 16:41:52 CEST;
4s ago
Process: 9783 ExecStop=/usr/bin/pg_ctlcluster
--skip-systemctl-redirect -m fast 9.6-main stop (code=exited,
status=0/SUCCESS)
Process: 10060 ExecStart=/usr/bin/pg_ctlcluster
--skip-systemctl-redirect 9.6-main start (code=exited,
status=0/SUCCESS)
Main PID: 10065 (postgres)
Tasks: 5 (limit: 4915)
CGroup:
/system.slice/system-postgresql.slice/postgresql@9.6-main.service
├─10065 /usr/lib/postgresql/9.6/bin/postgres -D
/var/lib/postgresql/9.6/main -c
config_file=/etc/postgresql/9.6/main/postgresql.conf
├─10066 postgres: 9.6/main: startup process
recovering 00000001000000000000001A
├─10070 postgres: 9.6/main: checkpointer process
├─10071 postgres: 9.6/main: writer process
└─10072 postgres: 9.6/main: wal receiver process
streaming 0/1A01D7B8
sep 20 16:41:46 ekaterina-ubuntu systemd[1]: Starting PostgreSQL
Cluster 9.6-main...
sep 20 16:41:52 ekaterina-ubuntu postgresql@9.6-main
<mailto:postgresql@9.6-main>[10060]: Warning: connection to the
database failed, disabling startup checks:
sep 20 16:41:52 ekaterina-ubuntu postgresql@9.6-main
<mailto:postgresql@9.6-main>[10060]: psql: FATAL: el sistema de
base de datos está iniciándose
sep 20 16:41:52 ekaterina-ubuntu systemd[1]: Started PostgreSQL
Cluster 9.6-main.
Me da igual arrancarlo con pg_ctl que con systemctl. El esclavo
parece arrancado (la última línea dice Started) pero cuando
intento conectar con la bd esclava me da error:
ekaterina@ekaterina-ubuntu:$ /usr/lib/postgresql/9.6/bin/psql -U
postgres
psql: FATAL: el sistema de base de datos está iniciándose
Sin embargo, algo está arrancado porque cuando lanzo de nuevo
sudo systemctl status postgresql@9.6-main.service
<mailto:postgresql@9.6-main.service> veo que en "wal receiver
process" va avanzando y encaja con lo que se puede ver en el maestro:
postgres=# select * from pg_stat_replication ;
-[ RECORD 1 ]----+------------------------------
pid | 3556
usesysid | 16404
usename | replicador
application_name | pgslave001
client_addr | 192.168.1.60
client_hostname |
client_port | 52418
backend_start | 2021-09-20 16:41:46.648487+02
backend_xmin |
state | streaming
sent_location | 0/1A01D898
write_location | 0/1A01D898
flush_location | 0/1A01D898
replay_location | 0/1A01D898
sync_priority | 1
sync_state | sync
¿Qué es lo que estoy haciendo mal? Aviso por adelantado de que
mis conocimientos de Linux son limitados.
Muchas gracias,
Ekaterina
--
*Ekaterina Amez González*
ekaterina.a...@zunibal.com <mailto:ekaterina.a...@zunibal.com>
**
*ZUNIBAL*| Idorsolo 1, 48160-Derio, Spain
<https://maps.google.com/?q=Idorsolo+1,+48160-Derio,+Spain&entry=gmail&source=g>
Tel: +34 944 977 010 <tel:+34%20944%2097%2070%2010> | Fax: +34 944 522
81| www.zunibal.com <http://www.zunibal.com/>
**
/_Advertencia Legal._ El contenido de este mensaje y de toda la
documentación anexa es confidencial y va dirigido únicamente al
destinatario del mismo. Si usted no fuera el destinatario le
solicitamos que nos informe y no comunique su contenido a terceros,
procediendo a su destrucción. / Legal advice. This message contains
confidential information for the exclusive use of the recipient. Any
unauthorised disclosure, use or dissemination, either whole or
partial, is prohibited. If you are not the intended recipient of the
message, please notify the sender as soon as possible. En cumplimiento
de la _Ley Orgánica 15/1999_ de Protección de Datos de Carácter
Personal, le informamos que los Datos Personales de usted que están en
nuestra Base de Datos recabados con su consentimiento, forman parte de
un fichero automatizado registrado en la Agencia Española de
Protección de Datos. Estos datos sólo serán utilizados para realizar
una correcta gestión de nuestra relación comercial. Si lo desea podrá
ejercitar en todo momento los derechos de acceso, cancelación u
oposición, remitiendo un correo electrónico a esta dirección. /
According to the Law 15/1999 of Personal Data Protection, we
inform your data are included in our data base with your approval are
registered in the spanish Agency of Data Protection. //These data are
only used for our usual business relationship. If you want you are in
the right of accessing or cancelling them, just sending an e-mail to
this address./
/Antes de imprimir este mensaje, asegúrese de que es necesario
hacerlo. / Before printing this email, assess if it is really needed./