Vous êtes sur la page 1sur 65

IESB Centro Universitrio de Braslia Ps-graduao em Banco de Dados com nfase em SGBD Oracle

Replicao entre Bancos de Dados Heterogneos Um estudo de caso para replicao e distribuio de dados entre os bancos Oracle e PostgreSQL

Andr Luiz Alves Baracho de Freitas (1031004017)

Braslia-DF Julho de 2011

Andr Luiz Alves Baracho de Freitas (1031004017)

Replicao entre Bancos de Dados Heterogneos Um estudo de caso para replicao e distribuio de dados entre os bancos Oracle e PostgreSQL

Trabalho de Concluso de Curso apresentado ao Curso de Ps-graduao com nfase em SGBD Oracle do Instituto de Educao Superior de Braslia, como requisito parcial para obteno do grau de especialista, sob a orientao do professor Eder Couto.

Braslia-DF Julho de 2011

Andr Luiz Alves Baracho de Freitas (1031004017)

Replicao entre Bancos de Dados Heterogneos Um estudo de caso para replicao e distribuio de dados entre os bancos Oracle e PostgreSQL

Trabalho de Concluso de Curso apresentado e aprovado em __/__/___, pela banca examinadora constituda pelos professores:

______________________________________________________ Prof. Esp. Eder Couto - orientador

______________________________________________________ Prof. Esp. Paulo Lima Machado

______________________________________________________ Prof. Esp. Rogrio Bragana Borges

AGRADECIMENTOS

Agradeo a Deus pelo infinito amor, fonte de inspirao e fazer-me acreditar que todo o sonho possvel de ser realizado.

A minha esposa Patrcia pelo amor, pacincia, incentivo e compreenso pelos momentos de lazer que tivemos que abdicar para que este trabalho fosse concludo.

Aos meus pais Andr e Snia pelos diversos momentos de carinho, amor, incentivo e ensinamento do caminho a ser seguido, amo vocs.

A minha irm Anna Paula pelas constantes alegrias e incentivos nos momentos difceis.

Ao professor Eder Couto, pela ateno, incentivo e pacincia.

Aos Diretores da Object Sistemas, pelo apoio, pacincia e confiana em mim depositado para que este trabalho fosse realizado.

"Ningum bater to forte quanto vida. Porm, no se trata de quo forte pode bater, se trata de quo forte pode ser atingido e continuar seguindo em frente. assim que a vitria conquistada." (ROCK BALBOA)

RESUMO

As organizaes a cada dia buscam ampliar seus negcios disseminando a informao, para que isto seja possvel a informao precisa chegar de modo que seja rpida, integra e que esteja sempre disponvel. Portanto, alguns mtodos so utilizados com o objetivo de transmitir essa informao, encaminhando ao seu destino e fazendo com que permanea disponvel ao responsvel pela sua emisso. A replicao de banco de dados um dos mtodos que pode auxiliar na disseminao da informao tornado-a sempre acessvel e disponvel, pois, permite que a informao esteja disponvel independente de falhas de rede. Outro fator que a replicao pode auxiliar na implantao de polticas de backup, fazendo com que a informao possa sempre estar disponvel a quem tenha direito de acess-la. O Objetivo deste trabalho apresentar a replicao entre as bases de dados heterogneas. A replicao foi desenvolvida por meio de um estudo de caso entre as bases de dados heterogneas Oracle e Postgresql. Esta soluo de replicao foi implantada no Hospital Geral do Brasil, com o objetivo de melhorar o fluxo de atendimento daquela unidade de sade.

Palavras-chaves: Replicao de Dados, Oracle, Postgresql, Banco de Dados

ABSTRACT

The organizations seek to expand their every day business disseminating information so that it is possible to get accurate information so that it is rapid, integrated and always available. Therefore, some methods are used in order to provide this information, routing to your destination and making available to remain responsible for their issue. Replication database is one of the methods that can assist in the dissemination of information made it accessible and always available, because it allows information to be available regardless of network failures. Another factor that replication can help implement backup policies, so that information can always be available to those who have right to access it. The objective of this study is the replication between heterogeneous databases. Replication has been developed through a case study among heterogeneous databases Oracle and Postgresql. This replication solution was implemented at the Hospital General of Brazil in order to improve the flow of care that health unit.

Keywords: Data Replication, Oracle, PostgreSQL, Database

LISTA DE ILUSTRAES

Figura 1: Arquitetura do Oracle ............................................................................. 19 Figura 2: Arquitetura do Postgresql. ..................................................................... 21 Figura 3: Replicao Passiva ................................................................................. 25 Figura 4: Replicao ativa. ..................................................................................... 25 Figura 5: Processo de captura. .............................................................................. 29 Figura 6: Diagrama Fsico do Oracle ..................................................................... 38 Figura 7: Diagrama Fsico do Postgresql.............................................................. 38 Figura 8: Criao do Usurio replicador no Oracle ............................................. 39 Figura 9: Criao de Usurio no Postgresql Filial SP .......................................... 40 Figura 10: Configurao do arquivo de conexo com o Banco de dados. ........ 41 Figura 11: Criao de trigger de replicao do servidor Oracle. ........................ 42 Figura 12: Cadastro dos servidores escravos de replicao. ............................. 42 Figura 13: Cadastro das tabelas e operaes DML realizadas. .......................... 43 Figura 14: Execuo do servio do replicador. .................................................... 44 Figura 15: Criao do Identificador seqencial no SGBD Oracle da Matriz. ..... 45 Figura 16: Criao do Identificador seqencial no SGBD Postgresql na Filial Braslia. .................................................................................................................... 46 Figura 17: Criao do Identificador seqencial no SGBD Postgresql na Filial So Paulo. ................................................................................................................ 46 Figura 18: Criao de Paciente no SGBD Oracle. ................................................ 47 Figura 19: Criao de Paciente no SGBD Postgresql na Filial Braslia. ............ 47 Figura 20: Criao de Paciente no SGBD Postgresql na Filial So Paulo. ........ 48 Figura 21: Atualizao de Paciente no SGBD Oracle na Matriz. ......................... 48

Figura 22: Atualizao de Paciente no SGBD Postgresql na Filial Braslia. ...... 48 Figura 23: Atualizao de Paciente no SGBD Postgresql na Filial So Paulo. . 49 Figura 24: Excluso de Paciente no SGBD Oracle na Matriz. ............................. 49 Figura 25: Excluso de Paciente no SGBD Postgresql na Filial Braslia. .......... 50 Figura 26: Excluso de Paciente no SGBD Postgresql na Filial So Paulo....... 50 Figura 27: Topologia dos ativos de rede ............................................................... 51 Figura 28: Tabela de converso de tipo de dados ............................................... 54

LISTA DE TABELAS

Tabela 1 comparao entre Objectmmrs e DBMoto.....................................36 Tabela 2 - comparao de tipos de dados.......................................................54

LISTA DE ABREVIATURAS E SIGLAS

CPU Central Processing Unit DDL Data Definition Language DML Data Manipulation Language DTI Diretoria de Tecnologia da Informao HD Hard Disk HGB Hospital Geral do Brasil IBGE Instituto Brasileiro de Geografia e Estatstica LCR Logical Change Records NTP Network Time Protocol OBJECTMMRS Object Multi-Master Replication Server RAM - Random Access Memory SGA System Global rea SGBD Sistema Gerenciador de Banco de Dados SQL Structured Query Language SSL Secure Socket Layer

SUMRIO

