Trabalho realizado no 4º Semestre da faculdade, para o componente de Segurança da Informação, lecionado pelo Profº Rogério Leão, na Fatec de Jales. Uma breve introdução sobre replicação de banco de dados e depois um tutorial de como fazer uma replicação usando o Slony do PostgreSQL. É simples e rápido, basta verificar se o Slony está ativo no seu PostgreSQL e seguir os passos do tutorial.
1. Replicação Slony
(Master - Slave)
Sofia Trindade
Jales
2016
Trabalho apresentado a disciplina de Segurança da Informação da
Faculdade de Tecnologia de Jales
Orientador: Prof. Rogério Leão
3. Introdução
• Replicação é permitir a existência de várias
cópias de um dado em servidores de banco de
dados diferentes;
Redundância, balanceamento do sistema,
garantia de backup’s online, disponibilidade;
3
4. Tipos de Replicação
• Assíncrona: se um banco de dados é alterado
será propagada e aplicada para outros bancos
sincronizados;
• Essa transação de dados pode demorar
segundos, minutos, horas e até dias.
4
5. Tipos de Replicação
• Síncrona: todas as cópias ou replicações de
dados serão feitas no instante da
sincronização.
• Se algo no banco é
alterado, será atualizado
imediatamente nos
bancos replicados;
5
6. Master - Slave
• Define um servidor atuando como master e
suas réplicas como slave; as transações são
efetuadas primeiramente no master, depois
são distribuídas para a slaves;
– Master: grava log
dos comandos feito
no BD.
6
7. Master - Slave
• O slave copia o log gerado pelo master no seu
relay log, então os eventos são repetidos;
7
10. Agora vamos fazer clones!
• Clonagem de banco de dados com Slony;
– Sistema de replicação de dados assíncrono para o
PostgreSQL;
10
11. Prática - Slony
• 1º Verificar porta que o PostgreSQL está
operando e instalar o slony;
• 2º Permitir acesso de host no arquivo
pg_hba.conf;
• 3º Alterar arquivo postgresql.conf
– wal_level = hot_standby;
– wal_keep_segments = 10;
– max_wal_senders = 2; 11
12. Prática - Slony
• 4º Criar banco master e slave com mesma
estrutura de SQL;
• 5º Criar arquivo master.txt onde conterá
dados para criação do cluster slony;
– Nodos, definição de IP, usuário, senhas, tabelas
que serão replicadas,
• 6º Criar arquivo slave.txt, faz o BD escravo
reconhecer o BD mestre através do nome do
cluster; 12
15. Prática - Slony
• 7º Copiar para a pasta PostgreSQL9.3bin do
banco mestre o arquivo master.txt, e copiar
para o banco escravo o slave.txt;
• 8º Abrir o cmd do PC que está o BD mestre;
– cd "C:Program Files (x86)PostgreSQL9.3bin“
– slonik master.txt
– slon replicacao4 "dbname=master user=postgres
password=123456"
15
16. Prática - Slony
• 9º Abrir o cmd do PC que está o BD escravo;
– cd "C:Program Files (x86)PostgreSQL9.3bin“
– slonik slave.txt
– slon replicacao4 "dbname=slave user=postgres
password=postdba“
• OBS: Não fechar os cmd’s;
• Pronto, está clonado!
16
Replicação é a manutenção de cópias idênticas de dados em locais (servidores) diferentes
O master grava em um log binário de alteração todos os comandos de atualizações da base de dados. Desta forma, todas as alterações ocorridas no master são imediatamente replicadas para os outros servidores slave.
O master registra alterações aos seus dados no seu log binário (estes registros são chamados de evento de log binário): antes de cada transação que atualiza dados no master, o mesmo registra as alterações no seu log binário, ou seja, o mysql escreve as transações no seu log binário e logo em seguida o master diz as ferramentas de armazenamento para comitar as transações.
O slave copia os eventos de log binário do master no seu relay log (log de vigilância): o servidor slave, através de uma thread de I/O, abre uma conexão com o master e logo inicia o processo de esvaziamento de binlog. O esvaziamento de binlog consiste na leitura do evento a partir do log binário do master. A Thread de I/O escreve os eventos no relay log do slave.
O slave repete aos eventos no relay log: a thread lê e repete eventos a partir do relay log, dessa forma atualizando os dados do slave para combinarem com os do master.