SlideShare uma empresa Scribd logo
1 de 25
Sistemas Distribuídos 
Professor: Thales Farias Duarte 
Replicação de banco de dados MySql e PostgreSQL 
Acadêmicos: Anderson dos Santos Ferreira 
Jaqueline Nardes França 
Valdir Pereira da Silva Junior
Replicação 
Replicação é a manutenção de cópias idênticas 
de dados em locais diferentes. 
Segundo [Ikematu 2005], o objetivo de um 
mecanismo de replicação de dados é permitir a 
manutenção de várias cópias idênticas de um 
mesmo dado em vários sistemas gerenciadores 
de banco de dados (SGBD).
Tipos de Replicação 
Assíncrona: Quando um BD é alterado, a alteração nos outros BDs 
será feita em uma transição separada levando algum tempo 
(segundos, minutos, horas até dias) para concluir. Esse tipo de 
replicação é utilizado quando não há necessidade dos dados serem 
atualizado em tempo real e quando os conflitos entre transações não 
acontecem com muita freqüência. Algumas vantagens: Baixo custo de 
comunicação, Aumento do desempenho das aplicações, Menor 
concorrência, Maior disponibilidade. 
Síncrona: Quando um BD é alterado, a alteração nos outros BDs é 
feita instantaneamente. Exemplos de sistemas que utilizam replicação 
síncrona: sistema de aviação, bancário, comércio eletrônico e militar.
Modelos de Replicação 
Modelo Mutimestre: 
Vários sites gerenciam os objetos replicados de 
banco de dados. Aplicativos atualizam e as tabelas 
replicadas em qualquer site que pertença ao grupo 
de BDs. Servidores têm um papel importante, 
porque convergem dados automaticamente todas 
as replicas de tabelas, assim, garantindo 
consistência global e integridade de dados.
Modelos de Replicação 
Modelo Mestre / Escravo: 
Apenas a base mestre recebe atualizações 
enquanto na base só é permitida a leitura.
Objetos e Conflitos da Replicação 
Objetos de Replicação: 
É um objeto que esta em vários servidores 
de um sistema de banco de dados 
distribuídos. 
Conflitos de Replicação: 
Conflitos de replicação que podem ocorrer 
quando mais de uma transação tenta 
atualizar a mesma informação praticamente 
no mesmo momento.
Vantagens e desvantagens da replicação 
• Disponibilidade (+) 
• Paralelismo aumentado (+): maior a chance de 
encontrar o dado no site em que a transação está 
executando. 
• Sobrecarga na atualização (-): garantir que as 
réplicas sejam consistentes pela propagação de 
atualizações.
MySql & PostgreSQL
Replicação MySql 
Quando falamos em Replicação de banco 
de dados mySql, pensamos em um tipo de 
replicação orientado por paradigmas 
distintos: 
Replicação Master/Slave: onde apenas a 
réplica master permite gravação, enquanto 
as demais réplicas só permitem leitura;
Master-Slave
Master-Slave 
Cria usuário 
create user replicador indentified by ‘replica’; 
Permissões de replicação 
grant replication slave, 
replication client on *.* to replicator@ ‘192.168.56.%’ 
identified by ‘replica’
Arquivo de configurações 
Arquivo de configurações my.cnf 
Master 
log-bin = mysql-bin 
server-id = 1 
Slave 
log-bin = mysql-bin 
server-id = 2 
relay-log = mysql-relay-bin 
log-slave-updates = 1
Arquivo de configurações 
CHANGE MASTER TO 
MASTER_HOST='192.168.56.101', 
MASTER_USER='replicador', 
MASTER_PASSWORD='replica', 
MASTER_LOG_FILE='mysql-bin.000001', 
MASTER_LOG_POS=0; 
START SLAVE
Master-Master e Topologia Anel
Replicação PostgreSQL 
Um servidor de banco de dados pode estar 
trabalhando bem em uma solução que contém vários 
servidores de aplicação e milhares de clientes. 
Porém, as empresas estão muito interessadas em 
distribuir o processamento enquanto mantêm a 
integração dos recursos de informação. 
Em um determinado momento poderá surgir a 
necessidade de ter um outro servidor de banco de 
dados que contenha todos os dados ou parte deles 
para fins de disponibilidade, confiabilidade, 
desempenho e/ou balanceamento de carga.
Replicação PostgreSQL 
Vários tipos de servidores, tais como servidores web, 
servidores DNS e servidores de aplicação, que contém dados 
estáticos podem ser combinados facilmente para atender 
requisições balanceando a carga entre eles. 
Da mesma maneira, isso pode ser feito para servidores de 
bancos de dados. No entanto, servidores de bancos de dados 
geralmente não possuem dados puramente estáticos. 
Se permitirmos alteração no servidor de banco de dados, 
ainda temos que garantir a atomicidade (vide ACID) o que 
nem sempre é um problema nos outros tipos de servidores. 
Isto torna soluções de replicação em servidores de bancos de 
dados mais complexas do que em outros tipos de servidores.
Replicações disponíveis e suas classificações 
As soluções de replicação disponíveis em 
SGBDs podem ser classificadas quanto a 
sincronia, escrita, fragmentação, envio e 
modo. 
Sincronia: os dados podem ser sincronizados 
"simultaneamente" ou após algum tempo; 
síncrono: a transação é efetivada 
"simultaneamente" em todos os servidores que 
participam da replicação; 
Assíncrono: após a transação ser efetivada em 
um servidor, ela é propagada para os outros 
servidores. 
Escrita: os dados podem ser escritos em qualquer 
servidor, alguns servidores ou somente em um 
servidor. Servidor principal (também chamado de 
mestre) é aquele que aceita escrita. Servidor 
secundário (também chamado de escravo) é 
aquele que aceita somente leitura; 
Múltiplos mestres: os dados podem ser escritos 
em múltiplos servidores e serão enviados para os 
outros servidores que participam da replicação; 
Um mestre: somente um servidor 
(principal/mestre) aceita escrita de dados. Os 
outros servidores só recebem as alterações feitas 
no servidor principal.
Fragmentação e Envio 
Fragmentação: os dados de uma relação 
são particionados em múltiplos servidores. 
Horizontal: cada fragmento (que está em 
um servidor) contém um subconjunto das 
tuplas da relação completa, ou seja, a união 
dos fragmentos resulta na relação completa; 
Vertical: cada fragmento (que está em um 
servidor) contém um subconjunto dos 
atributos da relação, ou seja, cada 
fragmento é uma projeção da relação 
completa; 
Envio: os dados podem ser enviados quando o 
arquivo que contém logs de transação é 
fechado ou quando uma transação é efetivada; 
Envio de arquivo: após o preenchimento 
(fechamento) de um arquivo que contém logs 
de transação, este é enviado a outros 
servidores que aplicam os logs de transação. 
Este tipo geralmente é utilizado em 
combinação com envio assíncrono; 
Envio de registro: após a efetivação de uma 
transação, o log (registro) da transação é 
enviado e aplicado nos servidores que 
participam da replicação;
Replicações disponíveis e suas classificações 
Modo: os servidores secundários podem 
aceitar ou não consultas (somente leitura). 
Este tipo é utilizado com escrita somente 
em um servidor principal; 
Warm standby: os servidores secundários 
(aqueles que não recebem escrita) não 
aceitam conexões (e consultas); 
Hot standby: os servidores secundários 
aceitam conexões e consultas que não 
modificam dados;
Warm standby e Hot standby
Modelos de replicação 
Warm standby e envio de arquivo: os 
servidores secundários não aceitam conexões e 
se mantêm atualizados de modo assíncrono 
através dos arquivos de log de transação 
enviados pelo servidor principal após serem 
preenchidos ou depois de determinado tempo. 
Esta solução está disponível desde a versão 8.0; 
Warm standby envio de registro: os servidores 
secundários não aceitam conexões e se mantêm 
atualizados de modo assíncrono através dos logs 
de transação que são enviados pelo servidor 
principal e aplicados nos servidores secundários. 
Esta solução está disponível desde a versão 9.0; 
Hot standby e envio de arquivo: os servidores 
secundários aceitam consultas somente leitura e se 
mantêm atualizados de modo assíncrono através 
dos arquivos de log de transação enviados pelo 
servidor principal após serem preenchidos ou 
depois de determinado tempo. Esta solução está 
disponível desde a versão 9.0; 
Hot standby e envio de registro: os servidores 
secundários aceitam consultas somente leitura e se 
mantêm atualizados de modo assíncrono através 
dos logs de transação enviados pelo servidor 
principal e aplicados nos servidores secundários. 
Esta solução está disponível desde a versão 9.0.
Cenário de Implementação 
Apresentamos a implementação dos 
quatros tipos de replicação descritos acima 
utilizando o seguinte cenário.
Evolução do PostgreSQL Replicação 
Evolução de cada versão do PostgreSQl com relação á replicação. 
 8.0: warm standby 
 8.1: warm standby (melhorias) 
 9.0: replicação assincrona e hot standby 
 9.1: replicação sincrona 
 9.2: replicação sincrona (remote write) e cascateamento 
 9.3: replicação lógica e gatilhos de eventos