INTRODUO ................................................................................................................ 12 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Delimitaes do Tema .................................................................................................... 12 Problema ......................................................................................................................... 12 Justificativa ..................................................................................................................... 13 Tema Proposto ................................................................................................................ 14 Objetivo Geral ................................................................................................................ 14 Objetivos Especficos ..................................................................................................... 14 Resultados Esperados .................................................................................................... 15 Estrutura do Trabalho ................................................................................................... 15

REVISO DA LITERATURA ....................................................................................... 17 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Banco de dados ............................................................................................................... 17 Sistema de Gerenciamento de Banco de Dados ........................................................... 18 Arquitetura Oracle ......................................................................................................... 18 Arquitetura Postgresql .................................................................................................. 20 Transao ........................................................................................................................ 21 Controle de concorrncia............................................................................................... 23 Replicao ....................................................................................................................... 23 Tcnicas de Replicao ....................................................................................... 24 Modelo de Replicao ......................................................................................... 25 Mtodos de Replicao ....................................................................................... 26 Conflitos de Replicao ...................................................................................... 27 Replicao utilizada no Oracle e Postgresql .................................................... 28

2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8

Software de replicao ................................................................................................... 30

11 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 3 Oracle GoldenGate ............................................................................................. 30 Oracle Streams .................................................................................................... 30 Postgres-r ............................................................................................................. 30 DBMoto................................................................................................................ 31 ObjectMMRS ...................................................................................................... 31

METODOLOGIA ............................................................................................................ 32 3.1 3.2 3.3 Delineamento da Pesquisa ............................................................................................. 32 Contextualizao do Estudo de Caso............................................................................ 33 Procedimentos de Pesquisa ............................................................................................ 33

ESTUDO DE CASO ........................................................................................................ 34 4.1 4.2 4.3 4.4 4.5 4.6 4.7 SGBD Utilizado .............................................................................................................. 34 Infra-estrutura ................................................................................................................ 34 Descrio da Soluo ...................................................................................................... 35 Criao da Replicao ................................................................................................... 38 Topologia dos Ativos ...................................................................................................... 50 Desempenho do Replicador ........................................................................................... 51 Funcionamento e Manuteno do Replicador ............................................................. 51

5 6 7 8

ANLISES DO ESTUDO DE CASO ............................................................................ 53 CONCLUSO .................................................................................................................. 55 RECOMENDAES PARA TRABALHOS FUTUROS ............................................ 56 REFERNCIAS ............................................................................................................... 57

ANEXO A TRIGGER CRIADA PELO SOFTWARE OBJECTMMRS ....................... 59 GLOSSRIO .......................................................................................................................... 61

12 1 INTRODUO

1.1 Delimitaes do Tema A informao o ativo mais importante para as organizaes. Importncia esta que caso seja perdida ou no acessada por indisponibilidade do sistema pode gerar prejuzos irreparveis. Estes prejuzos podem ser ocasionados por falhas em rede de computadores, atentados criminosos e desastres naturais como chuvas, terremotos, furaces e etc. As organizaes tm adotado a replicao de banco de dados como soluo para minimizar impactos de perda de dados e aumentar a disponibilidade do sistema. Estes dados so transferidos para outros locais em diferentes localizaes representando a cpia fiel dos dados, sendo assim, podendo ser acessado de diferentes regies. Os Sistemas Gerenciadores de Bancos de dados (SGBD), contam com este auxlio de replicao nativa, portanto, vale lembrar que nem todas as solues j incorporadas nestes bancos podem atender a necessidade, ser de fcil adequao e entendimento ao usurio deste recurso. Neste estudo de caso ser apresentado, um comparativo entre as ferramentas de replicao nativas dos SGBDS Oracle e PostgreSQL e de um software proprietrio de replicao da Object Sistemas, a qual atendeu a necessidade da organizao hospitalar.

1.2 Problema O Hospital Geral do Brasil uma rede hospitalar com sede no estado do Rio de Janeiro, atualmente possui duas filiais situadas em So Paulo e Braslia que

13 realizam atendimento de aproximadamente 400 pacientes. Estes atendimentos so realizados atravs de software nico em cada unidade hospitalar. As unidades hospitalares dispem de centros de tecnologia subordinados a Diretoria de Tecnologia da Informao DTI/HGB, que so responsveis por gerenciar todo o ambiente tecnolgico das unidades hospitalares, bem como, realizar treinamento e auditoria dos softwares utilizados e propor solues de melhoria. A DTI/HGB ao observar o fluxo de atendimento das unidades e constatar indcios de demora no atendimento, identificou a necessidade de desenvolvimento de um software que utilizasse um pronturio nico de atendimento aos seus pacientes, pois a demora estava sendo ocasionada pela existncia de softwares independentes em cada unidade hospitalar. O paciente ao ser transferido para outra unidade e caso no estivesse cadastrado no sistema, era gerado um novo pronturio e migradas as informaes da unidade de origem para este. A entrega de exame era realizada de forma equivocada, pois o pronturio que o cliente informava muitas vezes era de outro paciente pela diversificao de softwares utilizados nas unidades hospitalares. Portanto necessrio adotar uma soluo de replicao de dados que sincronize as informaes do pronturio entre todas as unidades de sade.

1.3 Justificativa As unidades hospitalares dispem de software de cadastro e de atendimento a pacientes independente dos softwares de outras unidades. Desse modo, cada unidade possui as informaes dos pacientes que sempre procuram atendimento nas mesmas. Caso um paciente necessite ser transferido para outra unidade da

14 rede hospitalar e este no possui pronturio no hospital para o qual foi transferido, aberto um novo pronturio e so migrados os dados do pronturio antigo. Portanto de fundamental importncia a implantao de um software que atenda as diversas unidades hospitalares com uma soluo de replicao de banco de dados, podendo assim proporcionar um ambiente com tolerncia a falhas de rede, implantao de polticas de backup e fornecimento de informaes alta Administrao para possveis tomadas de deciso.

1.4 Tema Proposto

O tema proposto avalia os replicadores nativos dos bancos de dados Oracle 10g e Postgresql, e de softwares proprietrios de replicao de dados, buscando propor uma soluo de replicao para atendimento da necessidade das unidades hospitalares.

1.5 Objetivo Geral

Avaliar as ferramentas nativas dos bancos de dados Oracle 10g e Postgresql, e de softwares proprietrios de replicao de dados, e propor a implantao do qual melhor atender a necessidade das unidades hospitalares.

1.6 Objetivos Especficos

Identificar as funcionalidades dos replicadores nativos dos bancos de dados Oracle e Postgresql e de softwares proprietrios de replicao de dados; Propor implantao do replicador que atenda a necessidade das unidades hospitalares;

15 Descrever o ambiente de estudo de caso com a replicao entre os bancos de dados Oracle e Postgresql. Analisar os dados replicados entre os bancos de dados heterogneos.

1.7 Resultados Esperados

Aps implantao de replicao de dados, esperada uma melhora no atendimento, alta disponibilidade em termos de tolerncia a falhas de rede, e dados sempre atualizados para os gestores que necessitarem de informaes a nvel gerencial para uma possvel tomada de deciso de forma rpida e precisa.

1.8 Estrutura do Trabalho

Este trabalho est estruturado em seis captulos divididos da seguinte forma: O captulo um a parte introdutria identificando o problema encontrado, a justificativa para o tema escolhido, seguindo com a apresentao dos objetivos gerais e especficos e os resultados esperados com o desenvolvimento do trabalho. O capitulo dois aborda a reviso literria apresentando os conceitos de banco de dados, sistemas de gerenciamento de banco de dados, arquiteturas do Oracle e Postgresql, transao, controle de concorrncia, replicao e software de replicao. O capitulo trs define os procedimentos de pesquisa utilizada para

