Replicação de dados é uma técnica muita conhecida em banco de dados, trata-se de uma espelhamento de dados e objetos de um banco de dados para outro, mantendo assim um espelho de uma para o outro, com isso temos como benefícios a tolerância à falhas, redundância de dados e se necessário um balanceamento de carga.
Nesse artigo iremos explorar a replicação do tipo
Master-Slave onde teremos um servidor principal (master) e os demais que receberão a cópia desse servidor (slaves).
Vamos iniciar a configuração!
Configurando o servidor master
Edite o arquivo postgresql.conf, que na versão 9.5 encontra-se em:
/etc/postgres/9.5/main/postgresql.conf
Edite a linha contendo o seguinte texto "
listen_addresses", que caso esteja comentada apenas remova o '#' da frente da linha e adicione o caractere "*" no lugar do localhost. Este parâmetro indica a que IP o postgres está escutando, neste caso colocaremos para escutar qualquer IP.
A linha deverá ficar assim:
listen_addresses = '*'
Agora precisamos mudar o parâmetro "
wal_level", trocar de minimal para
hot_standby, para que sejam adicionadas informações de leitura de consultas no servidor de espera.
wal_level = hot_standby
Trocaremos também a variável "
wal_keep_segments", que especifica a quantia de segmentos de arquivo de logs passados.
wal_keep_segments = 10
Trocaremos também a "max_wal_senders" para o número de replicadores que teremos, que no nosso exemplo será apenas 1.
max_wal_senders = 1
Colocaremos o hot_standby para on, edite a seguinte linha, trocando off por on.
hot_standby=on
Agora edite o arquivo pg_hba.conf, que na versão 9.5 encontra-se em:
/etc/postgres/9.5/main/pg_hba.conf
No final do arquivo adicione a seguinte linha:
host replication replicador x.x.x.x trust
Onde:
- replicador = nome de usuário que será criado
- x.x.x.x = ip slave
- trust = sem pedir senha
Agora reinicie o postgresql:
# service postgresql restart