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 (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 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 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 ekaterina@ekaterina-ubuntu:$ sudo systemctl status postgresql@9.6-main.service ● 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[10060]: Warning: connection to the database failed, disabling startup checks: sep 20 16:41:52 ekaterina-ubuntu 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 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