desenvolvimento deste estudo de caso. O capitulo quatro apresenta o estudo de caso de implantao de um mecanismo de replicao nas unidades hospitalares do Hospital Geral do Brasil, utilizando um software de replicao Objectmmrs.

16 O capitulo cinco apresenta a anlise do estudo de caso, identificando os procedimentos adotados para realizar a replicao. O capitulo seis apresenta a concluso deste trabalho os benefcios encontrados e os impactos minimizados com a implantao deste mecanismo. E por fim, no capitulo sete apresentado s oportunidades de trabalhos futuros a serem realizados.

17 2 2.1 REVISO DA LITERATURA Banco de dados

Date (2004) descreve um banco de dados como uma coleo de dados persistentes, usada pelos sistemas de aplicao de uma determinada empresa. O termo empresa, aqui, simplesmente um termo genrico para qualquer organizao comercial, cientfica, tcnica ou outra organizao razoavelmente autnoma. Uma empresa poderia ser um nico individuo com um pequeno banco de dados pessoal, ou uma corporao ou grande empresa completa com um enorme banco de dados compartilhado, ou qualquer coisa entre esses extremos. Garcia-Molina, Ullman e Widom (2001), definem que o banco de dados uma coleo de dados organizados para facilitar o acesso e a modificao, preservada durante um longo perodo. Segundo Elmasri e Navathe (2005), o banco de dados representa alguns aspectos do mundo real, sendo chamado, s vezes, de minimundo ou de universo de discurso. As mudanas no minimundo so refletidas em um banco de dados. Este uma coleo lgica e coerente de dados com algum significado inerente. Uma organizao de dados ao acaso no pode ser corretamente interpretada como um banco de dados. Portanto, um banco de dados projetado, construdo e povoado por dados, atendendo a uma proposta especfica. Possui um grupo de usurios definidos e algumas aplicaes preconcebidas, de acordo com o interesse desse grupo de usurios.

18 2.2 Sistema de Gerenciamento de Banco de Dados

Silberschartz, Korth e Sudarshan (2005), explicam que um Sistema Gerenciador de Banco de Dados (SGBD), constitudo por um conjunto de dados associados a um conjunto de programas para acesso a esses dados. Conforme Date (2004), O SGBD o software que trata de todo o acesso ao banco de dados. Conceitualmente, o que ocorre o seguinte: Um usurio faz um pedido de acesso usando uma determinada sublinguagem de dados, SQL. O SGBD intercepta o pedido e o analisa. O SGBD, por sua vez, inspeciona o esquema externo ou as verses objeto desse esquema para esse usurio, o mapeamento externo/conceitual correspondente, o esquema conceitual, o mapeamento conceitual/interno e a definio do banco de dados armazenado. O SGBD executa as operaes necessrias sobre o banco de dados armazenado.

2.3

Arquitetura Oracle

Watson (2010) explica que o servidor Oracle composto de duas entidades: a instncia e o banco de dados de acordo com as definies abaixo. Instncia composta de estruturas de memria e processos, sua existncia temporria, na memria RAM e nas CPUs, quando desligada a instncia em execuo, todos os vestgios da sua existncia so perdidos, os processos que compem a instncia so conhecidos como processos de segundo plano ou

19 processos de background, por que esto presentes e em execuo o tempo todo enquanto a instncia est ativa. As estruturas de memria, implementadas em segmentos de memria compartilhados fornecidos pelo sistema operacional, so conhecidos como a rea de sistema global ou SGA, essa rea alocada na inicializao da instncia e liberada no desligamento. As sesses de usurio so compostas de um processo de usurio executando localmente na mquina do usurio, conectando a um processo de servidor executando localmente na mquina do servidor. Banco de dados composto de arquivos fsicos no disco. Esteja ele em execuo ou parado, os arquivos permanecem. Estes arquivos so os arquivos de dados, os arquivos de redo log e os arquivos de controle. A Figura 1 apresenta com mais detalhes a arquitetura do SGBD Oracle

Figura 1: Arquitetura do Oracle

20 2.4 Arquitetura Postgresql

Conforme documentao oficial, o Postgresql utiliza o modelo cliente-servidor. Uma sesso do Postgresql consiste nos seguintes processos cooperando entre si: Um processo servidor, que gerencia os arquivos de banco de dados, recebe conexes dos aplicativos cliente com o banco de dados, e executa aes no banco de dados em nome dos clientes. O programa servidor de banco de dados se chama postmaster. O aplicativo cliente do usurio (frontend) que deseja executar operaes de banco de dados. Os aplicativos cliente podem ter naturezas muito diversas: o cliente pode ser uma ferramenta no modo caractere, um aplicativo grfico, um servidor Web que acessa o banco de dados para mostrar pginas Web, ou uma ferramenta especializada para manuteno do banco de dados. O servidor Postgresql pode tratar vrias conexes simultneas de clientes. Para esta finalidade iniciado um novo processo para cada conexo. Deste ponto em diante, o cliente e o novo processo servidor se comunicam sem interveno do processo postmaster original. Portanto, o postmaster est sempre executando e aguardando por novas conexes dos clientes, enquanto os clientes e seus processos servidor associados surgem e desaparecem. Todos os processos postgres compartilham duas reas de memria: O buffer cache armazena blocos lidos ou modificados de tabelas e ndices. O write-ahead log armazena temporariamente o log de transaes, at que ele possa ser armazenado em disco. Alm disso, cada processo postgres tem uma rea individual para operaes de ordenao. A figura 2 apresenta com mais detalhes a arquitetura do SGBD Postgresql.

21

Figura 2: Arquitetura do Postgresql.

2.5

Transao

Segundo Coulouris, Dollimore e Kindberg (2007), o objetivo das transaes garantir que todos os objetos gerenciados por um servidor permaneam em um estado consistente ao serem acessados por vrias transaes na presena de falhas do servidor. As transaes tratam falhas por colapso de processos e falhas por omisso na comunicao, mas no como qualquer tipo de comportamento arbitrrio. Os objetos que podem ser recuperados depois que seu servidor falha so chamado de objetos recuperveis. Em geral, os objetos gerenciados por um servidor podem ser armazenados em memria voltil, ou em memria persistente. Mesmo que os objetos sejam armazenados em memria voltil, o servidor pode usar memria persistente para armazenar informaes suficientes para que, no caso de falhas do processo servidor, o estado dos objetos seja recuperado. Isso permite que os servidores tornem os objetos recuperveis. Uma transao especificada por um cliente como um conjunto de operaes sobre os objetos a serem executadas como

22 uma unidade indivisvel pelos servidores que esto gerenciando esses objetos. Ozsu e Valduriez (2001) afirmam que a transao uma unidade de computao consistente e confivel. Assim, intuitivamente, uma transao toma um banco de dados, executa uma ao sobre ele e gera uma nova verso do banco de dados, provocando uma transio de estado. Isso semelhante ao que faz uma consulta, mas, se o banco de dados era considerado consistente antes da execuo da transao, independente do fato de que a transao pode ter sido executada de forma concorrente com outras e podem ter ocorrido falhas durante sua execuo. Em geral, considera-se que a transao constituda por uma seqencia de operaes de leitura e gravao sobre o banco de dados, juntamente com etapas de computao. Nesse sentido, uma transao pode ser imaginada como um programa com consultas de acesso ao banco de dados incorporado. Os aspectos de consistncia e confiabilidade das transaes se devem a quatro propriedades: Atomicidade se refere ao fato que uma transao tratada como uma unidade de operao. Assim, ou todas as aes da transao so concludas, ou nenhuma delas se completa. Consistncia Um banco de dados est em um estado consistente se ele obedece a todas as restries de consistncia definidas sobre ele. Isolamento a propriedade das transaes que exige que cada transao veja um banco de dados consistente em todos os momentos, uma transao em execuo no pode revelar seus resultados a outras transaes concorrentes antes de se consolidar. Durabilidade se refere propriedade das transaes que assegura que, uma vez que a transao se consolida ou se completa, seus resultados se

