Introdução
A replicação no PostgreSQL é essencial para garantir alta disponibilidade, balanceamento de carga e recuperação de desastres em ambientes críticos. Uma das soluções mais robustas e amplamente utilizadas para esse fim é o Repmgr (Replication Manager). Neste artigo, vamos mostrar como configurar a replicação PostgreSQL com repmgr, passo a passo, além de cobrir boas práticas e comandos úteis.
Se você busca escalabilidade, resiliência e performance em sua infraestrutura de banco de dados PostgreSQL, este guia é para você.
O que é o Repmgr?
O Repmgr é uma ferramenta de linha de comando e uma biblioteca que facilita a gestão de replicação streaming do PostgreSQL. Ele automatiza tarefas como:
- Configuração de replicação master-slave
- Failover automático
- Promover nós de standby para master
- Monitoramento de replicação
- Gerenciamento de clusters de PostgreSQL
Pré-requisitos
Antes de iniciar a configuração do Repmgr, certifique-se de:
- Ter pelo menos dois servidores Linux (ex: Ubuntu ou CentOS)
- Ter o PostgreSQL instalado (versão 12 ou superior recomendada)
- Acesso root ou sudo aos servidores
- Conectividade entre os nós via SSH
- DNS ou arquivos hosts configurados com IPs e nomes dos servidores
Instalação do Repmgr
1. Adicionando o repositório
Para Ubuntu:
bashsudo apt update
sudo apt install -y postgresql-common
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install -y repmgr
Para CentOS:
bashsudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y repmgr
Configuração da Replicação Postgres com Repmgr
2. Criar o usuário de replicação
No nó primário (master):
sqlCREATE USER repmgr WITH REPLICATION PASSWORD 'senha_segura' LOGIN;
3. Configurar postgresql.conf
Ajuste os seguintes parâmetros:
confCopiarEditarlisten_addresses = '*'
wal_level = replica
max_wal_senders = 10
hot_standby = on
Reinicie o PostgreSQL:
bashsudo systemctl restart postgresql
4. Configurar pg_hba.conf
Adicione permissões para os nós standby:
host replication repmgr 192.168.0.0/24 md5
Configuração do Repmgr
5. Arquivo repmgr.conf
No nó master, crie o arquivo /etc/repmgr/14/repmgr.conf
(ajuste a versão conforme necessário):
node_id=1
node_name=node1
conninfo='host=192.168.0.1 user=repmgr dbname=repmgr connect_timeout=2'
data_directory='/var/lib/postgresql/14/main'
log_level=INFO
log_file='/var/log/repmgr/repmgr.log'
Faça o mesmo no standby, mudando node_id
e node_name
.
6. Registrar o nó master
bashsudo -u postgres repmgr primary register
Adicionar Nó Standby
7. Clonar o master
No standby:
bashsudo -u postgres repmgr standby clone --force --dry-run --verbose
sudo -u postgres repmgr standby clone --force
8. Registrar o standby
bashsudo -u postgres repmgr standby register
Verificando o Cluster
Use o comando:
bashrepmgr cluster show
Você verá algo como:
sqlCopiarEditar ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+---------------------
1 | node1 | primary | * running | | default | 100 | 1 | host=192.168.0.1 ...
2 | node2 | standby | running | node1 | default | 100 | 1 | host=192.168.0.2 ...
Failover da Replicação PostgreSQL com Repmgr
9. Failover automático
Você pode usar o repmgrd (daemon) para failover automático:
bashsudo systemctl enable repmgrd
sudo systemctl start repmgrd
Para failover manual:
bashsudo -u postgres repmgr standby promote
Boas Práticas
- Use senhas fortes e autenticação segura
- Monitore os logs em
/var/log/repmgr/repmgr.log
- Combine o repmgr com ferramentas como PgBouncer ou HAProxy
- Faça testes de failover da solução de replicação postgresql com repmgr regularmente
Conclusão
A replicação PostgreSQL com Repmgr oferece uma solução poderosa e flexível para ambientes que exigem alta disponibilidade e tolerância a falhas. Com esse guia, você pode configurar um cluster funcional e confiável em poucos passos.
Se você gostou deste conteúdo, compartilhe e siga nosso blog para mais artigos sobre PostgreSQL, banco de dados.
Palavras-chave SEO: replicação PostgreSQL, repmgr, failover PostgreSQL, alta disponibilidade PostgreSQL, configurar repmgr, streaming replication PostgreSQL, PostgreSQL cluster, PostgreSQL master-slave