Eu configurei a replicação repmgr em node1 e node3 (primário e standby respectivamente), e a configuração funcionou com sucesso criando novos registros e objetos em standby conforme o esperado. Mas depois de algumas semanas eu notei que a replicação não estava mais funcionando, porém alguns comandos repmgr estão retornando resultados enquanto a replicação está funcionando. Tentei reiniciar e registrar novamente o nó de espera, mas não funcionou.
Como posso continuar a replicar?
Aqui está o status dos nós:
-bash-4.2$ psql -V
psql (PostgreSQL) 10.3
NÓ1 - PRIMÁRIO
-bash-4.2$ repmgr node check
Node "node1":
Server role: OK (node is primary)
Replication lag: OK (N/A - node is primary)
WAL archiving: OK (0 pending archive ready files)
Downstream servers: OK (this node has no downstream nodes)
Replication slots: OK (node has no replication slots)
-bash-4.2$
NÓ3 - EM ESPERA
-bash-4.2$ repmgr -f /etc/repmgr/10/repmgr.conf node check
Node "node3":
Server role: OK (node is standby)
Replication lag: OK (0 seconds)
WAL archiving: OK (0 pending archive ready files)
Downstream servers: CRITICAL (1 of 1 downstream nodes not attached; missing: node3 (ID: 3))
Replication slots: OK (node has no replication slots)
-bash-4.2$ repmgr node status
Node "node3":
PostgreSQL version: 10.3
Total data size: 2393 MB
Conninfo: host=node3 user=repmgr dbname=repmgr connect_timeout=2
Role: standby
WAL archiving: disabled (on standbys "archive_mode" must be set to "always" to be effective)
Archive command: /bin/true
WALs pending archiving: 0 pending files
Replication connections: 0 (of maximal 10)
Replication slots: 0 (of maximal 10)
Upstream node: node3 (ID: 3)
Replication lag: 0 seconds
Last received LSN: 4/AC000000
Last replayed LSN: 4/AC000140
Alguns arquivos wal necessários para replicar não foram encontrados no primário. Então eu restabeleci o standby clonando-o novamente.
Comandos enviados no servidor em espera:
Você provavelmente deve aumentar seus limites de wal para manter mais arquivos, também não é uma má ideia deixá-los de lado usando o archive_command, assim
Aumente o suficiente para o seu caso de uso, 256 é apenas um exemplo aqui, os caminhos precisam de ajustes para corresponder à sua instalação.
em segundo lugar, use
cluster show
para verificar se o cluster está saudável, é mais claro do que verificar o nó.por último: Você registrou o standby após a clonagem? Você não mostra isso em sua lista de comandos. Após a clonagem, você precisa iniciar e depois registrá-lo
Se já existia na tabela repmgr.nodes, adicione
--force