Esse ano, segundo fontes confiáveis, é aniversário da Comunidade Brasileira de PostgreSQL. E pra fazer a minha parte (e tirar a poeira do blog) eu lanço um desafio público: falar sobre a replicação do PostgreSQL. E isso não é pouca coisa!
Até o momento, essas são as soluções mais populares:
A idéia é fazer um ambiente de testes utilizando a versão mais recente do banco e da solução cobrindo os pontos abaixo:
Pra simplificar o processo de setup do lab, eu criei uma configuração do Vagrant composta de duas máquinas virtuais na configuração abaixo:
Detalhes da configuração de rede:
Hostname | IP |
---|---|
master | 192.168.100.100 |
slave | 192.168.100.200 |
Abaixo segue o Vagrantfile:
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
Vagrant.configure(2) do |config| | |
config.vm.box = "centos/7" | |
config.vm.provider "virtualbox" do |vb| | |
vb.gui = false | |
vb.memory = "2048" | |
end | |
config.vm.provision :shell, inline: "sudo yum install -y epel-release https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm" | |
config.vm.provision :shell, inline: "sudo yum install -y postgresql96-server postgresql96-contrib vim " | |
config.vm.define "master" do |master| | |
master.vm.hostname = "masterdb" | |
master.vm.network "private_network", ip: "192.168.100.100" | |
end | |
config.vm.define "slave" do |slave| | |
slave.vm.hostname = "slavedb" | |
slave.vm.network "private_network", ip: "192.168.100.200" | |
end | |
end |
Para utiliza-lo, execute:
mkdir desafio_pgsql | |
cd desafio_pgsql | |
wget https://gist.githubusercontent.com/sebastianwebber/d49ac8507d48c9cfdc4f/raw/a2e04de075512af61c163ee8511082ab76fb5eaf/Vagrantfile.rb -O Vagrantfile | |
vagrant up |
A base de testes adotada é o banco do IMDB. Pra simplificar o processo de importação e teste eu já deixei um dump prontinho na URL abaixo:
Detalhes pra importação do dump são os de sempre:
createdb -U postgres imdb
pg_restore -U postgres -d imdb -Fc --disable-triggers imdb.dump -j 4
vacuumdb -U postgres -d imdb -z
Na sequência já publico detalhes de como popular e alterar os dados.
E aí, vai encarar?