23 tornam permanentes e no podem ser apagados do banco de dados. Por conseguinte, o SGBD assegura que os resultados de uma transao sobrevivero aps a ocorrncia de falhas do sistema.

2.6

Controle de concorrncia

Conforme Ozsu e Valduriez (2001), controle de concorrncia trata das propriedades de isolamento e consistncia das transaes. O mecanismo de controle distribudo da concorrncia de um SGBD distribudo assegura que a consistncia do banco de dados, seja mantida em um ambiente distribudo multiusurio. Se as transaes so consistentes internamente, isto , no violam nenhuma das restries de consistncia, a maneira mais simples de alcanar esse objetivo executar cada transao sozinha, uma aps a outra.

2.7 Replicao

Coulouris, Dollimore e Kindberg (2007) descrevem a replicao como a chave para prover alta disponibilidade e tolerncia a falhas em sistemas distribudos. A alta disponibilidade um tpico de crescente interesse principalmente com a atual tendncia em direo computao mvel e, conseqentemente, operao desconectada. A tolerncia a falhas uma preocupao permanente dos servios fornecidos em sistemas onde a segurana critica e em outros tipos importantes de sistemas. As motivaes para a replicao so: Melhoria de desempenho a colocao dos dados na cache em clientes e servidores uma maneira conhecida de melhorar o desempenho,

24 navegadores e servidores proxies colocam na cache cpias de recursos web para evitar a latncia da busca desses recursos no servidor de origem, alm disso, s vezes os dados so replicados de forma transparente entre vrios servidores de origem no mesmo domnio. Maior disponibilidade os usurios exigem que os servios sejam de alta disponibilidade, isto , a proporo do tempo durante a qual o servio est acessvel com tempo de resposta razovel deve ser prxima a 100%. Fora os atrasos decorrentes dos conflitos do controle de concorrncia pessimista, os fatores relevantes para a alta disponibilidade so falhas no servidor e/ou particionamento da rede e operao desconectada.

2.7.1 Tcnicas de Replicao

Segundo Coulouris, Dollimore e Kindberg (2007), esta tcnica pode ser apresentada da seguinte forma: Replicao Passiva - nesta forma, os front ends se comunicam somente com o gerenciador de rplica primrio para obterem o servio. O gerenciador de rplica primrio executa as operaes e envia cpias dos dados atualizados para os backups. Se o primrio falhar, um dos backups ser promovido para atuar como primrio (figura 3).

25
Figura 3: Replicao Passiva

Replicao Ativa na replicao ativa para tolerncia a falhas os gerenciadores de rplica so maquinas de estado que desempenham papis equivalentes e so organizados com um grupo. Os front ends enviam suas requisies por multicast para o grupo de gerenciadores de rplica, e todos os gerenciadores de rplica processam a requisio independentemente, mas de forma idntica, e respondem. Se qualquer gerenciador de rplica falhar, isso no tem nenhum impacto sobre o desempenho do servio, pois os gerenciadores de rplica restantes continuam a responder normalmente (figura 4).

Figura 4: Replicao ativa.

2.7.2 Modelo de Replicao

Segundo Oliveira (2006), alm da tcnica de replicao, outro ponto importante na replicao de dados o modelo adotado. Existem dois modelos bsicos de replicao: Replicao sncrona: a replicao de dados feita no instante em que

26 uma determinada cpia alterada. Nessa situao, todas as cpias ou replicaes de dados sero feitas no instante da sincronizao e consistncia. Se alguma cpia do banco alterada, essa mudana ser imediatamente aplicada a todos os outros bancos dentro da transao. Os servidores replicados cooperam usando estratgias sincronizadas e protocolos especializados de rplica para manter os conjuntos de dados replicados coerentes. Esse modelo de replicao demanda conexo constante e com eventual intermitncia do meio de comunicao. No toleram atrasos na propagao das atualizaes. Replicao assncrona: nesse tipo de replicao, somente a rplica alterada tratada em tempo real; a cpia dos dados fica fora de sincronia entre os bancos de dados. Se uma base de dados modificada, a alterao ser propagada e aplicada para outra base de dados num segundo passo dentro de uma transao separada, sendo que essa poder ocorrer segundos, minutos, horas ou at dias depois. A cpia poder ficar temporariamente fora de sincronia, provocada pela interrupo de comunicao entre as rplicas, mas quando a sincronizao ocorrer, os dados convergiro para todos os locais especificados. 2.7.3 Mtodos de Replicao

Oliveira (2006), explica que em sistemas de bancos de dados, toda replicao requer um mtodo para realizar as alteraes feitas em dados replicados. Os dois mtodos usados ou com maior freqncia so: Arquivo de registro: cada transao (insert, update e delete) feita no banco de dados cria uma entrada na tabela de log. Em tempo determinado, essa

27 entrada processada e a transao propagada para todas as cpias do dado alterado; e Gatilhos transacionais: permitem que os usurios do banco de dados criem suas prprias regras para o tratamento de dados replicados. Esses gatilhos so disparados de acordo com evento determinado. Arquivos de log e gatilhos podem ser usados individual ou conjuntamente em um SGBD, dependendo das caractersticas de cada sistema e de suas aplicaes. Um ponto favorvel ao uso de gatilhos para a realizao de replicao de dados que esse esquema demanda menos tempo e consome menos recursos do que arquivos de log. A replicao de dados baseada em log implicaria que, em intervalos de tempo definidos, um arquivo fosse gravado com todas as alteraes realizadas e, posteriormente, fosse processado em cada um dos sites envolvidos na replicao. Atravs de gatilhos e procedimentos, o mesmo processo pode ser realizado de forma mais rpida e consumindo menos recursos uma alterao em uma rplica implica na execuo de um procedimento responsvel por enviar aos demais sites s modificaes realizadas naquela poca, e esperar por uma resposta afirmativa ou negativa de cada um dos sites em relao efetivao da alterao em suas rplicas locais.

2.7.4 Conflitos de Replicao

Conforme Coutinho (2002) deve-se sempre criar um ambiente de replicao que evite a possibilidade de conflitos. E utilizando algumas tcnicas isso possvel, no em sua totalidade, mas sim para que se permita um ambiente acessvel. Alguns tipos de conflitos podem ocorrer de acordo com a replicao

28 utilizada, estes conflitos so: Update ocorre quando se utiliza replicao ativa, pois somente nela se consegue fazer alteraes. Ele pode acontecer quando duas transaes, originadas de bancos diferentes, atualiza a mesma linha no mesmo instante. Este conflito poder ser evitado. Quanto menor for o tempo de atualizao da rplica, ou seja, menor intervalo de atualizao, menor ser a possibilidade de ocorrer conflitos de atualizao. Delete este conflito muito parecido com o conflito anterior. Imagine as duas bases A e B deletando a mesma linha no mesmo momento. Quando houver a sincronizao das bases o conflito surgir, pois haver uma tentativa de apagar uma linha que j no mais existe. Chaves nicas e seqenciais ocorre quando a replicao de uma linha viola a integridade de uma tabela Primary Key ou Unique Key, quando duas transaes originadas de lugares diferentes tentam inserir um registro em uma mesma tabela (rplica) utilizando o mesmo valor para primary key.

2.7.5 Replicao utilizada no Oracle e Postgresql