Exemplo de Script e Replicação por Fluxo 
 pg standby >=( 8.3) 
 restore command: script que espera indefinidamente o arquivo WAL 
1 triggered = false ; 
2 while (! NextWALFileReady ( ) && ! triggered ) 
3 { 
4 sleep (100000L) ; / *waitfor ~0.1 sec */ 
5 if(CheckForExternalTrigger ( ) ) 
6 triggered = true; 
7 } 
8 if(!triggered) 
9 CopyWALFileForRecovery ( ) ; 
 WALReceiver estabelece uma conexão (via libpq) com 
servidor principal 
 servidor principal abre o processo WalSender para 
enviar WAL ao servidor replica 
 replicação sincrona espera WAL ser escrito no disco do 
servidor replica
Referências 
Blog Euler Taveira - http://eulerto.blogspot.com.br/ 
Acessado em 22/11/2014. 
http://www.devmedia.com.br/mysql-replicacao-de-dados/22923 
Acessado em 20/11/2014 
http://www.devmedia.com.br/topologias-de-replicacao-no-mysql/2073 
Acessado em 20/11/2014 
http://www.devmedia.com.br/replicacao-de-dados-no-mysql/2054 
Acessado em 20/11/2014 
Tanenbaum, Andrew S., Sistemas Distribuídos: princípios e paradigmas – 2. ed. - 
São Paulo, Pearson Prentice Hall,2007.

