Árvore de páginas

Pré-requisitos

Para prosseguir com a configuração, assegure-se que:

  • Você possui um servidor principal e um servidor secundário com PostgreSQL instalados;
  • Os servidores de banco de dados possuem conexão estabelecida entre eles;
  • Você possui um usuário designado no servidor principal responsável pela réplica;
  • Não há usuários conectados na base principal.

Como fazer?

No servidor primário

Altere os seguintes parâmetros diretamente no banco de dados, ou no arquivo de configuração postgresql.conf:

Pelo pgAdmin, psql ou outro conector com o banco de dados
ALTER SYSTEM SET wal_level = replica;
ALTER SYSTEM SET hot_standby = on;
Arquivo postgresql.conf
wal_level: replica
hot_standby: on

Após isso, dê a permissão para o usuário designado para replicação no arquivo pg_hba.conf. Troque "<usuario-de-replicacao>" pelo usuário que irá fazer a replicação, "<range-de-ip>" pela faixa de IPs ou pelo IP do servidor secundário, e <metodo-de-autenticacao>" pelo método de autenticação que será utilizado pelo usuário de replicação.

pg_hba.conf
host replication <usuario-de-replicacao> <range-de-ip> <metodo-de-autenticacao>

Após as alterações, reinicie o servidor do banco de dados:

sudo systemctl restart postgresql-15.service

No servidor secundário

Antes de iniciar, pare o serviço de banco de dados:

sudo systemctl stop postgresql-15.service

Com o usuário postgres, execute o comando a seguir. Assegure-se de trocar cada item pelo correspondente em sua base:

  • <host-servidor-primario>: Endereço IP ou hostname do servidor primário
  • <usuario-de-replicacao>: Usuário configurado no servidor primário responsável pela replicação
  • <porta>: Porta utilizada pelo banco de dados. A porta padrão é 5432
  • <diretorio-postgres>: Diretório de destino para a escrita do output

Em caso de dúvidas, leia mais sobre o comando neste link.

su - postgres
pg_basebackup -h <host-servidor-primario> -U <usuario-de-replicacao> -p <porta> -D <diretorio-postgres> -Fp -Xs -P -R -C -S pgstandby

Após as alterações, inicie o serviço de banco de dados.

sudo systemctl start postgresql-15.service

O servidor secundário é usado somente para leitura. Não pode realizar a inclusão ou deleção de objetos no banco de dados.


  • Sem rótulos