Instalar e configurar repmgr para PostgreSQL (master e standby)

Importante: repmgr deve ser compilado com os headers do PostgreSQL (postgresql-devel). Teste cada etapa em um ambiente controlado antes de aplicar em produção.
O que é repmgr
repmgr é uma ferramenta de gerenciamento de replicação para PostgreSQL que ajuda na criação, monitoramento e promoção de nós de standby. Definição rápida: repmgr automatiza tarefas operacionais comuns em arquiteturas master/standby.
Variantes de busca (intenção principal + termos relacionados)
- Instalar repmgr no PostgreSQL
- Configurar repmgr master standby
- Clonar banco PostgreSQL com repmgr
- repmgr compile instalar
Requisitos prévios
- Acesso root ou sudo nos servidores master e slave.
- Usuário postgres disponível.
- PostgreSQL e seus headers (postgresql-devel) instalados.
- Conectividade de rede entre master e slave.
Passo 5. Instalar o código-fonte do repmgr manualmente em ambos os servidores (master e slave)
Baixe repmgr de http://projects.2ndquadrant.it/sites/default/files/repmgr-1.1.0.tar.gz para /tmp.
Antes de compilar repmgr com o PostgreSQL, instale os pacotes necessários:
zypper install make gcc postgresql-devel libxslt-devel pam-devel libopenssl-devel krb5-devel
Agora compile e instale o repmgr:
make USE_PGXS=1
make USE_PGXS=1 install
Verifique se repmgr foi instalado corretamente:
repmgr --version
repmgrd --version
Execute essas verificações tanto no master quanto no slave. No próximo passo vamos clonar o banco master para o slave; confirme a instalação antes de prosseguir.
Passo 6. Clonar o banco master para o slave (apenas no SLAVE)
No servidor slave, troque para o usuário postgres e execute o comando de clone:
su - postgres
repmgr -D /var/lib/pgsql/data -d pgbench -p 5432 -R postgres --verbose standby clone pgmaster
Você verá mensagens de log no terminal do slave durante o processo de clone.
Depois do clone, inicie o PostgreSQL no slave:
/etc/init.d/postgresql start
Nota: em sistemas modernos o serviço pode ser gerenciado com systemctl (por exemplo, systemctl start postgresql). Use o método adequado ao seu SO.
Passo 7. Configurar o arquivo repmgr.conf em master e slave
Crie o diretório do repmgr e um arquivo repmgr.conf no master com o conteúdo a seguir:
cluster=test
node=1
conninfo='host=pgmaster user=postgres dbname=pgbench'
No slave, crie o repmgr.conf com:
cluster=test
node=2
conninfo='host=pgslave user=postgres dbname=pgbench'
Coloque repmgr.conf em /var/lib/pgsql/repmgr/ ou no caminho que você estiver usando e ajuste permissões para que o usuário postgres consiga ler.
Passo 8. Registrar master e slave e iniciar o processo de monitoramento
No servidor master, registre o nó master:
repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose master register
No servidor slave, registre o nó standby:
repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose standby register
Verifique o status de replicação:
psql pgbench -c 'select * from repmgr_test.repl_status'
O slave normalmente ficará ~1 segundo atrás do master, dependendo da carga e da latência.
Teste rápido de replicação
No banco master:
psql pgbench -c "create table test ( test varchar(30));"
psql pgbench -c "insert into test values ( 'test123');"
No slave, verifique se os dados chegaram:
psql -h pgslave pgbench -c "select * from test"
Bingo — se você vir os dados no slave, a replicação está funcionando.
Trabalho recomendado para o futuro (melhorias)
- Crie um usuário dedicado para repmgr em vez de usar o usuário postgres.
- Existe um bug conhecido no repmgr; há um commit/fix que pode interessar: https://github.com/greg2ndQuadrant/repmgr/commit/7427988628f754e57069453d65a71f79117c3a3d
- Leia a documentação do repmgr para procedimentos de promoção do standby quando o master falhar.
- Há várias maneiras de verificar se a replicação está ativa; consulte a documentação do PostgreSQL no site oficial.
- Se precisar, contate o autor original em [email protected].
- Leia sempre o README incluído no pacote repmgr.
Checklists rápidas
Checklist do DBA (antes de replicar):
- Backups completos feitos e verificados
- Mesma versão do PostgreSQL nos nós
- Configurações de wal_level, max_wal_senders, wal_keep_segments ajustadas
- Conectividade de rede testada (portas e firewall)
Checklist do Sysadmin (infra):
- Permissões e dono do diretório de dados corretos
- Usuário de serviço (postgres) presente
- Configuração do serviço (systemd / init.d) pronta
- Rotina de monitoramento em produção configurada
Mini-metodologia (passos essenciais)
- Preparar ambiente e instalar dependências.
- Compilar e instalar repmgr nos nós.
- Clonar o master no standby (standby clone).
- Configurar repmgr.conf e registrar nós.
- Validar replicação e criar procedimentos de promoção.
Fluxo de decisão para failover (Mermaid)
flowchart TD
A[Detecta falha no master] --> B{replica está atualizada?}
B -- Sim --> C[Promover standby para master]
B -- Não --> D[Executar aplicação de WAL e verificar consistência]
D --> E{Consistente?}
E -- Sim --> C
E -- Não --> F[Investigar/logs e restaurar de backup]
C --> G[Atualizar reconfiguração dos clientes]
Cenários em que isso pode falhar (contra-exemplos)
- Diferenças de versão do PostgreSQL entre master e standby.
- Permissões incorretas nos diretórios de dados.
- Parâmetros de WAL insuficientes (ex.: wal_level = minimal).
- Firewalls bloqueando replicação.
Solução de problemas rápida
- Verifique logs do PostgreSQL (pg_log) em ambos os nós.
- Teste conexão manual com psql usando os parâmetros de conninfo.
- Confirme a versão do repmgr com repmgr –version.
- Se o clone falhar, remova dados parciais no standby e repita o processo de clone.
Critérios de aceitação (o que confirmar antes de considerar concluído)
- repmgrd está em execução nos nós com status saudável.
- repmgr -f … cluster show retorna ambos os nós registrados.
- Dados criados no master aparecem no standby em segundos.
- Procedimento de promoção testado e documentado.
Referências
2ndQuadrant repmgr: http://projects.2ndquadrant.com/repmgr PostgreSQL Wiki (Hot Standby): http://wiki.postgresql.org/wiki/Hot_Standby PostgreSQL Wiki (Binary Replication Tutorial): http://wiki.postgresql.org/wiki/Binary_Replication_Tutorial
Resumo
- Compile e instale repmgr com USE_PGXS=1 após instalar os pacotes de desenvolvimento do PostgreSQL.
- Clone o master para o standby usando repmgr standby clone.
- Configure repmgr.conf nos dois nós e registre master e standby.
- Teste replicação criando dados no master e consultando no standby.
Extras: role-based checklists incluídas; fluxograma de decisão para failover; dicas de troubleshooting.
Nota: adapte caminhos e nomes de hosts (pgmaster, pgslave) ao seu ambiente.
Materiais semelhantes

Ler mensagens excluídas no WhatsApp
Recuperar fotos apagadas do iCloud
Automatizar instalação com Kickstart no CentOS/Fedora

Ocultar pontuação no Snapchat

Como compartilhar a tela no Microsoft Teams