Mais conteúdo relacionado

Mais procurados

Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
Sistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoSistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linuxPeslPinguim
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalAlexandre Duarte
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basicoAmadeo Santos
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Conhecendo o funcionamento do sistema operacional
Conhecendo o funcionamento do sistema operacionalConhecendo o funcionamento do sistema operacional
Conhecendo o funcionamento do sistema operacionalDaiana de Ávila
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dadoselliando dias
 
Replicação de dados
Replicação de dadosReplicação de dados
Replicação de dadoselliando dias
 
Redes de Computadores
Redes de Computadores Redes de Computadores
Redes de Computadores claudioatx
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 

Mais procurados (20)

Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Sistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoSistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - Apresentação
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema Operacional
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basico
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Aula DFD - Revisão
Aula DFD - RevisãoAula DFD - Revisão
Aula DFD - Revisão
 
Conhecendo o funcionamento do sistema operacional
Conhecendo o funcionamento do sistema operacionalConhecendo o funcionamento do sistema operacional
Conhecendo o funcionamento do sistema operacional
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
Replicação de dados
Replicação de dadosReplicação de dados
Replicação de dados
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Redes de Computadores
Redes de Computadores Redes de Computadores
Redes de Computadores
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Backup
Backup   Backup
Backup
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 

Semelhante a Sistemas Distribuídos - Replicação de Banco de Dados

Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
Desmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLDesmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLEuler Taveira
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Clustering Domino8.5
Clustering Domino8.5Clustering Domino8.5
Clustering Domino8.5Rodrigo Duran
 