2.7.5.1

Oracle

De acordo com a documentao oficial da Oracle, a replicao funciona atravs de arquivo de registro da seguinte forma: um processo de captura armazena eventos do banco de dados, tais como alteraes feitas em tabelas, esquemas, ou um banco de dados inteiro. As alteraes registradas no arquivo de redo log de cada banco so

29 armazenadas em um registro chamado registro de mudana lgica (LCR). As regras usadas por este processo de captura determinam as alteraes que ele capta, essas mudanas capturadas so chamadas de mensagens capturadas. O banco de dados onde as mudanas so geradas no redo log chamado de banco de dados fonte. Um processo de captura pode capturar mudanas localmente no banco de origem, ou pode capturar alteraes remotamente em um banco de dados downstream (figura 5).

Figura 5: Processo de captura.

2.7.5.2

Postgresql

Segundo a documentao oficial do Postgresql verso 8.4.3.2 no existe uma soluo nativa de replicao pelo fato deste banco ser de cdigo aberto e facilmente estendido, uma srie de empresas criaram vrias solues de replicao e recursos de balanceamento de carga. Portanto utilizaremos uma soluo de replicao chamada de Slony-I. Slony-I um replicador do tipo Mestre-Escravo, funcionando da

30 seguinte forma: 1. Um servidor Slony-I age como mestre e um ou mais servidores Slony-I agem como escravos, replicando os dados de forma assncrona. 2. Estes dados so capturados atravs de triggers e armazenados em tabelas de log. 3. Os logs armazenados so enviados aos servidores escravos. 2.8 Software de replicao 2.8.1 Oracle GoldenGate Software de replicao adquirido pela Oracle em Julho de 2009 da GoldenGate, este software capaz de permitir integrao em tempo real de dados, garantindo contnua disponibilidade atravs da captura e entrega de informaes baseadas em log de acordo como as mudanas que vo ocorrendo, proporcionando sincronizao dos dados em ambientes

heterogneos como DB2, MySQL, SQL Server e Sybase.

2.8.2 Oracle Streams Software de replicao da Oracle que possivelmente no ser mais utilizado pela Oracle nas prximas verses de bancos de dados aps a aquisio do Oracle GoldenGate. Replicao baseada em log podendo ser configurado para utilizao de ambientes heterogneos suportando somente os bancos de dados Sybase, Informix, SQL Server e DB2.

2.8.3 Postgres-r uma extenso de replicao do banco de dados Postgresql, provendo

31 eficiente, rpido e consistente replicao entre os bancos de dados, foi projetado para ser o mais transparente possvel para o usurio. O postgres-r foi desenvolvido especificamente para balanceamento de carga e alta disponibilidade, utiliza o modelo de replicao sncrona, suporta apenas bancos de dados Postgresql. 2.8.4 DBMoto Software de replicao da Hit Software, realiza a replicao de dados atravs de log, possui um conjunto de ferramentas de integrao de dados. Suporte a bancos de dados heterogneos tais como: DB2, Oracle, Postgresql, SQL Server, Ingress, Firebird, MySQL, Gupta e Solid.

2.8.5 ObjectMMRS Software de replicao da Object Sistemas utiliza modelos de replicao assncrona e sncrona, entrega e captura de dados atravs de log ou gatilhos suporte a bancos de dados heterogneos tais como: DB2, Oracle, Postgresql, SQL Server, Firebird, MySQL, Apache Derby, HSQLDB e SQLite.

32

3 3.1

METODOLOGIA Delineamento da Pesquisa

O tipo de pesquisa utilizado neste trabalho pode ser classificado da seguinte forma: uma pesquisa de natureza aplicada, pois o investigador movido pela necessidade de contribuir para fins prticos mais ou menos imediatos, buscando solues para problemas concretos de acordo com Cervo e Bervian (2005). tambm uma pesquisa bibliogrfica quanto aos procedimentos, pois foram utilizados livros e artigos como referncia para elaborao deste trabalho, de acordo com Gil (2010) a pesquisa bibliogrfica elaborada com base em material j publicado. Tradicionalmente, esta modalidade de pesquisa inclui material impresso, como livros, revistas, jornais, teses, dissertaes e anais de eventos cientficos. Quanto aos objetivos, segundo Andrade (2006) exploratria, pois o primeiro passo de todo trabalho cientfico. So finalidades de uma pesquisa exploratria, sobretudo quando bibliogrfica, proporcionar maiores informaes sobre

determinado assunto; facilitar a delimitao de um tema de trabalho; definir os objetivos ou formular as hipteses de uma pesquisa ou descobrir novo tipo de enfoque para o trabalho que se tem em mente. um estudo de caso, pois foram levantadas informaes sobre a empresa, bem como, os processos internos determinando os pontos de falhas para que estes processos fossem melhorados utilizando replicao de banco de dados. Silva e Siveira (2008) explicam que um estudo de caso, trata-se de um objeto bem restringido individual sobre o qual se levanta o maior nmero de informaes possveis. Assim uma cidade, um fenmeno ou mesmo um evento podem ser

33 objetos de estudo de caso. 3.2 Contextualizao do Estudo de Caso

Trata-se de uma rede hospitalar denominada, Hospital Geral do Brasil, onde foram encontrados pela Diretoria de Tecnologia da Informao DTI/HGB, algumas necessidades como implantao de um sistema nico hospitalar abrangendo todas as unidades, e que os dados trafegados neste sistema, fossem replicados entre todas as unidades. A sede das unidades hospitalares utiliza o SGBD Oracle 10g, e as filiais Postgresql 8.4.2.3. A replicao ser assncrona abrangendo as informaes de pronturio dos pacientes.

3.3

Procedimentos de Pesquisa Os procedimentos executados foram realizados com referncia na reviso de

literatura e execuo de anlises para preparao de ambiente, execuo de testes e auditoria.

34 4 ESTUDO DE CASO

O objetivo deste estudo de caso apresentar a implantao de um software de replicao de banco de dados entre o SGBD Oracle e Postgresql na rede hospitalar, Hospital Geral do Brasil.

4.1

SGBD Utilizado

O SGBD utilizado na matriz o Oracle verso 10g Enterprise Edition Release 2, e nas filiais Postgresql 8.4.2.3.

4.2

Infra-estrutura

Os servidores que compem o parque tecnolgico das unidades hospitalares, onde estaro s bases de dados so definidas da seguinte forma: Matriz Servidor de Banco de dados SGBD: Oracle 10g Processador Intel Core 2 duo 2.33 Ghz Memria: 32 GB HD: 500GB Sistema Operacional: Red Hat Enterprise Linux 5

Filial Servidor de Banco de dados SGBD: PostgreSQL 8.4.2.3 Processador Intel Core 2 duo 2.33 Ghz

35 Memria: 32 GB HD: 500GB Sistema Operacional: GNU/Linux Debian 5

4.3

Descrio da Soluo

A soluo encontrada para aperfeioar o atendimento oferecido pelas unidades da rede hospitalar a criao de um mecanismo de replicao de banco de dados, pois, a partir do momento de sua criao o pronturio ser replicado para todas as unidades hospitalares. De acordo com o apresentado neste estudo de caso atualmente existem vrios softwares de replicao de dados que poderiam ser implantados nas unidades hospitalares. Entretanto, para o completo atendimento das necessidades de cada unidade foram seguidos alguns procedimentos de avaliao, conforme descrito abaixo: 1. Verificao e anlise das ferramentas de replicao nativa dos bancos de dados. 2. Verificao e anlise de alguns softwares de replicao existentes no mercado. Aps anlise dos replicadores nativos foi observado que no atenderiam por falta de interoperabilidade entre os bancos de dados utilizados nas unidades hospitalares. Aps a verificao das funcionalidades complementares de alguns softwares de replicao, foram escolhidas duas ferramentas que condizem com as necessidades do hospital. Segue a matriz de comparao que levou a escolha da ferramenta.

