Universidade Federal de Santa Catarina

Propaganda
Universidade Federal de Santa Catarina
Centro Tecnológico – CTC
Curso de Sistemas de Informação
Disciplina Projetos I
Implementação de replicação assíncrona entre bancos de dados heterogêneos
Heliomar Quadros Lorêdo
Lindemberg Naffah Ferreira
Versão resumida por Michael Molina
Florianópolis 15 de outubro de 2007
Introdução
Devido ao crescente desenvolvimento de aplicações distribuídas que visam a atender
eficientemente um número cada vez maior de usuários, e o fato destas aplicações
possuírem passos de uma mesma transação em localidades diferentes, faz com que a
sincronização e replicação dos dados seja um requisito em operações de tempo real ou
críticas.
Há várias maneiras de implementar replicação em bancos de dados distribuí dos. É
possível falar-se em replicação síncrona e assíncrona, total ou parcial, procedural ou de
dados, dentre outros critérios possíveis de classificação.
A replicação de bancos de dados heterogêneos, em particular, costuma demandar a
utilização de gateways, ou de ferramentas especí ficas, para sua consecução. Este
trabalhopropõe, valendo-se de técnicas já existentes e da teoria de bancos de dados
distribuí dos, uma forma de implementação que viabilize a replicação assí ncrona entre
SGBD heterogêneos, sem que seja obrigatória a presença de um gateway ou de alguma
ferramenta de replicação nativa de algum dos SGBD envolvidos, ou comercializada por
terceiros.
Arquitetura proposta
Se considerarmos o uso de replicação assí ncrona entre bancos de dados
heterogêneos, conforme definido na solução de BDD para o cenário da Figura 1, será
necessário utilizar um gateway que possibilite a comunicação entre os SGBD ou um
software de replicação entre bancos heterogêneos. Propõe-se aqui a escolha de uma
combinação apropriada de técnicas para replicação, a fim de eliminar a necessidade de
um gateway ou de alguma ferramenta, nativa ou de terceiros, para implementar
replicação assíncrona entre bancos de dados heterogêneos.
Nesta arquitetura propõem-se o aperfeiçoamento da relação mestre-escravo entre
servidores e clientes, o mestre não seria o único site onde seria possível realizar
atualizações. Na verdade, seria possível efetuar modificações no site mestre, da mesma
maneira que em qualquer outro. Porém, ele seria o responsável por controlar as
replicações e também o único detentor de réplicas de todos os fragmentos envolvidos.
A implementação desta arquitetura é composta de um conjunto de componentes e
passos descritos a seguir.
AGENDA: tabela que armazena a relação entre as transações presentes na fila
de transações do mestre e os sites nos quais elas devem ser aplicadas. Indica quais sites
devem receber quais transações.
ATUALIZA MESTRE: conjunto de triggers implementados na tabela “fila de
transações” localizada no mestre; responsável por aplicar, no mestre, as transações
efetuadas nos demais sites.
BANCO DE DADOS LOCAL: banco de dados onde são armazenados os dados
do negócio. Pode haver um ou mais em cada site presente na aplicação.
CAPTURA: componente responsável por capturar as transações provenientes da
aplicação, aplicar no banco local e, caso seja uma operação que deve ser replicada,
armazenar na fila de transações mantendo a ordem original de sua execução.
CATÁLOGO DE REPLICAÇÃO: banco de dados, presente apenas no servidor
mestre, que contém os dados sobre a replicação; armazena quais são os sites envolvidos,
quais as réplicas presentes em cada um dos sites, o histórico de falhas e sucessos
durante a distribuição de dados, qual o atraso de propagação configurado para cada site,
quais ações devem ser tomadas em caso de falha, etc.
ESCALONA PROPAGAÇÕES: componente responsável por popular a tabela
denominada agenda; a partir de consultas ao catálogo de replicação, com o
conhecimento da distribuição das réplicas dos fragmentos pelos sites e a partir do uso de
triggers, grava na agenda a indicação dos sites que devem receber as transações no
momento em que se conectarem para sincronizar os dados.
EXECUTA SNAPSHOT: componente executado quando um site escravo não
sincroniza os dados com o mestre por tempo muito superior ao configurado; busca, no
banco de dados local do mestre, os valores atuais de todos os fragmentos que devem ser
replicados para o escravo que está realizando a sincronização em momento indevido;
utilizado, também, no momento em que um novo site escravo ingressa no esquema de
replicação, promovendo a primeira carga de dados desse novo site.
FILA DE TRANSAÇÕES - FT: tabela que armazena as transações que serão
replicadas para outros sites.
FILA DE TRANSAÇÕES REPLICADAS - FTR: tabela que armazena as
transações originadas de outros sites e que deverão ser aplicadas localmente.
PROPAGA: componente responsável por transferir o conteúdo da FT do site
onde o dado foi atualizado para a FTR dos sites escravos que receberão a sua réplica;
transfere, também, o conteúdo da FT dos sites escravos para a FT do site mestre.
Segue o esquema abaixo:
A interação destes componentes em passos pré-definidos estabelecem o processo de
replicação em bancos de dados distribuídos de forma a garantir a integridade dos dados.
A definição destes elementos visa garantir a interação modular, independente e atômica
entre as várias etapas do processo.
Download