19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptxRoberto Aragy
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLMatheus Espanhol
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidoresMarco Guimarães
 
Iniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSIniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSAmazon Web Services LATAM
 
Virus de boot e Time Bomb
Virus de boot e Time BombVirus de boot e Time Bomb
Virus de boot e Time BombMario Kleber
 
Dextra Sistemas: Novidades do PostgreSQL 9.0
Dextra Sistemas: Novidades do PostgreSQL 9.0Dextra Sistemas: Novidades do PostgreSQL 9.0
Dextra Sistemas: Novidades do PostgreSQL 9.0Dextra
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005Andre Nascimento
 
Windows Server 2008 R2 Hyper-V - Visão Geral Tecnica
Windows Server 2008 R2 Hyper-V - Visão Geral TecnicaWindows Server 2008 R2 Hyper-V - Visão Geral Tecnica
Windows Server 2008 R2 Hyper-V - Visão Geral TecnicaFabio Hara
 
Hyper-V - avançado
Hyper-V - avançadoHyper-V - avançado
Hyper-V - avançadoFabio Hara
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 

Semelhante a Sistemas Distribuídos - Replicação de Banco de Dados (20)

Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
Desmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLDesmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQL
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
C # banco de dados
C # banco de dadosC # banco de dados
C # banco de dados
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
Clustering Domino8.5
Clustering Domino8.5Clustering Domino8.5
Clustering Domino8.5
 
19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQL
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Sos final
Sos finalSos final
Sos final
 
Iniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSIniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWS
 
Virus de boot e Time Bomb
Virus de boot e Time BombVirus de boot e Time Bomb
Virus de boot e Time Bomb
 
Dextra Sistemas: Novidades do PostgreSQL 9.0
Dextra Sistemas: Novidades do PostgreSQL 9.0Dextra Sistemas: Novidades do PostgreSQL 9.0
Dextra Sistemas: Novidades do PostgreSQL 9.0
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005
 
Windows Server 2008 R2 Hyper-V - Visão Geral Tecnica
Windows Server 2008 R2 Hyper-V - Visão Geral TecnicaWindows Server 2008 R2 Hyper-V - Visão Geral Tecnica
Windows Server 2008 R2 Hyper-V - Visão Geral Tecnica
 
Hyper-V - avançado
Hyper-V - avançadoHyper-V - avançado
Hyper-V - avançado
 
Apostila oracle
Apostila oracleApostila oracle
Apostila oracle
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 

Mais de Valdir Junior

Trabalho OO Sistema de Advocacia
Trabalho OO Sistema de AdvocaciaTrabalho OO Sistema de Advocacia
Trabalho OO Sistema de AdvocaciaValdir Junior
 
Trabalho OO clinica veterinária
Trabalho OO clinica veterináriaTrabalho OO clinica veterinária
Trabalho OO clinica veterináriaValdir Junior
 
Trabalho - Projeto redes
Trabalho - Projeto redesTrabalho - Projeto redes
Trabalho - Projeto redesValdir Junior
 
A tecnologia: Possibilidades e desafios para o meio ambiente natural.
A tecnologia: Possibilidades e desafios para o meio ambiente natural.A tecnologia: Possibilidades e desafios para o meio ambiente natural.
A tecnologia: Possibilidades e desafios para o meio ambiente natural.Valdir Junior
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryValdir Junior
 