36
RECURSO Compatvel com o Oracle Compatvel com o MSSQLServer Compatvel com o Ingres Compatvel com o Sybase Compatvel com o DB2 Compatvel com o PostgreSQL Compatvel com o MySQL Compatvel com o Apache Derby Compatvel com o HSQLDB Compatvel com o SQLite Compatvel com o Gupta Compatvel com o Solid Replicao de banco de dados Multi-Master Replicao de banco de dados Assncrono Deteco e controle de conflitos de update Configurao de link redundante entre internet e intranet Instrues reduzidas de verso de mecanismos de replicao para dispositivos mveis Uso de criptografia SSL Captura de alterao dos dados baseados em triggers padro do banco de dados Compresso dos dados Ferramenta de sincronizao de tabelas Replicao de DDL Ferramenta para execuo de comandos DDL em todos os servidores Proteo de usurios e senhas de banco de dados, no expondo os arquivos de configurao ou setup de tabelas Necessita de um ou mais log's de tabelas para cada tabela de replicao de banco de dados Ferramenta de monitoramento que pode enviar emails e sms alertando os mecanismos de replicao de banco de dados indisponveis Arquitetura Multi-thread Arquitetura multi-processo para atingir o mximo de performance na replicao de banco de dados entre milhares de servidores compativel com o Linux compativel com o Windows Ferramenta de monitoramento enterprise com interface web habilitada para controle de vrios projetos diferentes de replicao Customizao fcil de classe java permitindo controle completo, por exemplo permitido replicao de dados para destinatrios web-services Caracterstica de replicao que permite decises de replicao baseada em comparao de dados entre bancos de dados OBJECTMMRS SIM SIM NO SIM SIM SIM SIM SIM SIM SIM NO NO SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM NO SIM SIM SIM SIM SIM SIM DBMoto SIM SIM SIM SIM SIM SIM SIM NO NO NO SIM SIM SIM SIM ?? NO NO SIM NO ?? SIM NO NO SIM SIM ?? ?? ?? ?? SIM SIM

SIM SIM

?? NO

37
de origem e destino Modo de funcionamento externo incorporado que permite uma aplicao java iniciar o mecanismo de replicao de controle, parar, ciclo de replicao, etc SIM ?? ??

Capacidade de customizao de converso de tipos de dados SIM Tabela 1 comparao entre Objectmmrs e Dbmoto.

Aps anlise dos replicadores disponveis de acordo com a matriz de comparao, o software mais adequado o Objectmmrs da Object Sistemas. Este software ser responsvel em replicar toda e qualquer informao manipulada nos bancos de dados Oracle e Postgresql. Para enviar informaes entre os bancos de dados, o software de replicao utiliza tabelas de dicionrio de dados do replicador, criadas no banco de dados. Estas informaes so armazenadas temporariamente nestas tabelas e so descartadas logo aps a efetivao da transferncia destes registros. A criao de replicao de banco de dados ser realizada segundo o ambiente tecnolgico disponibilizado pelo Hospital. O modelo de dados das unidades hospitalares composto de 200 tabelas participantes da replicao de dados, segue abaixo a criao do mecanismo de replicao nas quatro tabelas principais (figuras 6 e 7).

38

Figura 6: Diagrama Fsico do Oracle

Figura 7: Diagrama Fsico do Postgresql

4.4

Criao da Replicao

Para instalao do replicador Objectmmrs foram descompactados os arquivos de instalao em um diretrio denominado: /objectmmrs, no servidor da matriz. Logo aps, foram criados trs usurios no SGBD Oracle: um servir como dono das

39 tabelas de dicionrio de dados do replicador e os outros dois foram utilizados pelo usurio do replicador para enviar os dados para os servidores das filiais. No SGBD das filiais foram criados dois usurios: um servir como dono das tabelas de dicionrio de dados do replicador e o outro para enviar os dados para o servidor da matriz. Aps a criao dos usurios sero concedidos privilgios para sua utilizao. Criao do usurio dono do dicionrio de dados do replicador, usurio Objectmmrs (figura 8).

Figura 8: Criao do Usurio replicador no Oracle

Aps a criao do usurio dono do dicionrio de dados foi realizada a conexo no banco de dados com este usurio e executado o script or_master_schema.sql localizado no diretrio: /objectmmrs/sql/oracle. importante ser realizada a criao do dicionrio de dados, pois nestas tabelas so armazenadas todas as informaes referentes replicao como tabelas cadastradas, log de eventos realizados, servidores replicados dentre outras. Aps a criao do dicionrio de dados foi seguida a configurao do replicador com a criao dos usurios repdf e repsp utilizados pelo replicador (figura 9).

40

Figura 9: Criao de Usurio no Postgresql Filial SP

Aps a criao do dicionrio de dados e dos usurios de replicao, foi configurado o arquivo de conexo com as bases de dados, localizado no diretrio /objectmmrs/objectdb.properties, para a configurao deste arquivo necessrio adicionar ao arquivo o usurio master, os usurios escravos e o endereo de cada servidor de banco de dados. O software de replicao utiliza este arquivo para realizar a conexo com as bases de dados e executar a replicao (figura 10).

41

Figura 10: Configurao do arquivo de conexo com o Banco de dados.

Aps

configurao

do

arquivo

de

conexo

foi

editado

arquivo

/objectmmrs/publicar.sh, neste arquivo foram cadastradas as tabelas que sero replicadas. O replicador utiliza trigger para capturar os dados, armazen-los em tabelas temporrias e replic-los para os servidores cadastrados, aps a edio do arquivo, este foi executado gerando o arquivo publicar.sql no diretrio raiz /objectmmrs (figura 11).

42

Figura 11: Criao de trigger de replicao do servidor Oracle.

O prximo passo foi executar o arquivo publicar.sql com o script de criao das triggers no servidor Oracle utilizando o usurio Objectmmrs (Anexo A). Aps, foram realizados dois inserts na tabela or_tb_client para cadastro dos servidores que atuam como servidores escravos (figura 12).

Figura 12: Cadastro dos servidores escravos de replicao.

Aps o cadastro dos servidores escravos foram cadastradas as tabelas que estes servidores recebero os dados e quais operaes DML sero realizadas (figura 13).

43

Figura 13: Cadastro das tabelas e operaes DML realizadas.

Aps estas configuraes de replicao o servio do replicador foi iniciado com a execuo do comando no Linux, ./run.sh (figura 14), no diretrio padro de instalao do replicador. Estas configuraes realizadas para criao de replicao na matriz tambm foram executadas nos servidores das filiais. A estrutura do banco de dados idntica nos trs hospitais. Foram necessrios alguns ajustes para impedir erros de duplicao de chaves primarias, devido os identificadores das tabelas serem controlados por nmeros seqenciais, exceto a tabela cidade que segue a identificao padro adotada pelo IBGE. Para soluo deste problema foram criados identificadores seqenciais incrementados pelo total de banco de dados que faro parte da replicao, segue abaixo a criao dos identificadores seqenciais no SGBD Oracle e Postgresql (figuras 15, 16 e 17).

44

Figura 14: Execuo do servio do replicador.

45

Figura 15: Criao do Identificador seqencial no SGBD Oracle da Matriz.

46

Figura 16: Criao do Identificador seqencial no SGBD Postgresql na Filial Braslia.

