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:
ALTER SYSTEM SET wal_level = replica; ALTER SYSTEM SET hot_standby = on;
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.
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.