Gestão da Cadeia de Suprimentos - E-Commerce
Gestão da Cadeia de Suprimentos - E-CommerceGestão da Cadeia de Suprimentos - E-Commerce
Gestão da Cadeia de Suprimentos - E-CommerceValdir Junior
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosValdir Junior
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento webValdir Junior
 

Mais de Valdir Junior (11)

Lenovo IdeaPad Z360
Lenovo IdeaPad Z360Lenovo IdeaPad Z360
Lenovo IdeaPad Z360
 
Avell Titanium-B155
Avell Titanium-B155Avell Titanium-B155
Avell Titanium-B155
 
Trabalho OO Sistema de Advocacia
Trabalho OO Sistema de AdvocaciaTrabalho OO Sistema de Advocacia
Trabalho OO Sistema de Advocacia
 
Trabalho OO clinica veterinária
Trabalho OO clinica veterináriaTrabalho OO clinica veterinária
Trabalho OO clinica veterinária
 
Trabalho - Projeto redes
Trabalho - Projeto redesTrabalho - Projeto redes
Trabalho - Projeto redes
 
E-commerce B2C
E-commerce B2CE-commerce B2C
E-commerce B2C
 
A tecnologia: Possibilidades e desafios para o meio ambiente natural.
A tecnologia: Possibilidades e desafios para o meio ambiente natural.A tecnologia: Possibilidades e desafios para o meio ambiente natural.
A tecnologia: Possibilidades e desafios para o meio ambiente natural.
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerry
 
Gestão da Cadeia de Suprimentos - E-Commerce
Gestão da Cadeia de Suprimentos - E-CommerceGestão da Cadeia de Suprimentos - E-Commerce
Gestão da Cadeia de Suprimentos - E-Commerce
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento web
 

