Replicação de dados síncrona com Postgres
Neste artigo mostrarei como fazer uma replicação assíncrona com banco de dados Postgres na versão 9.5 em um Ubuntu 16.10.
Introdução sobre replicação de dados
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!
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:
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.
Trocaremos também a variável "wal_keep_segments", que especifica a quantia de segmentos de arquivo de logs passados.
Trocaremos também a "max_wal_senders" para o número de replicadores que teremos, que no nosso exemplo será apenas 1.
Colocaremos o hot_standby para on, edite a seguinte linha, trocando off por 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:
Onde:
Agora reinicie o postgresql:
# service postgresql restart
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.confEdite 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
---
Atenciosamente,
Hugo Cerqueira