Figura 17: Criao do Identificador seqencial no SGBD Postgresql na Filial So Paulo.

47 Aps a criao dos identificadores seqenciais foram realizadas operaes de insert, update e delete e verificado a integridade dos dados aps a transferncia dos dados entre os servidores. As figuras 18, 19 e 20, apresentam as operaes de insert realizadas nos servidores da matriz, filial Braslia e filial So Paulo respectivamente.

Figura 18: Criao de Paciente no SGBD Oracle.

Figura 19: Criao de Paciente no SGBD Postgresql na Filial Braslia.

48

Figura 20: Criao de Paciente no SGBD Postgresql na Filial So Paulo.

As figuras 21, 22 e 23, apresentam as operaes de update realizadas nos servidores da matriz, filial Braslia e filial So Paulo respectivamente.

Figura 21: Atualizao de Paciente no SGBD Oracle na Matriz.

Figura 22: Atualizao de Paciente no SGBD Postgresql na Filial Braslia.

49

Figura 23: Atualizao de Paciente no SGBD Postgresql na Filial So Paulo.

As figuras 24, 25 e 26, apresentam as operaes de delete realizadas nos servidores da matriz, filial Braslia e filial So Paulo respectivamente.

Figura 24: Excluso de Paciente no SGBD Oracle na Matriz.

50

Figura 25: Excluso de Paciente no SGBD Postgresql na Filial Braslia.

Figura 26: Excluso de Paciente no SGBD Postgresql na Filial So Paulo.

4.5

Topologia dos Ativos

A figura 27 apresenta a topologia dos ativos das unidades de sade aps a instalao e configurao do replicador.

51

Figura 27: Topologia dos ativos de rede

4.6

Desempenho do Replicador

Para verificao do comportamento do replicador foram simulados os seguintes testes: 1. Simulao de 100 usurios efetuando 30 operaes de insert, update e delete em cada servidor. 2. Verificao da velocidade do trfego de dados na rede. Aps a realizao dos testes foram alcanados os seguintes resultados: 1. Simulao com os 100 usurios foi obtida uma movimentao de 9000 registros nos trs servidores com durao de 12 minutos de replicao. 2. A velocidade de transmisso de dados ficou entre 129 e 931 kbits/segundo.

4.7

Funcionamento e Manuteno do Replicador Aps instalao e configurao do replicador o servio permanece ligado constantemente e s em caso de manuteno no servio do replicador este ser desligado. Enquanto estiver sendo realizada a manuteno no replicador os

52 dados manipulados no banco de dados so armazenados em tabelas temporrias para que no haja perda de dados e logo aps a finalizao da manuteno o servio restabelecido e os dados destas tabelas temporrias so replicados para os bancos de dados cadastrados. Entretanto, caso ocorra perda dos dados no momento de manuteno da replicao, pode ser utilizado aplicativos internos do replicador para execuo de sincronizao de tabelas para que os dados permaneam idnticos. O servio do replicador pode ser inicializado junto com os servios do sistema operacional ou atravs de comando de execuo do arquivo run.sh no diretrio objectmmrs. O servidor de replicao passvel de algumas falhas que possam ser causados por eventos internos (falhas de hardware) ou externos (falta de energia, enchente dentre outros), neste caso no haver impacto na replicao, pois os dados so armazenados em tabelas temporrias e aps o restabelecimento do servio a replicao realizada normalmente. A replicao ao ser iniciada no realiza nenhuma verificao nas tabelas para saber se esto nulas ou se existe diferena de quantidade de registros de uma tabela para outra, caso ocorra alguma operao de delete ou update em registros que s existe em determinada tabela o replicador registrar o erro no arquivo de log e continuar realizando a replicao at que algum administrador intervenha e solucione o problema. O replicador antes de enviar algum registro para os bancos de dados verifica se est operacional, caso no esteja, os registros que sero enviados para este banco ser armazenado em tabelas temporrias at que volte a ser operacional, aps o restabelecimento do servio o replicador envia os dados que ficaram na

53 fila. Segundo a documentao do replicador Objectmmrs no existe rotina de manuteno a ser seguida, apenas recomendado que seja verificado nos arquivos de logs eventuais erros na replicao entre os servidores.

ANLISES DO ESTUDO DE CASO

Aps a criao e configurao do mecanismo de replicao de banco de dados foram identificadas as tabelas principais que teriam os dados replicados entre as unidades hospitalares. O primeiro procedimento foi realizar um planejamento de forma a atender as necessidades dos hospitais e o cenrio tecnolgico disponibilizado pela DTI/HGB. Deste modo foram definidas quais medidas seriam adotadas e implantadas. A primeira medida adotada foi criao de redundncia de links para replicao via intranet ou internet, por padro a replicao seria via intranet, caso perdesse a comunicao por este modo, automaticamente o replicador altera o modo de replicao para internet e aps o restabelecimento do servio via intranet, voltaria para o modo de replicao padro. A segunda medida adotada foi a criao de identificadores seqenciais para cada tabela envolvida na replicao com incremento inicial 3, evitando erro de duplicao de chave primria, comumente ocorrida em replicadores multi-master. A terceira medida adotada foi criao de servidores NTP (Network Time Protocol), para garantir que hora dos servidores de replicao estejam sincronizados de acordo com a hora atual do observatrio nacional, com esta sincronizao pode ser evitado conflitos de update, insert e delete, comumente

54 ocorrido em replicadores multi-master. A quarta medida adotada foi elaborar uma matriz de comparao com alguns tipos de dados utilizados no SGBDs Oracle e PostgreSQL (tabela 2).
ORACLE POSTGRESL DATE TIMESTAMP LONG TEXT CLOB TEXT NCLOB TEXT BLOB BYTEA BFILE TEXT BINARY_FLOAT DOUBLE PRECISION BINARY_FLOAT DOUBLE PRECISION NO EQUIVALENTE SERIAL NO EQUIVALENTE BOOLEAN Tabela 2 comparao de tipos de dados.

Aps a verificao dos tipos de dados utilizados nos dois bancos foi percebido que a tabela pessoa possui uma coluna indica_obito no SGBD Postgresql definida como Boolean e no Oracle definida como number, portanto, para que estas diferenas no causassem impacto na replicao, foi configurado no replicador utilizando a tabela de dicionrio de dados or_tb_converter as tabelas e colunas com estas diferenas, a partir da uma classe interna do software de replicao far a converso dos tipos de dados (figura 28). Ao final da replicao os dados foram replicados sem erros permanecendo ntegros e confiveis.

Figura 28: Tabela de converso de tipo de dados

55 6 CONCLUSO

Conforme este estudo sobre implantao de replicao entre bases de dados heterogneas nas unidades hospitalares do Hospital Geral do Brasil foi identificado necessidade desta organizao de implantar replicao de banco de dados. Nas unidades hospitalares, o SGBD Oracle utilizado na matriz e o SGBD Postgresql nas duas filiais, portanto, para que fosse implantada a replicao, foi verificado que a replicao nativa destes SGBDS no atenderia a necessidade do hospital atravs da utilizao da matriz de comparao com os dois SGBDS, pois, alm do fato destes no haver interoperabilidade entre si, no atenderia de forma completa, sendo assim, a replicao foi implantada utilizando um replicador proprietrio da Object Sistemas, denominado de Objectmmrs. A replicao utilizando este software atendeu as necessidades da organizao sendo possvel melhorar o fluxo de atendimento, garantindo alta disponibilidade em termos de tolerncia a falhas de rede, pois, alm de poder utilizar todos os recursos do software de replicao, de forma simples e prtica foi solicitado ao desenvolvedor deste, que adicionasse link redundante de conexo, fazendo com que o hospital aumentasse o tempo de disponibilidade do sistema utilizado naquele hospital.

