O documento apresenta um resumo sobre alta disponibilidade e tolerância a falhas em bancos de dados. Discute replicação síncrona e assíncrona, e introduz o MySQL Cluster como uma ferramenta para distribuir bancos de dados MySQL e fornecer alta disponibilidade. Também aplica o MySQL Cluster para distribuir as bases de dados do sistema Controle de Marcas e Sinais.
Aula 04 - Injeção de código (Cross-Site Scripting)
Alta Disponibilidade em Banco de Dados
1. Alta Disponibilidade e Tolerância a Falhas:Alta Disponibilidade e Tolerância a Falhas:
uma abordagem em Banco de Dadosuma abordagem em Banco de Dados
Prof. Alex Camargo
alexcamargoweb@gmail.com
UNIVERSIDADE FEDERAL DO PAMPA
CAMPUS BAGÉ
ENGENHARIA DE COMPUTAÇÃO
2. Sobre o professor
Formação acadêmica:
Bacharel em Sistemas de Informação (URCAMP, 2010)
TCC: Web sistema integrado a uma rede social para academias
de ginástica.
Orientador: Prof. Me. Abner Guedes
Especialista em Sistemas Distribuídos com Ênfase em
Banco de Dados (UNIPAMPA, 2013)
TCC: Interligando bases de dados do sistema Controle de Marcas
e Sinais utilizando o MySQL Cluster.
Orientadores: Prof. Me. Érico Amaral e Prof. Me. Rafael Bastos
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
3. Sobre o professor
Formação acadêmica:
Mestrando em Engenharia de Computação (FURG, 2016)
Linha de pesquisa: Bioinformática.
Orientador: Ainda não definido
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
4. Sobre o professor
Antes da UNIPAMPA:
Programador Web e DBA
Local: Prefeitura Municipal de Bagé
Professor das disciplinas de Banco de Dados e Análise
de Sistemas
Local: Capacitar Escola Técnica
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
5. Sobre o professor
Atualmente:
Professor da disciplina de Algoritmos e Programação
Turmas: Engenharia de Computação, Engenharia de Alimentos,
Engenharia de Energias Renováveis e Ambiente, Engenharia
Química, Engenharia de Produção e Licenciatura em Física
Professor da disciplina de Laboratório de Programação
Turma: Engenharia de Computação
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
6. Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
7. Introdução
A grande capacidade de se trabalhar com dados, armazená-los
e distribuí-los de maneira eficiente, de modo que se tenha um
maior proveito, vem sendo um desafio da computação
distribuída.
Fonte: (DADOS PRIMÁRIOS, 2013)
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
8. Banco de dados distribuído (BDD)
BDD pode ser definido como uma coleção de múltiplos bancos
de dados logicamente relacionados e distribuídos sobre uma rede
de computadores (OZSU; VALDURIEZ, 2001).
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
Fonte: (TAING, 2007)
9. Arquitetura
Os sistemas de banco de dados podem ser classificados, de
acordo com suas arquiteturas, como (SILBERCHATZ; KORTH;
SUDARSHAN, 2009):
Cliente-servidor: quando o SGBD reside em um sistema
computacional chamado servidor, e interage com outros
sistemas computacionais, que são os clientes.
Paralelos: quando utiliza em paralelo diversas CPUs e discos,
com objetivo de ganhar velocidade no processamento e alta
escalabilidade.
Móveis: quando o SGBD e o próprio banco de dados são
aplicados em ambientes de computação móveis.
Distribuídos: quando o SGBD reside em diversos sistemas
computacionais, podem ser conectados através de redes de
alta ou baixa velocidade.
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
10. Replicação de dados
Quando se fala em replicação, o principal aspecto a ser tratado
é a sincronia entre as réplicas. São encontradas duas
classificações: a replicação síncrona e assíncrona.
Apesar da replicação ser uma ideia intuitiva, rapidamente
compreensível, sua implementação muitas vezes é difícil.
Fonte: (COSTA, 2013)
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
11. Replicação síncrona
A grande vantagem deste tipo de replicação é a alta
disponibilidade dos dados que são disponibilizados
instantaneamente para todas as bases (BORTOLINI, 2004).
Pode ser executada pelo SGBD, ou em alguns casos, por um
gerente distribuído (monitor de transações).
É recomendada para aplicações comerciais, tendo em vista seu
alto poder de consistência;
A atualização do BD de origem só é confirmada após a
efetivação em todos os BDs envolvidos na replicação, ou seja,
temos um commit em duas fases (Two-Phase Commit).
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
12. Replicação assíncrona
Na replicação assíncrona as modificações executadas nos
servidores são enviadas em um segundo passo.
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
13. Replicação assíncrona
Na replicação assíncrona as modificações executadas nos
servidores são enviadas em um segundo passo.
É frequente deixar a cargo da aplicação usuária a tarefa de
manter a consistência;
É uma estratégia adequada quando a conexão entre os
servidores envolvidos não é permanente;
As propriedades ACID de uma transação não são garantidas
quando se implementa replicação assíncrona com possibilidade
de atualização em qualquer servidor.
Por se tratar de uma transação separada, pode ocorrer em minutos,
horas ou dias após as modificações.
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
14. Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
15. Implementação e testes
Esta seção tem como objetivo apresentar a ferramenta MySQL
Cluster, além de expor passo a passo a solução proposta para
distribuir as bases de dados do sistema Controle de Marcas e
Sinais.
Um fato que deve ser mencionado é que ambas as ferramentas são regidas
pela licença GPL (General Public License), portanto possuem código-fonte
aberto.
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
16. Ambiente de simulação
Os experimentos distribuídos realizados neste trabalho foram
desenvolvidos em um ambiente virtualizado através da ferramenta gratuita
e de código-fonte aberto Virtual Box.
Fonte: (DADOS PRIMÁRIOS, 2013)
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
17. Marcas e Sinais
O Controle de Marcas e Sinais é um software que auxilia o
registro e consulta de marcas e sinais utilizadas por produtores
rurais.
Fonte: (DADOS PRIMÁRIOS, 2013)
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
18. Marcas e Sinais
O conceito do Software Público Brasileiro (SPB) é utilizado como
um dos alicerces para definir a política de desenvolvimento,
distribuição e uso de software pelo setor público do Brasil
(CARDOSO; MEFFE; MARTINS, 2011).
Fonte: (DADOS PRIMÁRIOS, 2013)
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
19. Marcas e Sinais
Para que o sistema funcionasse apropriadamente de maneira
distribuída foram necessárias algumas modificações no seu
código-fonte.
Fonte: (DADOS PRIMÁRIOS, 2013)
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
20. MySQL Cluster
É uma tecnologia que permite a distribuição de SGBDs MySQL
mantida atualmente pela Oracle. Entre suas vantagens, estão
(MYSQL, 2013):
Foi projetado para oferecer alta disponibilidade e alta taxa de
transferência;
Pode ser executado em diferentes tipos de hardware;
É transparente para o usuário, para a sua aplicação e até
mesmo para o cliente MySQL;
Disponível em versões gratuitas e edições comerciais, para
uma série de plataformas;
Os sistemas operacionais de host não necessitam de quaisquer
módulos ou serviços incomuns para suportar a ferramenta.
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
21. MySQL Cluster
Basicamente, o MySQL Cluster é dividido da seguinte maneira:
nó de gerenciamento, nó de dados e nó SQL.
Fonte: (DADOS PRIMÁRIOS, 2013)
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
22. MySQL Cluster
Inicialmente, foi feita a alteração do "ENGINE" das tabelas do
banco de dados do Controle de Marcas e Sinais.
Fonte: (DADOS PRIMÁRIOS, 2013)
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
23. Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
24. MySQL Cluster
Vamos para a prática...
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
25. Referências
BORTOLINI, C. A. Um Protótipo de Banco de Dados Distribuídos (Caso Expresso São Miguel). Trabalho de Conclusão de
Curso (Graduação em Ciência da Computação).Universidade Comunitária Regional de Chapecó - Centro Tecnológico, 2004.
CARDOSO, J. L; MEFFE, C.; MARTINS, S. P. O Software Público Brasileiro. Revista Linux Magazine, noº 6, 2011.
COSTA, A. S. Um Protocolo Distribuído para Controle de Consistência em Bancos de Dados Replicados para Ambiente de
Computação Móvel. Dissertação (Mestrado). Universidade de Fortaleza, 2010.
MELO, P. C. B. Desenvolvimento de um Sistema de Replicação de Dados entre Bancos de Dados Relacionais. Trabalho de
Conclusão de Curso (Graduação em Engenharia de Computação). Universidade Federal do Rio Grande do Norte, 2010.
MYSQL. MySQL 5.0 Reference Manual: MySQL Proxy - Revisão: 35232. Disponível em:
<http://dev.mysql.com/doc/refman/5.0/en/>. Acesso em: Mai/2013.
OLIVEIRA, V. F. Especificação e Implementação de um Modelo Assíncrono para Replicação, Propagação e Conciliação de
Bases de Dados Distribuídas. Dissertação (Mestrado). Universidade Federal do Rio Grande do Norte, 2007.
OZSU, M.; VALDURIEZ, P. Princípios de Sistemas de Banco de Dados Distribuídos. Pearson - Prentice Hall, 2a edição, 2001.
SILBERCHATZ, A; KORTH, H. F.; SUDARSHAN, S. Sistemas de Banco de Dados. Pearson Makron Books, 1999.
SILVA, D. B. Interface para um Sistema Gerenciador de Transações Longas de Banco de Dados. Dissertação (Mestrado).
Universidade Federal do Rio Grande do Sul, 2003.
TAING, N; Challenges in Distributed Systems. 2011. Disponível
<http://www.lycog.com/distributed-systems/challenges-distributed-systems>. Acesso Abr/2013.
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
26. Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
27. Fim
Agradeço a atenção de todos.
Dúvidas, críticas ou sugestões?
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados Prof. Alex Camargo
Por isso não desanimamos. Embora exteriormente estejamos a desgastar-nos,
interiormente estamos sendo renovados dia após dia. (2 Coríntios 4:16)
alexcamargoweb@gmail.com