Você está na página 1de 11

Replicao de dados com postgresql 9.

0
Componentes:
Jadson Santana
Dayse Soares
Bruno Vieira
Thyago Costa

Caso de uso.
Neste caso de uso ser demonstrado como criar um ambiente de
replicao no postgresql 9.0 para prover alta disponibilidade. O ambiente
proposto utilizar o sistema operacional Linux CentOs 5.3, e Postgresql 9.0.2
em um ambiente virtualizado.
No contexto descrito sero criados os bancos Master, Slave1, Slave2 e
Slave3. O Master o banco principal e os Slaves os bancos de backup.
Para esse caso de uso ser utilizado uma VM com os clusters
funcionando em servios diferentes, com portas diferentes.

Instalao da Base de Dados


Primeiro vamos baixar os arquivos RPM para realizar a instalao,
acessando o site http://yum.postgresql.org/, baixando apenas os pacotes
necessrios para esse case: Server, contrib, libs e o postgresql.
Abra um terminal e acesse o root para instalar o postgresql na VM.
$ su (digite a senha de root).
# rpm (endereo dos pacotes de dados)/*.rpm

Criando a Base de Dados.


A criao do cluster ser o primeiro passo para possibilitar a replicao,
pois as bases de dados criadas posteriormente estaro neste local.
Para que seja executado no Linux devemos abrir um terminal e digitar o
seguinte comando:
$ su (digite a senha de root).

Agora o primeiro passo ser em criar quatro pastas dentro do diretrio


/var/lib/pgsql/9.0/ ...(master,slave1,slave2,slave3)

Daremos a permisso ao postgres em cada pasta:

Executaremos o initdb na pasta master:

Iniciar o servidor master na porta 5432:

Executaremos o initdb na pasta slave1:

Executaremos o initdb na pasta slave2:

Executaremos o initdb na pasta slave3:

Agora vamos iniciar os trs servidores slaves (slave1, slave2 e slave3):

Agora vamos criar um diretrio de archive externo aos clusters, ou seja, no


ficar dentro do filesystem dos clusters.

Vamos abrir o arquivo postgresql.conf para apontar o archive:

listen_addresses = '*'
wal_level = archive
fsync = on
archive_mode = on
archive_command='cp %p /var/lib/pgsql/archive/%f'
max_wal_senders = 3

Agora vamos reiniciar o postgresql para surtir efeito:


service postgresql restart
watch ls -la /var/lib/pgsql/archive

Agora vamos abrir o postgresql.conf do slave1, slave2 e slave3 e realizar as


seguintes alteraes.
# nano /var/lib/pgsql/9.0/slave1/postgresql.conf
wal_level = archive
fsync = on
archive_mode = on
archive_command='cp %p /var/lib/pgsql/archive/%f'
archive_timeout = 30

# nano /var/lib/pgsql/9.0/slave2/postgresql.conf
wal_level = hot_standby
archive_mode = on
archive_command='cp %p /var/lib/pgsql/archive/%f'
archive_timeout = 30
hot_standby = on

# nano /var/lib/pgsql/9.0/slave3/postgresql.conf
wal_level = archive
archive_mode = on
archive_command='cp %p /var/lib/pgsql/archive/%f'

Vamos criar um banco de dados no master com algumas tabelas para


simulao.

O prximo passo que vamos aprender fazer a configurao do cluster


master para replicao com log shipping e streaming, fazer o backup base
online do master, restaurar o backup base em cada slave.
Vamos configurar o slave1 para ser igual ao master, usar um utilitrio
chamado pg_standby no slave3 para que o slaves1 e 2 possam utilizar o
arquivo pgpass para autenticao do streaming.
Vamos criar um arquivo .pgpass

Adicione o contedo do arquivo.

Vamos criar o recovery.conf

Adicione o contedo do arquivo.

No master vamos criar um role slave1

No pg_hba.conf do master vamos acrescentar um superuser:

Monitoramento
Agora ser mostrado a porcentagem de quantas requisies de leitura de
blocos:

Vamos verificar as informaes de processos, swap e etc com o comando


vmstat:

Vamos verificar as informaes da memria virtual com o comando SAR

Vamos verificar as informaes de estatsticas de I/O com os comandos iostat

Você também pode gostar