56 7 RECOMENDAES PARA TRABALHOS FUTUROS

Aps a implantao e execuo da replicao de banco de dados permanecem algumas recomendaes a serem executadas futuramente como descritas abaixo: 1. Aquisio do software de replicao com interface web para instalao e monitoramento dos dados replicados. 2. Implantao de ferramentas de monitoramento dos SGBDS Oracle e Postgresql.

57 8 REFERNCIAS

ANDRADE, Maria Margarida de. Introduo metodologia do trabalho cientfico. 7. ed. So Paulo: Editora Atlas S. A, 2006. CERVO, Amado Luiz; BERVIAN, Pedro Alcino. Metodologia Cientfica. 5. ed. So Paulo: Pearson Prentice Hall, 2002. COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Sistemas Distribuidos: Conceitos e Projetos. 4. ed. Porto Alegre: Brookman, 2007. COUTINHO, Willian Pires. Dados Distribudos com replicao em Oracle. 2002. Disponvel em: < https://www.computacao.unitri.edu.br > Acesso em: 19 maro 2011. DATE, C. J. Introduo a Sistemas de Banco de Dados. 8. ed. Rio de Janeiro: Elsevier, 2004. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de Bancos de Dados. 4. ed. So Paulo: Person Addison Wesley, 2005. GARCIA-MOLINA, Hector; ULLMAN, Jefrey D.; WIDOM, Jennifer. Implementao de Sistemas de Bancos de Dados Rio de Janeiro: Campus, 2001. GIL, Antonio Carlos. Como Elaborar Projetos de Pesquisa. 5. ed. So Paulo: Editora Atlas S. A, 2010. OLIVEIRA, Alexandre Pereira de. Modelo de Replicao de Dados entre SGBD Heterogneos. Monografia (Graduao em Cincias da Computao). 2006. Gravata. Universidade Luterana do Brasil. ORACLE. Streams Concepts and Administration 10g Release 2. Disponvel em: < http://www.oracle.com > Acesso em: 30 de agosto de 2011. POSTGRESQL. PostgreSQL 8.4.5 Documentation. Disponvel em: http://www.postgresql.org/docs/manuals/> Acesso em: 19 de maro de 2011. <

RAMALHO, Jos Antonio. Oracle 10g. So Paulo: Pioneira Thompson Learning, 2005. SILBERSCHARTZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de Banco de Dados. 3. ed. So Paulo: Pearson Makron Books, 2005.

58 SILVA, Jos Maria da; SILVEIRA, Emerson Sena da. Apresentao de Trabalhos Acadmicos: Normas e Tcnicas. 3. ed. Rio de Janeiro: Editora Vozes, 2008. SILVA, Robson Soares. Oracle Database Express Edition 10g: Guia de Instalao, Configurao e Administrao. 1. ed. So Paulo: rica, 2007. SLONY-I. Slony-I 2.1.0 Documentation . Disponvel em: < http://slony.info/documentation/2.1/requirements.html> Acesso em: 30 de agosto de 2011. OZSU, M. Tamer; VALDURIEZ, Patrick. Princpios de Sistemas de Bancos de Dados Distribudos. 2. ed. Rio de Janeiro: Campus, 2001. WATSON, John. OCA Oracle Database 11g Administrao I: Guia do Exame 1Z0-052. Porto Alegre: Brookman, 2010.

59 ANEXO A TRIGGER CRIADA PELO SOFTWARE OBJECTMMRS Exemplo de Trigger criada pelo software objectmmrs para ser executada no Oracle:

Exemplo de Trigger criada pelo software objectmmrs para ser executada no Postgresql:

60

61 GLOSSRIO

BACKUP: a cpia dos dados de um dispositivo de armazenamento a outra para que possa ser recuperado em caso de perda dos dados originais. BINARY FLOAT: tipo de dado numrico utilizado exclusivamente para ponto flutuante pode armazenar at 4 Bytes. BFILE: tipo de dado utilizado para armazenar dados binrios no estruturados em arquivos do sistema fora do banco de dados. BLOB: Binary Large Object, um tipo de dado que armazena at 4 GB de fotos, vdeo, udio, grficos, mapas e etc. BYTEA: um tipo de dado binrio com tamanho mximo de armazenamento de at 1 GB. BOOLEAN: tipo de dado que armazena somente um dos dois estados: Verdadeiro ou Falso. CHAVE PRIMRIA: restrio que exige que cada linha ou grupo de linhas seja identificado por um valor nico. CHAVE NICA: restrio que exige que cada valor ou grupo de valores seja nico em todos os registros da tabela. CLOB: Character Large Object, armazena dados do tipo caractere de at 4 GB. CPU: Central Processing Unit, ou do portugus, Unidade Central de

Processamento, um dispositivo multifuncional programvel que aceita dados digitais como entrada. Processa de acordo com as instrues armazenadas em sua memria, e fornece resultados como sada. CREATE: comando utilizado para criar objetos em bancos de dados como: tabelas, usurios e etc.

62 DATE: tipo de dado utilizado para armazenar data e hora, pode armazenar data ou hora ou ambos, para cada valor DATE a Oracle armazena as informaes de sculo, ano, ms, data, hora, minuto e segundo. DDL: Data Definition Language, do portugus, Linguagem de Definio de Dados, utilizada para definir, alterar e remover objetos de banco de dados. DELETE: comando SQL utilizado para deletar registros em tabelas de banco de dados. DML: Data Manipulation Language, do portugus, Linguagem de Definio de Dados, utilizada para incluso, remoo e modificao de informaes em bancos de dados. DOUBLE PRECISION: um tipo de dado numrico de ponto flutuante de preciso de 15 dgitos decimais GATILHOS(TRIGGERS): linguagem procedural executadas automaticamente quando ocorre algum evento vinculado a uma tabela ou viso. GRANT: comando utilizado para autorizar algum usurio a executar operaes em bancos de dados. HARDWARE: Componentes fsicos e eletrnicos do computador. IDENTIFICADORES SEQUENCIAIS: utilizado dentro do banco de dados para criar campos de autonumerao. INSERT: comando SQL utilizado para inserir registros em tabelas de banco de dados. LOG DE DADOS: arquivos de registros utilizados para armazenar eventos importantes em sistemas computacionais. LONG: um tipo de dado que armazena dados de at 2 GB de tamanho, com restrio de que somente uma coluna por tabela pode ser definido com esse tipo.

63 NCLOB: um tipo de dado utilizado para armazenar dados do tipo Unicode at 4 GB. NTP: Network Time Protocol, um protocolo para sincronizao dos relgios dos computadores. RAM: Random Access Memory, do portugus, Memria de Acesso Aleatrio, uma forma de armazenamento de dados do computador. SERIAL: um tipo de dado numrico com propriedade de auto incremento. SISTEMA OPERACIONAL: um conjunto de programas que inicializa o hardware do computador, fornece rotinas para controle de dispositivos, gerencia, escalona e mantm a integridade de sistema. SSL: Secure Socket Layer o protocolo usado para criar pginas seguras, encriptando toda a transmisso entre o cliente e o servidor. SOFTWARE: uma seqncia de instrues a serem seguidas ou executadas, na manipulao, redirecionamento ou modificao de um dado ou acontecimento. TEXT: um tipo de dados de caracteres com tamanho mximo de armazenamento de at 1 GB. TIMESTAMP: tipo de dado que armazena dados do tipo data e hora. UPDATE: comando SQL utilizado para atualizar registros em tabelas de banco de dados.

Vous aimerez peut-être aussi