Sistemas Distribuídos - Replicação de Banco de Dados

  • 1. Sistemas Distribuídos Professor: Thales Farias Duarte Replicação de banco de dados MySql e PostgreSQL Acadêmicos: Anderson dos Santos Ferreira Jaqueline Nardes França Valdir Pereira da Silva Junior
  • 2. Replicação Replicação é a manutenção de cópias idênticas de dados em locais diferentes. Segundo [Ikematu 2005], o objetivo de um mecanismo de replicação de dados é permitir a manutenção de várias cópias idênticas de um mesmo dado em vários sistemas gerenciadores de banco de dados (SGBD).
  • 3. Tipos de Replicação Assíncrona: Quando um BD é alterado, a alteração nos outros BDs será feita em uma transição separada levando algum tempo (segundos, minutos, horas até dias) para concluir. Esse tipo de replicação é utilizado quando não há necessidade dos dados serem atualizado em tempo real e quando os conflitos entre transações não acontecem com muita freqüência. Algumas vantagens: Baixo custo de comunicação, Aumento do desempenho das aplicações, Menor concorrência, Maior disponibilidade. Síncrona: Quando um BD é alterado, a alteração nos outros BDs é feita instantaneamente. Exemplos de sistemas que utilizam replicação síncrona: sistema de aviação, bancário, comércio eletrônico e militar.
  • 4. Modelos de Replicação Modelo Mutimestre: Vários sites gerenciam os objetos replicados de banco de dados. Aplicativos atualizam e as tabelas replicadas em qualquer site que pertença ao grupo de BDs. Servidores têm um papel importante, porque convergem dados automaticamente todas as replicas de tabelas, assim, garantindo consistência global e integridade de dados.
  • 5. Modelos de Replicação Modelo Mestre / Escravo: Apenas a base mestre recebe atualizações enquanto na base só é permitida a leitura.
  • 6. Objetos e Conflitos da Replicação Objetos de Replicação: É um objeto que esta em vários servidores de um sistema de banco de dados distribuídos. Conflitos de Replicação: Conflitos de replicação que podem ocorrer quando mais de uma transação tenta atualizar a mesma informação praticamente no mesmo momento.
  • 7. Vantagens e desvantagens da replicação • Disponibilidade (+) • Paralelismo aumentado (+): maior a chance de encontrar o dado no site em que a transação está executando. • Sobrecarga na atualização (-): garantir que as réplicas sejam consistentes pela propagação de atualizações.
  • 9. Replicação MySql Quando falamos em Replicação de banco de dados mySql, pensamos em um tipo de replicação orientado por paradigmas distintos: Replicação Master/Slave: onde apenas a réplica master permite gravação, enquanto as demais réplicas só permitem leitura;
  • 11. Master-Slave Cria usuário create user replicador indentified by ‘replica’; Permissões de replicação grant replication slave, replication client on *.* to replicator@ ‘192.168.56.%’ identified by ‘replica’
  • 12. Arquivo de configurações Arquivo de configurações my.cnf Master log-bin = mysql-bin server-id = 1 Slave log-bin = mysql-bin server-id = 2 relay-log = mysql-relay-bin log-slave-updates = 1
  • 13. Arquivo de configurações CHANGE MASTER TO MASTER_HOST='192.168.56.101', MASTER_USER='replicador', MASTER_PASSWORD='replica', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0; START SLAVE
  • 15. Replicação PostgreSQL Um servidor de banco de dados pode estar trabalhando bem em uma solução que contém vários servidores de aplicação e milhares de clientes. Porém, as empresas estão muito interessadas em distribuir o processamento enquanto mantêm a integração dos recursos de informação. Em um determinado momento poderá surgir a necessidade de ter um outro servidor de banco de dados que contenha todos os dados ou parte deles para fins de disponibilidade, confiabilidade, desempenho e/ou balanceamento de carga.
  • 16. Replicação PostgreSQL Vários tipos de servidores, tais como servidores web, servidores DNS e servidores de aplicação, que contém dados estáticos podem ser combinados facilmente para atender requisições balanceando a carga entre eles. Da mesma maneira, isso pode ser feito para servidores de bancos de dados. No entanto, servidores de bancos de dados geralmente não possuem dados puramente estáticos. Se permitirmos alteração no servidor de banco de dados, ainda temos que garantir a atomicidade (vide ACID) o que nem sempre é um problema nos outros tipos de servidores. Isto torna soluções de replicação em servidores de bancos de dados mais complexas do que em outros tipos de servidores.
  • 17. Replicações disponíveis e suas classificações As soluções de replicação disponíveis em SGBDs podem ser classificadas quanto a sincronia, escrita, fragmentação, envio e modo. Sincronia: os dados podem ser sincronizados "simultaneamente" ou após algum tempo; síncrono: a transação é efetivada "simultaneamente" em todos os servidores que participam da replicação; Assíncrono: após a transação ser efetivada em um servidor, ela é propagada para os outros servidores. Escrita: os dados podem ser escritos em qualquer servidor, alguns servidores ou somente em um servidor. Servidor principal (também chamado de mestre) é aquele que aceita escrita. Servidor secundário (também chamado de escravo) é aquele que aceita somente leitura; Múltiplos mestres: os dados podem ser escritos em múltiplos servidores e serão enviados para os outros servidores que participam da replicação; Um mestre: somente um servidor (principal/mestre) aceita escrita de dados. Os outros servidores só recebem as alterações feitas no servidor principal.
  • 18. Fragmentação e Envio Fragmentação: os dados de uma relação são particionados em múltiplos servidores. Horizontal: cada fragmento (que está em um servidor) contém um subconjunto das tuplas da relação completa, ou seja, a união dos fragmentos resulta na relação completa; Vertical: cada fragmento (que está em um servidor) contém um subconjunto dos atributos da relação, ou seja, cada fragmento é uma projeção da relação completa; Envio: os dados podem ser enviados quando o arquivo que contém logs de transação é fechado ou quando uma transação é efetivada; Envio de arquivo: após o preenchimento (fechamento) de um arquivo que contém logs de transação, este é enviado a outros servidores que aplicam os logs de transação. Este tipo geralmente é utilizado em combinação com envio assíncrono; Envio de registro: após a efetivação de uma transação, o log (registro) da transação é enviado e aplicado nos servidores que participam da replicação;
  • 19. Replicações disponíveis e suas classificações Modo: os servidores secundários podem aceitar ou não consultas (somente leitura). Este tipo é utilizado com escrita somente em um servidor principal; Warm standby: os servidores secundários (aqueles que não recebem escrita) não aceitam conexões (e consultas); Hot standby: os servidores secundários aceitam conexões e consultas que não modificam dados;
  • 20. Warm standby e Hot standby
  • 21. Modelos de replicação Warm standby e envio de arquivo: os servidores secundários não aceitam conexões e se mantêm atualizados de modo assíncrono através dos arquivos de log de transação enviados pelo servidor principal após serem preenchidos ou depois de determinado tempo. Esta solução está disponível desde a versão 8.0; Warm standby envio de registro: os servidores secundários não aceitam conexões e se mantêm atualizados de modo assíncrono através dos logs de transação que são enviados pelo servidor principal e aplicados nos servidores secundários. Esta solução está disponível desde a versão 9.0; Hot standby e envio de arquivo: os servidores secundários aceitam consultas somente leitura e se mantêm atualizados de modo assíncrono através dos arquivos de log de transação enviados pelo servidor principal após serem preenchidos ou depois de determinado tempo. Esta solução está disponível desde a versão 9.0; Hot standby e envio de registro: os servidores secundários aceitam consultas somente leitura e se mantêm atualizados de modo assíncrono através dos logs de transação enviados pelo servidor principal e aplicados nos servidores secundários. Esta solução está disponível desde a versão 9.0.
  • 22. Cenário de Implementação Apresentamos a implementação dos quatros tipos de replicação descritos acima utilizando o seguinte cenário.
  • 23. Evolução do PostgreSQL Replicação Evolução de cada versão do PostgreSQl com relação á replicação.  8.0: warm standby  8.1: warm standby (melhorias)  9.0: replicação assincrona e hot standby  9.1: replicação sincrona  9.2: replicação sincrona (remote write) e cascateamento  9.3: replicação lógica e gatilhos de eventos
  • 24. Exemplo de Script e Replicação por Fluxo  pg standby >=( 8.3)  restore command: script que espera indefinidamente o arquivo WAL 1 triggered = false ; 2 while (! NextWALFileReady ( ) && ! triggered ) 3 { 4 sleep (100000L) ; / *waitfor ~0.1 sec */ 5 if(CheckForExternalTrigger ( ) ) 6 triggered = true; 7 } 8 if(!triggered) 9 CopyWALFileForRecovery ( ) ;  WALReceiver estabelece uma conexão (via libpq) com servidor principal  servidor principal abre o processo WalSender para enviar WAL ao servidor replica  replicação sincrona espera WAL ser escrito no disco do servidor replica
  • 25. Referências Blog Euler Taveira - http://eulerto.blogspot.com.br/ Acessado em 22/11/2014. http://www.devmedia.com.br/mysql-replicacao-de-dados/22923 Acessado em 20/11/2014 http://www.devmedia.com.br/topologias-de-replicacao-no-mysql/2073 Acessado em 20/11/2014 http://www.devmedia.com.br/replicacao-de-dados-no-mysql/2054 Acessado em 20/11/2014 Tanenbaum, Andrew S., Sistemas Distribuídos: princípios e paradigmas – 2. ed. - São Paulo, Pearson Prentice Hall,2007.

Notas do Editor

  1. No modo Apresentação de Slides, clique na seta para entrar no PowerPoint Getting Started Center.