Guia de tecnologias

Instalar e configurar repmgr para PostgreSQL (master e standby)

5 min read PostgreSQL Atualizado 26 Sep 2025
Repmgr no PostgreSQL: instalação e configuração
Repmgr no PostgreSQL: instalação e configuração

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

Saída do terminal mostrando instalação de pacotes via zypper

Agora compile e instale o repmgr:

make USE_PGXS=1
make USE_PGXS=1 install

Terminal com processo de compilação e instalação do repmgr

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.

Log do processo de clone do standby exibido no terminal

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"

Resultado da consulta no standby mostrando a linha replicada

Bingo — se você vir os dados no slave, a replicação está funcionando.

Trabalho recomendado para o futuro (melhorias)

  1. Crie um usuário dedicado para repmgr em vez de usar o usuário postgres.
  2. Existe um bug conhecido no repmgr; há um commit/fix que pode interessar: https://github.com/greg2ndQuadrant/repmgr/commit/7427988628f754e57069453d65a71f79117c3a3d
  3. Leia a documentação do repmgr para procedimentos de promoção do standby quando o master falhar.
  4. Há várias maneiras de verificar se a replicação está ativa; consulte a documentação do PostgreSQL no site oficial.
  5. Se precisar, contate o autor original em [email protected].
  6. 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)

  1. Preparar ambiente e instalar dependências.
  2. Compilar e instalar repmgr nos nós.
  3. Clonar o master no standby (standby clone).
  4. Configurar repmgr.conf e registrar nós.
  5. 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.

Autor
Edição

Materiais semelhantes

Ler mensagens excluídas no WhatsApp
WhatsApp

Ler mensagens excluídas no WhatsApp

Recuperar fotos apagadas do iCloud
Recuperação de Dados

Recuperar fotos apagadas do iCloud

Automatizar instalação com Kickstart no CentOS/Fedora
Linux

Automatizar instalação com Kickstart no CentOS/Fedora

Ocultar pontuação no Snapchat
Redes Sociais

Ocultar pontuação no Snapchat

Como compartilhar a tela no Microsoft Teams
Colaboração

Como compartilhar a tela no Microsoft Teams

Como ver quem está conectado no Windows Server
Windows Server

Como ver quem está conectado no Windows Server