UNIVERSIDADE ANHEMBI MORUMBI PAMELA CRISTINA MACHADO DE OLIVEIRA RENAN MILHOMEM PARISOTTO RODRIGO DA SILVA SIMÕES ALTA DISPONIBILIDADE EM SISTEMAS DE BANCO DE DADOS ORACLE São Paulo 2009 PAMELA CRISTINA MACHADO DE OLIVEIRA RENAN MILHOMEM PARISOTTO RODRIGO DA SILVA SIMÕES ALTA DISPONIBILIDADE EM SISTEMAS DE BANCO DE DADOS ORACLE Trabalho de Conclusão de Curso apresentado como exigência parcial para a obtenção do título de Graduação do Curso de Ciência da Computação, Habilitação em Desenvolvimento de Software da Universidade Anhembi Morumbi. Orientador: Prof. Dr. Augusto Mendes Gomes Junior. São Paulo 2009 PAMELA CRISTINA MACHADO DE OLIVEIRA RENAN MILHOMEM PARISOTTO RODRIGO DA SILVA SIMÕES ALTA DISPONIBILIDADE EM SISTEMAS DE BANCO DE DADOS ORACLE Trabalho de Conclusão de Curso apresentado como exigência parcial para a obtenção do título de Graduação do Curso de Ciência da Computação, Habilitação em Desenvolvimento de Software da Universidade Anhembi Morumbi. Orientador: Prof. Dr. Augusto Mendes Gomes Junior. Aprovado em Prof.: __________________________________ Universidade Anhembi Morumbi Prof.: __________________________________ Universidade Anhembi Morumbi Prof.: __________________________________ Universidade Anhembi Morumbi Dedicamos esse trabalho àqueles que nos ajudaram a crescer e desenvolver nossas vidas como profissionais, sempre trabalhando com simplicidade, honestidade e compreensão. AGRADECIMENTOS Agradecemos primeiramente a Deus, independente de credo e religião. Agradecemos ao professor Augusto Mendes Gomes Junior, pela excelente orientação que nos deu e também por sempre se mostrar disposto a nos auxiliar. Agradecemos ao Rodrigo Salviatto Oracle Database Specialist, pela orientação e dedicação em nos auxiliar a desenvolver este trabalho. Aos nossos familiares, pelos incentivos e motivações nos momentos de maior cansaço e dificuldade. Agradecemos também aos professores que com seus ensinamentos e lições fornecidas ao decorrer do curso, nos auxiliaram no desenvolvimento deste projeto. RESUMO A utilização de uma arquitetura de alta disponibilidade em ambiente de Banco de dados apresenta diversas vantagens comparadas com uma arquitetura única, como por exemplo: redundância, disponibilidade, contingência, continuidade do negócio, entre outros. Em caso de falhas de hardware em um ambiente distribuído, os sistemas usuários do banco de dados permanecerão ativos, sem qualquer indisponibilidade. As desvantagens de implementar um ambiente distribuído de Banco de dados estão relacionadas ao custo do projeto e licenças dos softwares, pois elas são adquiridas conforme a quantidades de usuários que irão utilizá-lo ou através da quantidade do número de processadores dos equipamentos utilizados. Existem diversos métodos de alta disponibilidade, onde ressaltos a replicação de dados transacionais. O objetivo deste ambiente é replicar dados transacionais e em casos de falhas em alguma das bases é feito um switch de servidores, garantindo que os dados sejam sempre replicados e estejam sempre disponíveis. O trabalho tem como objetivo pesquisar a melhor opção a ser implementada em um ambiente distribuído com Banco de dados Oracle. Palavras-Chave: Alta disponibilidade em Banco de dados Oracle. ABSTRACT The use of architecture for high availability environment Database has several advantages compared to single architecture, such as: redundancy, availability, contingency, business continuity, among others. In case of hardware failures in a distributed environment, the systems users of the database will remain active without any downtime. The disadvantages of implementing a distributed environment Database are related to the project cost and software licenses as they are acquired as the numbers of users who will use it by the amount or the number of processors used equipment. There are several methods of high availability which bumps the replication of transactional data. The objective of this environment is to replicate transactional data and in cases of failures in any of the bases is done by switch servers, ensuring that data is always replicated and always available. The study aims to research the best option to be implemented in a distributed environment with Oracle Database. Keywords: High Availability in Database Oracle. LISTA DE SIGLAS ARCN Archiver ASM Automatic Storage Manager CBLC Central Depositária. Compensação e Liquidação CHKPT Checkpoint CPU Unidade Central de Processamento CRS Cluster Read Services DBA Administration Data Base DBF Datafile DBWR Database Whiter E/S Entrada e Saída LGRW Log Whiter MSCS Microsoft Cluster Server OCFS Oracle Cluster File System OEM Oracle Entreprise Manager OFA Optimal Flexibile Architecture PGA Program Global Area PMON Process Monitor RAC Real Application Cluster RAID Redundant Array of Independent Drivers RDBMS Relational Database Management System RECO Recovery RMAN Recovery Manager SGA System Global Area SGBD Sistema Gerenciador de Banco de Dados SMON System Monitor SQL Structured Query Language TI Tecnologia da Informação LISTA DE FIGURAS Figura 1 - Processos Oracle. Fonte: Oracle (2005) ................................................................ 21 Figura 2 – Instância. Fonte: Oracle (2005)............................................................................. 24 Figura 3 – Arquitetura Fail Safe. Fonte: Oracle (2005) ......................................................... 26 Figura 4 - Active Data Guard. Fonte: Oracle (2008).............................................................. 28 Figura 5 - Oracle Fail Safe antes da falha. Fonte: Oracle (2003)...........................................30 Figura 6 - Oracle Fail Safe depois da falha. Fonte: Oracle (2003)......................................... 30 Figura 7 - Oracle RAC Configuração de IP. Fonte: Oracle (2008)........................................ 34 Figura 8 - Vendas Online. ...................................................................................................... 45 Figura 9 - Oracle FailSafe x Oracle RAC após queda de um nó ( em segundos ) ................. 47 Figura 10 - Conexões que permaneceram ativas após falha de um nó. (em percentual)..........48 Figura 11 – Custo. .................................................................................................................... 48 Figura 12 - Oracle Real Application Clusters on Extended Distance Clusters 10gR2 (Oracle 2005)......................................................................................................................................... 51 SUMÁRIO 1 INTRODUÇÃO ............................................................................................................. 12 1.1 OBJETIVO ...................................................................................................................... 12 1.2 JUSTIFICATIVA ............................................................................................................ 13 1.3 ABRANGÊNCIA ............................................................................................................ 13 1.4 ESTRUTURAS DO TRABALHO..................................................................................13 2 DISPONIBILIDADES EM BANCO DE DADOS ...................................................... 15 2.1 DEFINIÇÃO.................................................................................................................... 15 2.2 VANTAGENS................................................................................................................. 16 2.3 DESVANTAGENS ......................................................................................................... 17 2.4 GARANTIA DE DISPONIBILIDADE ..........................................................................17 3 ALTA DISPONIBILIDADE NO ORACLE ...............................................................19 3.1 CARACTERÍSTICAS DO ORACLE .............................................................................19 3.1.1 Instância ......................................................................................................................... 19 3.1.2 System Global Area ....................................................................................................... 20 3.2 ARQUITETURA DE PROCESSOS DO ORACLE ....................................................... 21 3.3 ORGANIZAÇÃO DOS DADOS NO ORACLE ............................................................23 3.3.1 Índices ............................................................................................................................. 24 3.3.2 Tablespaces e Datafiles.................................................................................................. 24 3.4 FERRAMENTAS EXISTENTES ...................................................................................25 3.4.1 Oracle Fail Safe.............................................................................................................. 26 3.4.2 Oracle Streams............................................................................................................... 26 3.4.3 Oracle Real Application Cluster ( RAC ).................................................................... 27 3.4.4 Oracle Active Data Guard ............................................................................................ 27 4 ORACLE FAILSAFE ...................................................................................................29 4.1 RECURSOS E APLICAÇÕES ALTAMENTE DISPONÍVEIS .................................... 29 4.2 FACILIDADES DE UTILIZAÇÃO ...............................................................................30 4.3 APLICAÇÕES DE SISTEMAS TOLERANTES A FALHAS....................................... 31 5 ORACLE RAC REAL APPLICATION CLUSTER ................................................. 32 5.1 CONFIGURAÇÕES........................................................................................................ 32 5.1.1 Configuração de Hardware .......................................................................................... 32 5.1.2 Configuração de Software ............................................................................................ 33 5.1.3 Configuração de Rede ................................................................................................... 33 5.2 REQUISITOS DE MEMÓRIA E DISCO.......................................................................34 5.3 CLUSTER READY SERVICES..................................................................................... 35 5.4 CARACTERÍSTICAS DO BANCO DE DADOS ORACLE RAC................................ 35 5.5 CARACTERÍSTICAS DO ARQUIVO DE PARÂMETRO DE SERVIDOR ............... 35 6 ESTRATÉGIA DE BACKUP ...................................................................................... 37 6.1 CONFIGURANDO DEFINIÇÕES DE BACKUP ......................................................... 37 6.2 BACKUP LÓGICO......................................................................................................... 38 6.3 BACKUPS FÍSICOS....................................................................................................... 39 6.3.1 Backups Off-line ............................................................................................................ 39 6.3.2 Backups On-line............................................................................................................. 40 6.4 ESTRATÉGIA DE BACKUP SUGERIDA PELA ORACLE........................................40 6.4.1 Componentes do RMAN ............................................................................................... 41 6.4.2 RMAN versus método de backup tradicional............................................................. 42 6.4.3 Tipos de backups ........................................................................................................... 42 7 ANALISE COMPARATIVA ENTRE ORACLE RAC E ORACLE FAILSAFE ..44 7.2 ANALISE DOS RESULTADOS .................................................................................... 47 7.3 CONSIDERAÇÕES IMPORTANTES ...........................................................................48 8 CONCLUSÃO................................................................................................................ 50 8.1 TRABALHOS FUTUROS ..............................................................................................50 REFERÊNCIA BIBLIOGRÁFICA...................................................................................... 52 12 1 INTRODUÇÃO Um banco de dados distribuído Oracle é composto de diversos bancos de dados armazenados em múltiplos computadores, porém sendo visto pelo usuário como um banco de dados único. Funcionalmente, os dados são alocados em uma storage, permitindo assim o acesso simultâneo ao dado por qualquer computador da rede. Para um relacionamento eficiente entre os diversos bancos de dados, desde o início da sua concepção até sua implementação, fez-se necessário distribuí-los de forma bem planejada. Eventualmente, com a expansão das empresas, as exigências aumentaram e um eficiente planejamento é muito importante. A tecnologia de banco de dados distribuídos Oracle permite a administração e manipulação de dados oferecendo um complexo conjunto de ferramentas e aplicativos. Um servidor Oracle controla cada um dos seus bancos de dados, mas mantém a coerência do Banco de dados global porque possui a capacidade de interligação entre os Bancos de dados distribuídos como se fosse um só. Logo, são permitidas pesquisas, inclusões, exclusões e transações distribuídas, retenção, replicação e particionamento em diferentes locais (HILL, 2008). Dados entre vários servidores podem ser compartilhados através de consultas e atualizações distribuídas com a garantia do mecanismo two-phase commit na consistência dos dados. Através da replicação de dados, os usuários podem criar cópias de leitura de tabelas com consistência transacional e garantia de integridade de dados. Dados remotos podem ser tratados como se fossem locais por meio de database links. Sendo que, havendo transferência de dados de um nó a outro não implica na recodificação dos aplicativos. A junção de base de dados com sistemas distribuídos é um conceito que já é funcional, porém ainda existe muito que pode ser feito com o intuito de tornar este conceito cada vez mais aplicável em diversas situações. “A chave para esta compreensão é a percepção de que o objeto mais importante da tecnologia de banco de dados é a integração, não a centralização” (ÖZSU, 2001, p. 2). 1.1 OBJETIVO O objetivo do trabalho é pesquisar as ferramentas Oracle RAC (Real Application Cluster) e Oracle FailSafe para um ambiente de sistemas distribuídos, definindo suas características e infra-estrutura. Além de analisar o desempenho destas ferramentas. Com esta 13 pesquisa, as pessoas que não sabem qual sistema utilizar possa ter algumas das informações necessárias para entender qual o melhor sistema para cada situação, sabendo sobre erros e falhas que venha a ocorrer em cada um e como evitá-los. 1.2 JUSTIFICATIVA A disponibilidade de dados é um fator fundamental para empresas e aplicações que sejam tolerantes a falha. A ausência de elementos centralizadores em um sistema distribuído aumenta a disponibilidade dos dados, bem como a confiabilidade do sistema como um todo. Entretanto a garantia de disponibilidade envolve mecanismos de controle a consistência de dados, de modo que os servidores estejam idênticos durante todo o tempo de funcionamento do sistema. Com isso, além da disponibilidade dos dados que garante um sistema altamente disponível, outro fator bastante atraente é a possibilidade de balanceamento de carga de trabalho que o Oracle possui, principalmente em operações de consultas a dados. Estando em elementos distintos, todas as instalações Oracle podem ser acessadas simultaneamente por diferentes clientes, evitando a sobrecarga de um único elemento (ORACLE, 2008). 1.3 ABRANGÊNCIA O trabalho consiste em explorar a arquitetura do uso de um sistema distribuído para banco de dados Oracle capaz de gerenciar transações executadas no sistema gerenciador de banco de dados (SGBD), inclusive, tratar situações de falhas em hardware e software, simulando situações de rollback, recovery e estratégia de backup. Os resultados analisados foram obtidos por testes realizados em laboratórios especializados com servidores e aplicações específicas para cada ambiente. Não faz parte do escopo do trabalho o desenvolvimento de algum tipo de aplicativo, apenas utilizou-se aplicativos já existentes no mercado, para análise do desempenho das ferramentas RAC e Fail Safe. 1.4 ESTRUTURAS DO TRABALHO 14 A estrutura do trabalho está dividida da seguinte forma: O capítulo 2 aborda o tema Disponibilidade em Banco de dados; o capítulo 3 apresenta Alta Disponibilidade no Oracle; o capítulo 4 apresenta Oracle Fail Safe; o capítulo 5 apresenta o Oracle RAC (Real Aplication Cluster); o capítulo 6 apresenta estratégia de Backup e Recovery; o capítulo 7 apresenta a Comparação entre o Oracle RAC e Oracle Fail Safe; o capítulo 8 apresenta Conclusão e trabalhos futuros. 15 2 DISPONIBILIDADES EM BANCO DE DADOS Para que se entenda a disponibilidade é necessário, antes de qualquer coisa, perceber que a disponibilidade não é apenas um produto ou uma aplicação que se instale, e sim uma característica de um sistema computacional. Existem mecanismos e técnicas, blocos básicos, que podem ser utilizados para aumentar a disponibilidade de um Sistema de Banco de dados distribuídos. A simples utilização destes blocos, entretanto, não garante este aumento se não for acompanhado de um completo estudo e projeto de configuração (ÖZSU, 2001, p. 2). 2.1 DEFINIÇÃO A Disponibilidade de um sistema computacional é a probabilidade de que este sistema esteja funcionando e pronto para uso em um dado instante de tempo. Esta disponibilidade pode ser enquadrada em três classes: A disponibilidade Básica: é aquela encontrada em máquinas comuns, sem nenhum mecanismo especial, em software ou hardware, que vise de alguma forma mascarar as eventuais falhas destas máquinas. Costuma-se dizer que máquinas nesta classe apresentam uma disponibilidade de 99% a 99,9%. Isto equivale a dizer que em um ano de operação a máquina pode ficar indisponível por um período de 9 horas a quatro dias. Estes dados são empíricos e os tempos não levam em consideração a possibilidade de paradas planejadas (que serão abordadas mais adiante), porém são aceitas como o senso comum na literatura da área (FREEMAN, 2008). Alta disponibilidade: mecanismos especializados de detecção, recuperação e mascaramento de falhas, podem-se aumentar a disponibilidade do sistema, de forma que este venha a se enquadrar na classe de alta disponibilidade. Nesta classe as máquinas tipicamente apresentam disponibilidade na faixa de 99,99% a 99,999%, podendo ficar indisponíveis por um período de pouco mais de 5 minutos até uma hora em um ano de operação. Aqui se encaixam grande parte das aplicações comerciais de alta disponibilidade, como centrais telefônicas (WATSON; BERSINIC, 1 / 2006). Máxima disponibilidade: garante o sistema integro e disponível a todo o momento. Dentre os novos recursos encontram-se o Flashback Transaction, que possibilita a reversão de uma transação efetuada com erro, bem como de qualquer transação dependente Parallel Backup and Restore, que ajuda a melhorar o desempenho do backup e restauro de grandes base de dados e ‘hot patching’, que melhora a disponibilidade do sistema ao permitir que as 16 correções sejam aplicadas sem necessidade de interromper a aplicacão. Além disso, existem outros recursos que ajudam os administradores a reduzir significativamente a parada para recuperação, o que permite automatizar investigação de falhas, determinar planos de recuperação e lidar com várias situações de crise (ORACLE, 2006). 2.2 VANTAGENS A gerência de banco de dados distribuídos foi proposta por vários motivos, abrangendo desde a descentralização organizacional e o processamento econômico até uma maior autonomia. Gerência de banco de dados distribuídos de certo modo esconde os detalhes de onde cada arquivo, tabela ou relação, está fisicamente armazenado dentro do sistema. Há dois tipos de transparência possíveis: Transparência de distribuição ou de rede: Refere-se a liberar o usuário dos detalhes sobre a rede. Pode ser dividida em transparência de localização e transparência de nomeação. A transparência de localização se refere ao fato de que o comando utilizado para realizar uma tarefa é independente do servidor conectado e da localização do sistema no qual o comando foi executado. A transparência de nomeação implica que, uma vez que se especifica um nome pode-se acessar objetos nomeados de maneira não ambígua sem especificações adicionais (FREEMAN, 2008). Transparência de replicação: Refere-se ao armazenamento em diferentes sites para melhor disponibilidade, desempenho e confiabilidade. A transparência de replicação faz com que o cliente não se torne ciente da existência de servidores replicados(ÖZSU, 2001, p. 2). A confiabilidade e disponibilidade crescente são duas entre as vantagens potenciais mais comuns citadas para banco de dados distribuídos. A disponibilidade é geralmente definida como probabilidade de que um sistema esteja funcionando (não esteja parado) em certo momento. Quando os dados e o software do SGBD estão distribuídos em diversos sites, um site pode falhar enquanto outros continuam a operar. Somente o software que existe no site que falhou não pode ser acessado. Isso melhora tanto a confiabilidade quanto a disponibilidade. Um SGBD distribuído fragmenta o banco de dados mantendo os dados mais próximo possíveis do local onde são mais necessitados. A localização de dados reduz a disputa de 17 serviços da CPU e de E/S (Entrada/Saída), e ao mesmo tempo reduz a demora no acesso de sistemas distantes. (NEWLAN, 2008). 2.3 DESVANTAGENS A principal desvantagem do sistema de banco de dados distribuído é a complexidade adicional necessária para assegurar a própria coordenação entre os nós. Esta complexidade aumentada o custo de desenvolvimento de software, contudo é mais difícil implementar um sistema de banco de dados distribuído, portanto, mais caro. A seguir as desvantagens mais encontradas no mercado coorporativo: Maior potencial de defeitos: Uma vez que o nó que forma o sistema distribuído opera em paralelo, é difícil assegurar que os algoritmos estão corretos. Existe potencial para defeitos extremamente sutis, precisando ter maior atenção em sua implementação (HILL, 2008). Aumento de sobrecarga de processamento: A troca de mensagens e a computação adicional necessárias para realizar a coordenação inter-nó é uma forma de sobrecarga que não surgem em sistemas centralizados. Escolhendo o projeto para um sistema de banco de dados, o projetista precisa analisar as vantagens e as desvantagens de distribuição de dados (ÖZSU, 2001, p. 2). 2.4 GARANTIA DE DISPONIBILIDADE O que garante a alta disponibilidade de informações e sistemas são o suporte técnico, os planos de contingência e redundância de equipamentos, detalhados a seguir: Suporte Técnico: O suporte tecnico monitora todo o hardware do cluster, incluindo CPU’s, espaçco em disco, E/S em disco e memoria utilizada. Monitora também energia, fatores ambientais, como temperatura e umidade, estado do gerador e conectividade de rede. A comunicação íntima e constante com os provedores de conexão, garantem a todos os clientes uma performance máxima de acesso e garantia de 99,9% de uptime. Qualquer falha irá disparar um alarme, acionando o especialista para resolver o problema (ÖZSU, 2001, p. 2). Planos de contingência: Trata-se do conjunto de procedimentos e medidas de segurança, previamente planejadas, a serem adotados após a ocorrência de uma falha, que permitem o restabelecimento da rede de comunicação em caso de situações anormais (falha de hardware, base de dados corrompida, perda de link de comunicação, destruição de prédios, entre outras), com o objetivo de minimizar os impactos da mesma. 18 Redundância: O termo redundância descreve a capacidade de um sistema em superar a falha de um de seus componentes através do uso de recursos redundantes, ou seja, um sistema redundante possui um segundo dispositivo que está imediatamente disponível para uso quando falhar o dispositivo primário do sistema. Fonte de energia, placa de rede, disco com RAID (Redundant Array of Independent Drives), processadores e memória esses são os hardwares que com duplicidade em um servidor garante a disponibilidade caso outro venha falhar. Porém, apenas fontes de energia com duplicidade não garante o servidor ser alimentado por energia a todo o momento, se faz necessário um ambiente complexo com geradores e No-Break (ÖZSU, 2001, p. 2). 19 3 ALTA DISPONIBILIDADE NO ORACLE Uma solução de alta disponibilidade mascara os efeitos da falha de um hardware ou software e mantém a disponibilidade dos aplicativos, de modo a minimizar o tempo de inatividade percebido pelos usuários. A Oracle disponibiliza diversas ferramentas que proporcionam a alta disponibilidade em diversos cenários. Caso ocorra uma falha no banco de dados em um ambiente configurado com alta disponibilidade, o Oracle consegue manter as aplicações em execução durante o failover sendo totalmente transparente para os usuários (WATSON; BERSINIC, 1 / 2006). 3.1 CARACTERÍSTICAS DO ORACLE Independente da versão do sistema operacional, existem três níveis diferentes de software Oracle disponíveis para instalação com base no produto comprado. Os tipos disponíveis são: Oracle Enterprise Edition: Instalação completa que inclui um banco de dados préconfigurado, serviços de rede, Oracle options que pode ser licenciado, ferramentas do ambiente e banco de dados, estrutura do Oracle Enterprise Manager (ferramentas de gerenciamento) e os produtos mais utilizados para armazenamento de dados e processamento de transações. Esta instalação permite o uso de recursos de Paralell Server e Stand-by Database (HILL, 2008). Oracle Standard Edition: Instalação parcial que inclui um banco de dados preconfigurado, serviços de rede, Oracle Enterprise Manager e os utilitários Oracle; Oracle Personal Edition: Instalação de um banco de dados pré-configurado com suporte a um ambiente de desenvolvimento e distribuição de um único usuário. Esta versão é recomendada para microcomputadores pessoais com o intuito de auxiliar no aprendizado da linguagem de programação SQL (FREEMAN, 2008). 3.1.1 Instância Toda vez que um banco de dados é iniciado, uma System Global Area (SGA) é alocada e os processos de segundo plano do Oracle são iniciados. A System Global Area é uma área de memória usada para as informações do banco de dados que são compartilhadas pelos usuários. A combinação entre processos de segundo plano e os buffers de memória se 20 chama Instância do Oracle. Uma instância executa processos de usuário e processos do Oracle. Os processos do usuário são aplicativos que são executados a partir de uma estação de trabalho, sejam eles um programa executável que conecta na base, como uma ferramenta Oracle como, por exemplo, o SQL/PLUS (WATSON; BERSINIC, 1 / 2006). 3.1.2 System Global Area A System Global Area (SGA) é uma região de memória compartilhada que contém as informações de dados e controle para uma instância do Oracle. O Oracle aloca a SGA quando uma instância Oracle é iniciada e desaloca quando a instância é desalocada. Cada instância tem sua própria System Global Area. Os usuários que estão conectados a um servidor Oracle compartilham os dados na mesma System Global Area. Para se obter o desempenho ideal, toda SGA deve ser o maior possível, ou seja, deve caber com tranquilidade na memória real do servidor. A seguir estratégias para minimizar a E/S de disco: Cache de Buffer de Banco de Dados: Os buffers de banco de dados da SGA armazenam os blocos de dados usados mais recentemente. Um conjunto dos buffers de banco de dados de uma instância é o cache do buffer de banco de dados. Este possui blocos de dados alterados e inalterados. Os dados mais recentes geralmente são dados usados mais frequentemente, portanto estes minimizam também a E/S de disco melhorando o desempenho do Oracle (GOPALAKRISHNAN, 2008). Buffer de registro redo: Os buffers de registro redo armazenam as entradas de redo onde podemos considerar como o registro das alterações realizadas no banco de dados. As entradas de registro armazenadas nos buffers de registro redo são posteriormente gravadas em um arquivo de registro redo on-line o qual eventualmente é utilizado quando a recuperação do banco de dados for necessária. Pool Compartilhado: Pool compartilhado é uma parte da SGA que contém as construções da memória compartilhada tais como áreas da SQL compartilhadas. Uma única área de SQL compartilhada é utilizada por vários aplicativos que emitem a mesma declaração, isto faz com que se minimize E/S de disco. Large Pool: Large Pool é uma área opcional da SGA que fornece grandes alocações de memória para as operações de backup e recuperação do Oracle. Program Global Area (PGA): A Program Global Area é um buffer de memória que contém 21 as informações de dados e controle para um processo de servidor. Uma PGA é criada quando um processo de servidor é iniciado (GOPALAKRISHNAN, 2008). Na figura 1 é demonstrado uma instância Oracle e seus vários processos. Figura 1 - Processos Oracle. Fonte: Oracle (2005) 3.2 Arquitetura de Processos do Oracle O conhecimento da arquitetura interna do ORACLE é de extrema importância para a compreensão das técnicas de otimização do produto. Basicamente, os seus mecanismos de execução são as estruturas de memória e os processos executados em background. Todas as vezes que um banco é inicializado, uma SGA é alocada e os processos são inicializados. A combinação das estruturas de memória na SGA e dos processos em background é chamada de instância ORACLE. Algumas arquiteturas de hardware permitem múltiplos computadores compartilharem os mesmos dados, softwares ou periféricos. Com a opção Parallel Server do ORACLE, podemos tirar proveito dessa característica através da execução de múltiplas instâncias que compartilham um único banco de dados. Assim, os usuários de diversas máquinas podem acessar o mesmo banco de dados com uma melhoria na performance. A seguir processos da arquitetura Oracle: Processos de Usuário: Um processo de usuário é criado e atualizado para executar o código de software de um programa aplicativo ou uma ferramenta Oracle. O processo de usuário também gerencia a comunicação com os processos de servidor. Os processos de 22 usuário se comunicam com os processos de servidor por meio da interface de programa (HILL, 2008). Processos de Servidor: O Oracle cria processos de servidor para lidar com as solicitações dos processos dos usuários conectados. Um processo de servidor tem a responsabilidade de se comunicar com o processo de usuário e interagir com o Oracle para executar as solicitações. Por exemplo, se um usuário realiza uma consulta de dados que não estejam nos buffers de banco de dados da SGA, o processo de servidor lê os dados solicitados nos blocos de dados dos datafiles na SGA (WATSON; BERSINIC, 1 / 2006). Processos de segundo plano: Quando uma instância é iniciada o Oracle cria uma série de processos de segundo plano. Estes processos são a consolidação de diversas funções que serão tratadas por vários programas. Abaixo os processos de segundo plano: • Database Writer (DBWR): Responsável pela gravação dos blocos de dados do chache de buffer do banco de dados para os datafiles. • Log Writer (LGWR): Faz a gravação das entradas do registro redo que estão contidas nos buffers de registro redo para os arquivos redo do disco. • Checkpoint (CHKPT): O Checkpoint é responsável por sinalizar o DBWriter para que seja feita a gravação dos dados nos datafiles. Em intervalos especificados, todos os buffers de bancos de dados modificados na SGA são gravados nos datafiles pelo DBWriter. • System Monitor (SMON): O System Monitor executa a recuperação de pane quando uma instância falhada é reinicializada. Em um sistema de várias instâncias o SMON pode eventualmente executar a recuperação de uma instância quando esta falhar. • Process Monitor (PMON): O Process Monitor executa a recuperação de um processo de usuário quando este falha. O PMON também limpa o cache e libera os recuros que o processo estava usando. • Archiver (ARCN): O archiver copia os arquivos de registro redo online para o armazenamento de arquivamento quando eles estão cheios ou quando ocorre a troca de registros. Para que isto seja possível o banco de dados deve estar no modo ARCHIVELOG e o arquivamento automático deverá estar ativado. • Recoverer (RECO): O Recoverer é usado para determinar as transações distribuídas que estão pendentes devido a uma falha de rede ou sistema em um banco de dados distribuído. Em determinados momentos o reco tenta se conectar ao banco de dados para completar automaticamente um commit ou rollback de uma transação qualquer (WATSON; BERSINIC, 1 / 2006). 23 3.3 ORGANIZAÇÃO DOS DADOS NO ORACLE Cada banco de dados possui um dicionário de dados. Um dicionário de dados Oracle é um conjunto de tabelas e visões que são usadas como referência somente para leitura do banco de dados. Um dicionário de dados armazena as informações sobre a estrutura lógica e física do banco de dados, usuários válidos de um banco de dados, informações sobre restrições e integridade das tabelas do banco de dados, espaço alocado para determinado objeto ou esquema e quanto desse espaço está sendo utilizado etc. Um Dicionário de Dados é criado quando um banco de dados é criado. Para refletir com precisão o status do banco de dados o dicionários de dados é atualizado automaticamente pelo Oracle em resposta às ações específicas como, por exemplo, alterações na estrutura do banco de dados (TOLEDO JUNIOR, 2000). Visões: Uma Visão é uma apresentação personalizada dos dados de uma ou mais tabelas. Uma visão pode ser vista como uma consulta armazenada. As visões não contém nem armazenam dados, elas derivam os dados das tabelas nas quais elas se baseiam, chamadas tabelas base de visões. Do ponto de vista de administração de banco de dados temos as visões fixas. Estas visões são chamadas de visões desempenho dinâmico devido ao fato de serem atualizadas continuamente enquanto o banco de dados está aberto. Estas fornecem dados de estruturas internas de discos, estruturas de memória e configurações da base de dados instalada. Algumas das visões mais usadas na administração de um banco de dados Oracle são: V$SESSION, V$INSTANCE, V$DATABASE, V$CONTROLFILE, V$LOCK, V$NLS_PARAMETERS, V$OPTION, V$PARAMETER, V$PROCESS. Seqüências: Uma sequência gera uma lista serial de números exclusivos para as colunas numéricas das tabelas de um banco de dados. As sequências simplificam a programação de aplicativos, gerando automaticamente valores numéricos exclusivos para as linhas de uma única tabela ou várias tabelas. Por exemplo, assumindo que dois usuários estejam inserindo simultaneamente linhas novas de empregados em uma tabela chamada EMPREGADOS01. Usando uma sequência para gerar números exclusivos de empregados para a coluna EMPNUM. Nenhum usuário terá que esperar que outro dê entrada no próximo número de empregado disponível. A sequência gera automaticamente os valores corretos para cada 24 usuário. Os números de sequência são independentes das tabelas de modo que a mesma sequência pode ser usada por uma ou mais tabelas (LONEY; THERIAULT, 2005). Figura 2 – Instância. Fonte: Oracle (2005) 3.3.1 Índices Um Índice é uma estrutura de banco de dados usada pelo servidor para localizar rapidamente uma linha de uma tabela aperfeiçoando o desempenho de uma consulta em uma determinada tabela. Existem três tipos primários de índices: Índices de cluster: Referem-se ao aglutinamento de certo número de tabelas pertencentes a uma mesma aplicação em cluster, este procedimento minimiza E/S de disco e organiza as tabelas para fins de administração. Índices de tabela: Armazenam os valores das linhas de uma determinada tabela juntamente com a localização física na qual a linha está localizada. Índice Bitmap: É um tipo especial de índice de tabela criado para dar suporte às consultas de tabelas grandes que têm poucos valores distintos (HART; JESSE, 2005). 3.3.2 Tablespaces e Datafiles Quando um banco de dados é criado, ele se divide em diversas seções lógicas chamadas tablespaces. No momento da criação do tablespace o datafile é criado para armazenar os dados da tablespace. Esses arquivos alocam imediatamente o espaço especificado durante a sua criação. Assim sendo, existe um relacionamento um para muitos entre os tablespaces e os datafiles. Você pode incluir datafiles em um tablespace e os datafiles existentes podem ser extendidos. O tablespace SYSTEM é o primeiro tablespace criado. Os tablespaces adicionais são criados para conter diferentes tipos de dados. Por exemplo imaginem que vamos criar tablespaces para o projeto chamado Porto Seguro. Estes 25 tablespaces serão as unidades lógicas de armazenamento das tabelas que serão criadas pelos desenvolvedores do projeto (HART; JESSE, 2005). Nome da tablespace: tablespace1_data – Usando a técnica OFA, considere que esta seria a primeira tablespace de dados do projeto. Posteriormente viriam as tablespaces tablespace2_data, tablespace3_data etc. Por outro lado no futuro é possivel criar um índice referenciando esta tablespace onde este seria chamado tablespace1_index (HILL, 2008). Datafile: Caminho onde será criado o arquivo DBF. Size : Tamanho inicial da tablespace. Extent management local autoallocate: Toda tablespace requer um gerenciamento, este gerenciamento pode ser realizado pelo dicionário de dados ou pode ser local. O gerenciamento de um tablespace realizado pelo dicionário de dados significa que o Oracle está utilizando a tablespace SYSTEM para armazenar informações da tablespace tablespace2_data. Esses dados contemplam tamanho da tablespace, quais usuários estão permitidos acessar este tablespace, qual a quantidade de extents que esta tablespace possui, quantos extents estão sendo utilizados no momento e quantos extents estão livres. Quando falamos de uma o duas tablespaces gerenciadas pelo dicionário de dados a situação até que é tranquila, as quando pensamos em aproximadamente 40 Tablespaces, onde cada Tablespace possui aproximadamente 150 tabelas, o gerenciamento realizado pelo dicionário de dados faz com que se tenha perda de performance ocasionada pelo auto número de E/S no disco para atualizar a tablespace SYSTEM, esta ocorrência também fragmenta a tablespace. Portanto o melhor procedimento é fazer com que a tablespace seja gerenciada localmente onde o banco de dados aloca uma área no próprio tablespace para realizar o gerenciamento da mesma. Isto minimiza a fragmentação tanto da tablespace System quanto da tablespace em questão, fazendo com que não se perca performance no banco de dados (HART; JESSE, 2005). 3.4 FERRAMENTAS EXISTENTES A Oracle possui diversos aplicativos que contemplam o conceito de alta disponibilidade com diferentes características. Esta seção, apresenta um breve descritivo das principais disponíveis no mercado, sendo FailSafe, Streams, Replicação, Real Application Cluster entre outros. 26 3.4.1 Oracle Fail Safe O Oracle Fail Safe provê alta disponibilidade em ambiente Windows. Deve-se utilizar o Windows Cluster, onde é criado 2 ou mais nós utilizando o conceito ATIVO/PASSIVO. Se ocorrer a falha no nó ativo, todos os recursos do Oracle Group serão movidas para o nó PASSIVO automaticamente. É Importante ressaltar que durante o procedimento de movimentação dos recursos para o outro nó disponível, haverá indisponibilidade dos recursos e do banco de dados, até os mesmos serem restabelecidos no nó funcional (TOLEDO JUNIOR, 2000). Figura 3 – Arquitetura Fail Safe. Fonte: Oracle (2005) As principais características deste cenário são: 1. Rapidez no failover; 2. Baixo custo 3.4.2 Oracle Streams Oracle Streams é uma ferramenta do Oracle database que permite compartilhar informações para outros databases. Trata-se de um replicador de dados e integrador. Ele provê maior flexibilidade em ambiente de infra-estrutura variada. Com ele é possível habilitar a propagação de dados, transações e 27 eventos de um database para outro de forma simples e eficiente. A flexibilidade do Streams está na tradicional solução de replicação de dados e mensagens em fila, permitindo que clientes consultem informações de forma singular provenientes de um ambiente compartilhado com diferentes cenários em menor tempo e custo (HART; JESSE, 2005). 3.4.3 Oracle Real Application Cluster ( RAC ) Oracle RAC é uma solução onde se pode ter 2 ou mais nós ativos para um banco de dados único, provendo tolerância a falhas, alta performance e escalabilidade sem impactar na operação dos usuários. Principais benefícios: • 24/7 disponibilidade: Prove alta disponibilidade 100% do tempo. • Escalabilidade sob demanda: É possível expandir a capacidade do RAC, adicionando novos servidores ao cluster. • Baixo custo: baixo investimento e baixo custo de downtime, pois ambiente pode trabalhar com load balancing. Performance record mundial: Em testes de laboratório, o RAC mostrou-se mais rápido do que ambiente mainframe (TOLEDO JUNIOR, 2000). 3.4.4 Oracle Active Data Guard Oracle Active Data Guard é uma solução de banco de dados standby read-only. Com este cenário, é possível disponibilizar o servidor standby para leitura, geração de relatórios e consultas diversas durante a aplicação dos archives provenientes de produção, ou seja, todo dado alterado em produção, será aplicado no servidor standby, mantendo-o atualizado. Desta forma, podemos disponibilizar o standby para consultas minimizando assim a carga de acesso ao servidor principal. As principais características são: Recuperação de desastres e alta disponibilidade: O Oracle Data Guard fornece uma eficiente e completa solução de recuperação e alta disponibilidade. Failover automático, fácil e rápido permite reversões entre os servidores de bases de dados de produção e de standby, minimizando o downtime do servidor de produção (TOLEDO JUNIOR, 2000). Completa proteção de dados: Uma espera de dados também fornece uma proteção eficaz contra as corrupções de dados e erros. O Oracle garante que a validação física de 28 corrupções não se propague. Usando o Flashback Database, erros lógicos que podem causar corrupções a base de produção podem ser rapidamente resolvidos. Eficiente utilização dos recursos do sistema: A espera física de dados pode ser usada para backups e também de informação de leitura, reduzindo, assim, o consumo CPU e E/S do servidor de produção. A espera física de dados pode ser facilmente convertida para frente e para trás, sem comprometer a proteção de dados e oferecendo a flexibilidade para a inclusão de novos índices para otimizar o desempenho de leitura. Proteção de comunicação falhas: Se a conectividade de rede for perdida entre o servidor de produção e o standby, o Data Guard automaticamente irá reconectar e sincronizar os dados, uma vez que o problema original foi resolvido. Gestão simples e centralizada: Data Guard Broker automatiza as tarefas de gestão e de acompanhamento em todas as bases de dados configuradas no Data Guard. Os administradores podem utilizar o Oracle Enterprise Manager ou o Broker da própria interface de linha de comando para tirar proveito desse quadro de gestão integrada. O Data Guard está disponível como um recurso integrado do Oracle Database (Enterprise Edition), sem custo adicional (TOLEDO JUNIOR, 2000). Figura 4 - Active Data Guard. Fonte: Oracle (2008) 29 4 ORACLE FAILSAFE Oracle Fail Safe é um software que funciona com o Microsoft Cluster Server (MSCS). Ele proporciona soluções empresariais altamente disponíveis em cluster. Trata-se de uma solução de alta disponibilidade de aplicações e de instância única de dados que deve ser executada em cluster. O cluster é uma camada de aplicação entre dois ou mais sistemas servidores rodando o Microsoft Windows e são apresentados ao usuário final, como um único servidor disponível. Cada servidor em um cluster é referenciado como um nó do cluster. Quando um nó do cluster falhar, os recursos alocados no nó ativo são redirecionados automaticamente para o nó disponível no cluster. Esta operação é denominada de failover (MICROSOFT, 2003). Alguns benefícios do Oracle Fail Safe: • Provê alta disponibilidade; • Facilidade de uso • Facilidade de integração com aplicações diversas • Interatividade através do Oracle Manager Fail Safe • Failover automático 4.1 RECURSOS E APLICAÇÕES ALTAMENTE DISPONÍVEIS O Oracle Fail Safe trabalha com MSCS, para configurar ambos os recursos de hardware e software de alta disponibilidade. Uma vez configurado os nó do cluster, aparecem para os usuários finais e clientes como um único servidor virtual; usuários finais e aplicações são conectados a um único endereço de rede fixa, chamado endereço um endereço virtual, sem necessidade de qualquer conhecimento do cluster. Então, se um nó no cluster se torna indisponível, MSCS move o trabalho do nó que falhou para outro nó. A figura 5 mostra um cluster configurado onde ambos os nó estão disponíveis, ativos e processando. Na arquitetura, essa configuração não poderá ser diferente na criação de dois servidores independentes, com exceção de que o armazenamento está configurado para que os discos estejam ligados fisicamente a ambos os nó. Embora os nó estejam fisicamente conectados a mesmos discos, o MSCS garante que cada disco pode ser e acessado apenas por um nó por vez (ORACLE, 2003). 30 Figura 5 - Oracle Fail Safe antes da falha. Fonte: Oracle (2003) A figura 6 mostra, quando hardware ou software torna-se indisponível em um nó, a sua função automaticamente movimenta seu processamento para o nó sobrevivente e o nó com falha é reiniciado, sem intervenção administrador. Durante o failover, as propriedades de discos são liberadas a partir do servidor (nó A) e adquiridas pelo servidor sobrevivente (nó B). Clientes então podem acessar o banco de dados através do nó B, utilizando o mesmo endereço virtual que eles utilizavam para acessar o banco de dados quando ele estava no nó A. Figura 6 - Oracle Fail Safe depois da falha. Fonte: Oracle (2003) 4.2 FACILIDADES DE UTILIZAÇÃO 31 Devido ao grande número de hardware e software que são envolvidos na configuração de todos os seus dependentes (discos, endereços IP, rede), para trabalhar em um cluster pode ser um processo complexo. Em contraste, Oracle Fail Safe é projetado para ser fácil de instalar, administrar, utilizar e simplifica a configuração (FREEMAN, 2008). 4.3 APLICAÇÕES DE SISTEMAS TOLERANTES A FALHAS Existem várias técnicas para a implementação de sistemas tolerantes a falha. A utilização de todas elas na construção de um sistema, embora desejável, é inviável, pois pode elevar o custo do projeto de forma excessiva. Por isso, a escolha da especificação do projeto de acordo com a sua aplicação e sua exigência deve ser bem explorada. Nesta seção são mostrados algumas aplicações que tradicionalmente exigem a implementação de um ou mais mecanismos de tolerância à falhas. As áreas tradicionais onde são empregados sistemas tolerantes a falhas são: • Aplicações críticas de sistemas em tempo real, como medicina, controle de processos e transporte aéreo; • Aplicações seguras de tempo real, como transporte urbano; • Aplicações em sistemas de tempo real de longo período de duração sem manutenção, como viagens espaciais, satélites e sondas; • Telefonia e telecomunicações; Exigências de disponibilidade e confiabilidade são encontradas em todas as áreas, mas os sistemas tolerantes a falha são caros e, portanto empregados apenas em situações em que a sua não-utilização acarretaria prejuízos irrecuperáveis (FREEMAN, 2008). 32 5 ORACLE RAC REAL APPLICATION CLUSTER Um banco de dados Real Application Clusters é altamente disponível e escalonável. A falha de um dos nós no cluster não afeta as sessões de clientes nem a disponibilidade do próprio cluster até o último nó no cluster falhar; o único impacto que um nó perdido tem sobre o cluster é uma leve degradação no tempo de resposta, dependendo do número total de nós no cluster. Um banco de dados Oracle RAC tem algumas desvantagens o custo de licenciamento são mais altos, porque cada nó no cluster possui uma licença Oracle própria. A proximidade física dos nós no cluster, devido aos requisitos de alta velocidade de interconexão do cluster, significa que um desastre natural pode parar todo cluster; utilizar um banco de dados remoto de reserva ajuda a aliviar algumas dessas preocupações. Você terá de comparar o custo de alta disponibilidade (ou a falta dela) com aumento do custo e um pequeno aumento na manutenção de um banco de dados Real Application Clusters (ORACLE, 2003, 2005, 2008). 5.1 CONFIGURAÇÕES A instalação do Oracle RAC requer algumas configurações e recomendações mínimas relacionadas à hardware, software e topologia de redes. A implementação destas recomendações são obrigatórias com o intuito de maximizar o conceito de alta disponibilidade de um ambiente Oracle RAC. 5.1.1 Configuração de Hardware Uma discussão completa de todas as possíveis configurações de hardware do banco de dados Real Application Clusters está além do escopo dos livros estudados. É recomendado ter pelo menos dois e, preferivelmente, três nós para um banco de dados Real Application Clusters, cada um com fonte de energia, placa de rede, CPU’s dual e memórias de erro redundantes; essas são as características desejáveis para qualquer tipo de servidor, não apenas para um servidor Oracle. Quanto maior o número de nó configurados no cluster menor o impacto sobre o desempenho quando um dos nós do cluster falhar. Os subsistemas de discos compartilhados também devem ter a redundância de hardware pré-definida – Múltiplas fontes de alimentação de energia, disco com RAID ativado etc. Divide a redundância pré-definida do disco compartilhado entre os tipos de grupos de discos que serão criados para o RAC. Uma 33 redundância mais alta pré-definida no hardware do subsistema de disco pode reduzir potencialmente a quantidade de redundância do software que você especifica ao criar dos grupos de disco do banco de dados (GOPALAKRISHNAN, 2008). 5.1.2 Configuração de Software Embora as soluções de clusterização do Oracle estejam disponíveis desde a versão 6, só na versão 10g houve uma solução de clusterware nativo que une mais compactadamente o banco de dados à solução de gerenciamento do volume. O Cluster Ready Services (CRS) é a solução de clusterização que pode ser utilizada nas principais plataformas em vez de um fornecedor de OS ou um clusterware de terceiros. O CRS é instalado antes do RDBMS e precisa estar em diretório inicial próprio, conhecido como CRS_HOME. Se, no futuro próximo, você utilizar uma única instância, mas pensar um clusterizá-la posteriormente, será útil primeiro instalar o CRS de modo que os componentes do CRS necessário para o ASM e RAC já estejam na estruturas de do diretório RDBMS. Se não instalar o CRS primeiro, mais tarde, terá de seguir alguns passos extras para remover os executáveis relacionados ao processo CRS do diretório inicial do RDBMS. Depois que o CRS é instalado, instale o software do banco de dados no diretório inicial, conhecido como ORACLE_HOME (GOPALAKRISHNAN, 2008). 5.1.3 Configuração de Rede Cada nó em um RAC tem no mínimo três endereços IP: um para rede pública um para interconexão de rede privada e um endereço IP virtual para suportar failover mais rápido no caso de uma falha no nó. Como resultado, no mínimo duas placas de rede físicas são necessários para suportar o RAC; as placas de redes adicionais são utilizadas para fornecer redundância na rede publica e assim um caminho de rede alternativo para as conexões recebidas. Para a rede privada placas de redes adicionais podem aprimorar o desempenho fornecendo mais largura de banda total para o trafego interconectado (HILL, 2008). 34 Figura 7 - Oracle RAC Configuração de IP. Fonte: Oracle (2008) A rede pública é utilizada por todas as conexões de rotina para e do servidor; a rede de interconexão ou rede privada suporta a comunicação entre os nós no cluster, como as informações sobre o status dos nós e os blocos de dados reais compartilhados entre os nós. Essa interface deve ser a mais rápida possível e nenhum tipo de comunicação entre os nós deve ocorrer nessa interface, do contrario, o desempenho do banco de dados RAC poderia sofrer. O endereço virtual é o endereço atribuído ao processo ouvinte Oracle e suporta failover rápido por tempo de conexão, que é capaz de comutar o trafego de rede e a conexão Oracle para um instância diferente no banco de dados RAC muito mais rápida do que uma solução de alta disponibilidade de terceiros. (ORACLE, 2006) 5.2 REQUISITOS DE MEMÓRIA E DISCO Para cada nó no cluster, 512Mb é o mínimo recomendável. O espaço de troca deve ter pelo menos duas vezes esses valor, ou 1Gb. Para uma instalação bem sucedida, deve haver 400mb livres no sistema de arquivos /tmp. O próprio software Oracle requer aproximadamente 2,5 Gb de espaço em disco e os arquivos de banco de dados padrão requer outros 1,2Gb; o crescimento do seu banco de dados depende, naturalmente, da aplicação. No subsistema de discos compartilhados, precisa de duas partições especiais: uma para um disco de votação e outra para o Oracle Cluster Registry (OCR). O disco de rotação é utilizado pelo software de clusterização do Oracle, o Cluster Ready Services (CRS), para arbitrar a posse do cluster no caso de uma falha da rede privada. O disco OCR é utilizado para manter todos os metadados sobre o cluster: a configuração do cluster e a configuração de banco de dados do Cluster (GOPALAKRISHNAN, 2008). 35 5.3 CLUSTER READY SERVICES Os CRS devem ser instalados em um diretório inicial próprio chamado CRS_HOME. Como parte da instalação do CRS, você terá de configurar dois locais particulares que não sejam específicos a qualquer instância, mas que seja utilizado pelo próprio cluster: o Oracle Cluster Registry e o disco de votação. O Oracle Cluster Registry (OCR) é a localização em que o cluster armazena seus metadados e o espaço em disco de 100Mb é mais do que suficiente para armazenar os metadados para um cluster muito grande. O disco de votação é utilizado pelo cluster para resolver situações nas quais um ou mais nó no cluster perdem contato com outros nó no cluster em uma interconexão privada. Dessa maneira, você pode evitar que um dos nó ou um dos grupo de nó gravem nos arquivos de discos compartilhados por que eles supõe que esteja controlando o armazenamento compartilhado; como com o disco OCR, o disco de votação requer não mais do que 100Mb (GOPALAKRISHNAN, 2008). As localizações dos discos OCR e do disco de votação devem estar em dispositivos brutos separados, mesmo quando você utiliza o ASM para os seus outros arquivos de banco de dados; entretanto, se utilizar o OCFS, o disco OCR e o disco de votação podem existir como arquivo de em um volume OCFS (ORACLE, 2008). 5.4 CARACTERÍSTICAS DO BANCO DE DADOS ORACLE RAC Uma instância RAC é de varias formas, diferentes de uma instância diferente [Standalone]; aqui mostraremos os parâmetros de inicialização que são específicos de uma instância RAC. Alem disso mostraremos algumas versões de dicionários de dados e visões de desempenho dinâmico que são únicas de um RAC ou tem colunas que só são preenchidas quando a instância faz parte de um RAC (HILL, 2008). 5.5 CARACTERÍSTICAS DO ARQUIVO DE PARÂMETRO DE SERVIDOR O arquivo de parâmetro de servidor (SPFILE) reside no grupo de disco DATA1 e, portanto, é compartilhado por cada nó no cluster. Dentro do SPFILE, você pode atribuir diferentes valores a determinados parâmetros instância por instância, em outras palavras o valor para um parâmetro de inicialização pode diferir entre instâncias. Se um parâmetro de 36 inicialização for o mesmo para todos os clusters, ele será prefixado com “*.”; do contrario, será prefixado com o nome do nó (GOPALAKRISHNAN, 2008). 37 6 ESTRATÉGIA DE BACKUP O ponto chave para o desenvolvimento de uma boa estratégia de backup está diretamente associada à disponibilidade do dado para a empresa. O bom senso deve imperar nesse momento, pois de nada adianta ter um ambiente complexo de backup e restore instalado, quando na verdade o que a empresa precisa é simplesmente ter um backup ativo e operante. O resultado a ser alcançado é manter os ambientes de desenvolvimento, teste, integração, homologação e produção disponíveis e atualizados para uso constante. As equipes envolvidas: DBA, Data Center (responsável pela execução e checklist do processo) e a gerência da empresa devem estar sempre atualizadas em relação às informações geradas pelo processo de backup (WATSON; BERSINIC, 1 / 2006). O Oracle fornece uma variedade de procedimentos e opções de backup que ajudam a proteger um banco de dados. Se adequadamente implementadas, essas opções permitirão um eficiente backup de seu banco de dados e, posteriormente, uma fácil recuperação. As capacidades de backup do Oracle incluem backups lógicos e físicos ambos com diferentes opções a serem implementadas. Neste capitulo é abordado o uso das melhores opções, e maneiras mais eficiente. 6.1 CONFIGURANDO DEFINIÇÕES DE BACKUP Há três métodos padrão de fazer backup de um banco de dados Oracle: exportações, backups off-line e backups on-line. Uma exportação é um backup lógico do banco de dados; os outros dois métodos de backup são backups físicos de arquivos. Uma estratégia robusta de backup inclui tanto backups físicos e lógicos. Em geral, bancos de dados de produção contam com backups físicos como seu principal método de backup e backup lógicos serve como um método secundário. Para bancos de dados de desenvolvimento e para alguns pequenos processamentos de movimentação de dados, os backups lógicos são uma solução viável. Deve-se entender as implicações e uso dos backups físicos e lógicos a fim de desenvolver a melhor solução para aplicações (WATSON; BERSINIC, 1 / 2006). 38 6.2 BACKUP LÓGICO Um backup lógico de um banco de dados envolve a leitura de um conjunto de registros do banco de dados e a gravação destes em um arquivo. Esses registros são independentes das suas localizações físicas. No Oracle, o utilitário Data Pump Export realiza esse tipo de backup do banco de dados. Para recuperação, com o arquivo gerado em um Data Pump Export, utiliza-se o Data Pump Import. O utilitário Data Pump Export do Oracle consulta o banco de dados, incluindo o dicionário de dados, e grava a saída em um arquivo XML chamado arquivo de dump de exportação. Pode exportar todo o banco de dados, usuários específicos, espaços de tabelas ou tabelas especificas. Durante as exportações, pode escolher entre exportar as informações dos dicionários de dados associados as tabelas, como concessões, índices e restrições. O arquivo gravado pelo Data Pump Export conterá os camandos necessários para recriar completamente todos os objetos e dados escolhidos (WATSON; BERSINIC, 1 / 2006). Depois que os dados foram exportados por meio do Data Pump Export, eles poderão ser importados por meio do utilitário Data Pump Import. O Data Pump Import lê o arquivo dump criado pelo Data Pump Export e executa os comandos localizados. Por exemplo, esses comandos podem incluir comando CREATE TABLE, seguido de um comando INSERT para carregar dados para tabela. Os dados que não foram exportados tem de ser importados para o mesmo banco de dados, ou para o mesmo esquema, tal como foram utilizados para gerar o arquivo de dump de exportação. Pode-se utilizar o arquivo de dump de exportação para criar um conjunto duplicado dos objetos exportados sob um esquema diferente ou em um banco de dados diferentes. Podem ser importados todos dados exportados, ou somente uma parte deles. Se importar todo o arquivo de dump de exportação apartir de uma exportação completa, então todos os objetos do banco de dados – incluindo os espaços de tabelas arquivos de dados e usuários - serão criados durante a importação. Entretanto, é freqüentemente útil pré-criar espaços de tabelas e usuários a fim de especificar a distribuição física dos objetos no banco de dados. Se for importado apenas parte dos dados a partir do arquivo de dump de importação, os dados de tabelas, arquivos de dados e usuários que possuirão e armazenarão esses dados deverão ser configurados antes da importação (WATSON; BERSINIC, 2007). 39 6.3 BACKUPS FÍSICOS Backups físicos envolvem a copia dos arquivos que constituem o banco de dados. Esses backups são também conhecidos como backups do sistema de arquivos porque envolvem o uso de comandos para backup de arquivos do sistema operacional. O Oracle suporta dois tipos diferentes de backups físicos de arquivos: backups off-line e backups online (também conhecido como cold backups e hot backups, respectivamente). Podendo utilizar o utilitário RMAN (Recovery Manager) para realizar todos os backups físicos. Opcionalmente, pode optar por escrever seus próprios scripts para realizar backups físicos, mas isso fará com que não obtenha boa parte dos benefícios da abordagem RMAN (WATSON; BERSINIC, 1 / 2006). 6.3.1 Backups Off-line Backups off-line ocorrerem quando o banco de dados é desligado de maneira normal (isto é, não devido à falha da instância). Enquanto o banco de dados estiver off-line, deve-se fazer o backup dos seguintes arquivos: a. De todos os arquivos de dados b. De todos os arquivos de controle c. De todos os logs de redo on-line Do arquivo init.ora (opcional) e do arquivo de parâmetro de servidor (spfile), se utilizado. É fácil fazer backups dos arquivos de dados se a arquitetura de arquivos do banco de dados utiliza uma estrutura de diretórios consistentes. Fazer o backup de todos esses arquivos enquanto o banco de dados esta desligado fornece uma imagem completa do banco de dados tal como ele existia no momento em que foi desligado. O conjunto completo desses arquivos poderia ser recuperado a partir dos backups em uma data posterior e o banco de dados seria capaz de funcionar. Não é valido realizar um backup do sistema de arquivos do banco de dados enquanto ele está aberto a menos que um backup on-line está sendo realizado. Backups off-line que ocorrem depois da interrupção do banco de dados também serão considerados inconsistentes e talvez requeiram mais esforços para que possam ser utilizados durante a recuperação (HILL, 2008). 40 6.3.2 Backups On-line Pode ser utilizado backups on-line para qualquer banco de dados em execução no modo ARCHIVELOG. Nesse modo, os logs de redo on-line são arquivados criando um registro em log de todas as transações dentro do banco de dados. O Oracle grava nos arquivos de log de redo on-line de uma maneira cíclica: depois de preencher o primeiro arquivo de log, ele começa a gravar o segundo, até que este esteja preenchido, e então começa a gravar o terceiro. Depois que o ultimo arquivo de log de redo on-line é preenchido, o segundo plano do LGWR (Log Writer) começa a sobrescrever o conteúdo do primeiro arquivo do log de redo (HILL, 2008). Quando o Oracle é executado no modo ARCHIVELOG, o processo do segundo plano do ARCH (Archiver) cria uma cópia de cada arquivo de log de redo antes de sobrescrevê-lo. Esses arquivos de log de redo arquivados em repositórios de arquivos normalmente são gravados em um dispositivo de disco. Os arquivos de log de redo arquivados em repositórios de arquivos também podem ser gravados em fita, mas isso tende a utilizar o operador intensivamente. A maioria dos Bancos de dados de produção, particularmente aqueles que suportam aplicações de processamento de transações, deve ser executado no modo ARCHIVELOG. Também pode ser realizado backup de sistema de arquivo de um banco de dados enquanto esse banco de dados está aberto, desde que o banco de dados esteja executando no modo ARCHIVELOG. Um backup on-line envolve configurar cada espaço de tabela em um estado de backup, fazer backup de seus arquivos de dados e restaurar o espaço de tabela ao seu estado normal. (HILL, 2008) Ao utilizar o utilitário Recovery Manager (RMAN) fornedico pela Oracle, usuário não precisa colocar manualmente cada espaço de tabela em um estado de backup. O RMAN lê os blocos de dados tal como o Oracle usa consultas (WATSON; BERSINIC, 1 / 2006). 6.4 ESTRATÉGIA DE BACKUP SUGERIDA PELA ORACLE Os backups físicos do banco de dados asseguram que a transação não-confirmada é perdida, podendo-se restaurar o banco de dados a partir de qualquer backup anterior até o ponto atual no tempo ou qualquer ponto intermediário. Os backups lógicos permitem que o DBA ou usuário capture o conteúdo de objetos de dados individuais em ponto particular no 41 tempo, fornecendo uma opção de recuperação alternativa quando uma operação de restauração de banco de dados completa teria um impacto muito grande no restante do banco de dados O Recovery Manager (RMAN) do Oracle leva o backup e a recuperação a um novo nível de proteção e facilidade de uso. Desde o aparecimento do RMAN na versão 8 do Oracle, há varias melhoras e aprimoramentos importantes que podem fazer do RMAN uma solução única para quase todo o ambiente de banco de dados. (HILL, 2008) O RMAN é mais do que um simples executável do lado do cliente que pode ser utilizado com uma interface Web. Ele abrange vários outros componentes, inclusive o banco de dados do qual será feito o backup (Banco de dados Alvo), um catalogo de recuperação opcional, uma Flash Recovery Area opcional e um software de gerenciamento de mídia para suportar sistemas de backup de fita. Muitos recursos RMAN não têm equivalentes nos métodos de backup apresentados anteriormente (WATSON; BERSINIC, 1 / 2006). 6.4.1 Componentes do RMAN O primeiro componente no ambiente RMAN é o executável RMAN. Ele está disponível junto com os outros utilitários Oracle no diretório $ORACLE_HOME/bin e é instalado por padrão com as edições Standard e Enterprise do Oracle 10g. A partir de um prompt de linha de comando o RMAN pode ser invocado com ou sem argumento de linha de comando. Os argumentos de linha de comando são opcionais, também podem especificar o banco de dados alvo e um catalogo de recuperação a partir do prompt RMAN>. No Oracle 10g, a Flash Recovery Area simplifica o backup e a restauração baseada em disco, ao definir um local em disco para armazenar todos os backups de RMAN. Junto com o local, o DBA também pode especificar um limite superior para a quantidade de espaço em disco utilizada na Flash Recovery Area. Uma vez que uma diretiva de retenção é definida dentro do RMAN, este gerenciara automaticamente os arquivos de backup excluindo os backups obsoletos tanto do disco como da fita (HILL, 2008). 42 6.4.2 RMAN versus método de backup tradicional Há pouquíssimas razões para não utilizar RMAN como sua ferramenta principal para gerenciamento de backup. Alguns dos principais recursos do RMAN que não estão disponíveis com métodos de backups tradicionais, e tem as significativas restrições desses métodos: a. Backup Compression: além de pular blocos que nunca foram utilizados, o RMAN também pode utilizar um modo de compactação binária especifico do Oracle para salvar espaços no dispositivo de backup. Embora as técnicas de compactação especificas do sistema operacional estejam disponíveis com os métodos de backup tradicionais, os algoritmos de compactação utilizados pelo RMAN são personalizado para maximizar a compactação dos tipos comuns de dados encontrados em bloco de dados Oracle. Embora haja um ligeiro aumento no tempo de CPU durante uma operação de recuperação ou backup compactado do RMAN, a quantidade de mídia utilizada para backup pode ser significadamente reduzida, bem como a largura de banda de rede se o backup for realizado na rede. Múltiplas CPU’s podem ser configuradas para um backup RMAN para ajudar a aliviar o overhead de compactação (HILL, 2008). b. Open database backups: backups de espaços de tabelas podem ser realizados no RMAN sem utilizar a clausula begin/end backup como alter tablespace. Mas, seja utilizando RMAN ou um método de backup tradicional, o banco deve estar no modo ARCHIVELOG c. True incremental backups: para qualquer backup incremental RMAN, os blocos de dados inalterados desde o ultimo backup não serão gravado no arquivo de backup. Isso poupa uma quantidade significativa de espaços de restauração e recuperação, o RMAN suporta backups incrementalmente atualizados. Os blocos de dados de um backup incremental são aplicados a um backup anterior para reduzir potencialmente a quantidade de tempo e o numero de arquivos que precisam ser acessados para realizar uma operação de recuperação (WATSON; BERSINIC, 1 / 2006). 6.4.3 Tipos de backups O RMAN suporta diversos métodos de backups diferentes, dependendo de suas 43 necessidades de disponibilidade, do tamanho desejado da janela de recuperação e da quantidade de tempo de inatividade que pode suportar enquanto o banco de dados ou parte do banco estiver envolvido em uma operação de recuperação. Um backup físico pode ser classificado como backup consistente ou inconsistente. Em um backup consistente, todos os arquivos de dado têm o mesmo SCN. Em outras palavras, todas as alterações nos logs de redo foram aplicadas aos arquivos de dados. Como um banco de dados aberto sem transações confirmadas pode ter alguns blocos sujos no cache de buffer, é raro que um backup aberto de banco de dados possa ser considerado consistente. Como resultados, os backups consistentes são adotados quando um banco é desligado normalmente em um estado MOUNT (HILL, 2008). Ao contrario, um backup inconsistente é realizado enquanto o banco de dados está aberto e os usuários estão acessando o banco. Como, em geral os SNCs dos arquivos de dados não se correspondem quando um backup inconsistente está acontecendo (WATSON; BERSINIC, 1 / 2006). 44 7 ANALISE COMPARATIVA ENTRE ORACLE RAC E ORACLE FAILSAFE O Oracle RAC e o Oracle Failsafe são os dois principais produtos RDBMS (Relational Database Management Systems - Sistemas de Gerenciamento de Banco de Dados Relacional) no mercado. Ambos são plataformas de gerenciamento de dados com recursos que comprovaram a capacidade de lidar com aplicações críticas, de larga escala. Contudo, as duas arquiteturas oferecem visões diferentes para aplicações de larga escala e críticas. A Oracle está oferecendo concentradamente seus “Clusters Reais de Aplicações” (RAC), uma tecnologia de “escalabilidade horizontal”, como uma solução para todos os tipos de aplicações de bancos de dados, essencialmente dispensando a abordagem tradicional de escalabilidade. A Oracle alega que o RAC oferece escalabilidade e disponibilidade inéditas a baixo custo devido à sua capacidade de utilizar hardware comercial de baixo custo. A principal diferença entre o Oracle RAC e o Oracle Failsafe está na infra-estrutura. No Oracle RAC, é possível acessar dois ou mais nós simultaneamente. Já o Oracle Failsafe, tem acesso à apenas um único nó ativo, este que por sua vez concentram todos os recursos do cluster mapeados. Com isto, pode concluir que a principal característica entre Oracle RAC e o Oracle Failsafe está no balanceamento de carga, na aplicação isso fica bem implícito. 7.1 APLICAÇÃO O mercado financeiro brasileiro cresceu muito nos últimos anos. Este grande avanço proporcionou às pessoas físicas (e não somente instituições financeiras) a participarem ativamente do mercado de ações, comprando e vendendo papéis de empresas brasileiras. Com o surgimento dos “Home Brokers”, que é o instrumento que permite a negociação de ações via Internet, onde é efetuado a compra ou venda de ações através da internet, o usuário (pessoa física) não precisa de um corretor muito menos de muito dinheiro para iniciar a aplicar na Bolsa de Valores de São Paulo (Bovespa) (http://www.cblc.com.br, 2009). O mercado tornou-se acessível a qualquer pessoa com qualquer volume de dinheiro e que esteja disposta a arriscar e apostar nas empresas brasileiras, mas isto não quer dizer que você não deve levar os negócios online a sério. Há muita tecnologia por trás dos famosos “Home Brokers” (http://www.cblc.com.br, 2009). 45 Ações e mercados Uma quota de ações é basicamente uma minúscula parte de uma empresa. Os acionistas, pessoas que compram ações, estão investindo no futuro de uma empresa durante o tempo em que estiverem de posse de suas quotas. O preço de uma quota varia de acordo com as condições econômicas, o desempenho da empresa e as atitudes dos investidores. A primeira vez que uma empresa oferece suas ações para venda ao público é chamada de oferta pública inicial (OPI), também conhecida como "going public" (indo ao público). Quando um negócio dá lucro, o dinheiro pode ser dividido com seus acionistas através de dividendos. O lucro também pode ser guardado ou reinvestido, aprimorando o negócio ou contratando novas pessoas. As corretoras intermediam a compra e venda de ações através da Bolsa de Valores de São Paulo, cobrando uma comissão por esta intermediação. Figura 8 - Vendas Online. Fonte: IGF (2009). Quando se compra e vende ações online, utiliza-se um “corretor online” que muitas vezes substitui um corretor “humano”. A grande diferença, é que você executa suas ordens de compra e venda diretamente pelo “Home Broker” ao contrário de um corretor, onde as ordens de compra ou venda são executadas por ele, de dentro da corretora (http://www.cblc.com.br, 2009). Home Broker Para permitir que cada vez mais pessoas possam participar do mercado acionário e, ao mesmo tempo, tornar ainda mais ágil e simples a atividade de compra e venda de ações, foi 46 criado um moderno canal de relacionamento entre os investidores e as Corretoras da BOVESPA: o Home Broker. Garantias Com a finalidade de oferecer o máximo de segurança nas operações realizadas em seu sistema de negociação, a BOVESPA as acompanha minuciosamente. Além disso, exige limites e garantias para a execução dessas operações. A CBLC (Central Depositária. Compensação e Liquidação) administra o risco que essas operações podem associar aos mercados, estabelecendo limites operacionais para os Agentes de Compensação; estes, por sua vez, às Corretoras; e as mesmas a seus clientes. Outra exigência da CBLC, é que todas as corretoras que possuem Home Broker, utilizem as melhores práticas em gestão de TI, utilizando-se de recursos confiáveis e seguros, como backup´s offsite (armazenamento de backup em outra localidade), servidores de contingência em locais distintos, bem como sistemas gerenciadores de banco de dados de alta capacidade e disponibilidade, como por exemplo o Oracle RAC ou Oracle FailSafe. O Oracle RAC é recomendado para ambiente de alta criticidade, onde não devem suportar qualquer falha de hardware, rede ou sistemas. Geralmente, denominamos que um ambiente deste teria 99% de disponibilidade. Em caso de falhas, os usuários serão direcionados para o nó que estiver ativo, sem qualquer intervenção humana e também sem perda de conexão. A transação que estava alocada no nó que falhou, será direcionado para o nó que estiver ativo automaticamente e dará sequência ao processamento da mesma. Para o usuário final, esta movimentação é totalmente transparente. Já no Oracle FAILSAFE, em caso de falha do hardware onde se encontra o Oracle ativo, todos os serviços de acesso ao Oracle ficarão indisponíveis, forçando a queda de conexão com todos os usuários, sem salvar quaisquer transações e após alguns segundos, o acesso ao Oracle poderá ser restabelecido no outro nó (que se encontrava passivo). Todos os usuários, sistemas, etc. necessitarão reconectar-se ao Oracle para darem continuidade às atividades/execuções (http://www.cblc.com.br, 2009). Em seguida, relacionado os equipamentos comparados: Corretora A – Oracle RAC 10gR2 2 servidores com a seguinte configuração: 47 Item Descrição Processador(es) 4 Intel(R) Xeon(R) CPU 5140 @ 2.33GHz Memória 10GB RAM Storage MSA 500 G2 ( 350GB ) Rede 2 Placas de Rede NC1020 1000T Gigabit Corretora B – Oracle Failsafe 10gR2 2 servidores com a seguinte configuração: Item Descrição Processador(es) 2 Intel(R) Dual Core 3.0 GHz Memória 8 GB RAM Storage MSA 500 G2 ( 350GB ) Rede 2 Placas de Rede NC1020 1000T Gigabit 7.2 ANALISE DOS RESULTADOS Os testes efetuados em laboratório, constaram que: Tempo de restauro de uma conexão com Oracle FailSafe x Oracle Rac. ORACLE RAC – entre 2 e 4 segundos de “delay “ para transferir. ORACLE FAILSAFE – entre 15 e 20 segundos de transferências dos recursos para o outro nó, com indisponibilidade de acesso, queda das conexões e cancelamento das transações pendentes, sendo necessário restabelecer as conexões. Figura 9 - Oracle FailSafe x Oracle RAC após queda de um nó ( em segundos ) 48 Figura 10 - Conexões que permaneceram ativas após falha de um nó. (em percentual) Esta é uma área em que a alegação da Oracle é mais fraca. Embora seja verdade que o RAC pode reduzir os custos de hardware usando um cluster de servidores de mercado mais baratos e menores, qualquer economia em hardware é compensada pelo custo extra do(s): Software RAC, custos adicionais de armazenamento e rede e custo extra de administração. O RAC é uma arquitetura bastante cara. O preço de lista do RAC é de US$ 20.000 por processador. Isso é mais que a diferença entre servidores de mercado populares. Para o RAC, deve-se licenciar a quantidade total de processadores que estarão ativos no Oracle (2 nós, cada um com 1 processador ). Para o failsafe, apenas 1 processador é utilizado, pois haverá apenas um único nó ativo. Figura 11 – Custo. É interessante que o RAC use servidores populares, mas exija chaves de armazenamento sofisticadas e de alta capacidade. Também é importante notar que, contrário às alegações da Oracle, o RAC não é executado em nenhum hardware de mercado de prateleira. O RAC precisa de hardware “certificado” que limita a escolha e conseqüentemente aumenta o custo. 7.3 CONSIDERAÇÕES IMPORTANTES 49 As informações e dados apresentados no capitulo 7.3 foram obtidas com base em servidores Oracle Rac e Failsafe, utilizados por Corretoras da Bolsa de Valores de São Paulo. Estas corretoras são responsáveis por efetuar o controle das transações de compra e venda de ações no mercado financeiro brasileiro, utilizando aplicativos específicos para compra e venda via internet (home broker), sistemas administrativos (ERP), controle financeiro e conta corrente, entre outros. Ressaltado que os servidores de banco de dados Oracle em cada empresa avaliada são distintos com base na configuração de processador, memória, discos, etc. Estas diferenças podem alterar o resultado final da avaliação. 50 8 CONCLUSÃO Com a pesquisa pode-se concluir que a otimização dos recursos na área de TI, especialmente á distribuição de processamentos e de infra estrutura existentes nas empresas, através de soluções em cluster, tanto para ambiente de produção e desenvolvimento, proporciona uma alternativa de custo benefícios muito interessante. Grandes volumes de dados processados pelas empresas aumentam diariamente. Para acompanhar essa demanda são necessários procedimentos cada vez mais rigorosos e ferramentas adequadas. As áreas que necessitam de maior atenção para acompanhar essas demandas são bancos de dados e servidores. Os bancos de dados têm adquirido uma importância extrema, pois armazenam dados críticos para o sucesso das empresas. A utilização de SGBDs em Cluster no ambiente corporativo tem amadurecido com o passar dos anos, pois, proporciona maior disponibilidade, integridade e desempenho no tratamento dos dados da empresa. Este estudo apresenta uma proposta de análise sobre a utilização SGBDs em Cluster. Através dos testes de desempenho e disponibilidade de SGBDs Oracle em Cluster em diferentes plataformas é possível identificar quais os cenários propícios para a implementação de determinada arquitetura. O Oracle RAC apesar de ser financeiramente mais caro e ter uma administração completa, é a melhor opção quando falamos de alta disponibilidade e missão critica. O Oracle Fail Safe é uma arquitetura mais antiga e menos confiável quando o assunto é disponibilidade. Contudo o Oracle RAC é a melhor opção para empresas que querem o seu sistema integro e disponível a todo o momento. 8.1 TRABALHOS FUTUROS Oracle Real Application Clusters on Extended Distance Clusters Para trabalho futuro temos como objetivo estudar cada particularidade do Oracle Real Application Clusters on Extended Distance Clusters, uma arquitetura nova disponibilizada pela Oracle para ambientes de grande criticidade. No Oracle Real Application Clusters on Extended Distance Clusters, temos 2 sites em lugares distintos, caso um site venha a falhar por completo, todas as conexões serão direcionadas para o outro site. 51 A falha de um dos sites do cluster não afeta as sessões de clientes nem a disponibilidade do próprio cluster até o último nó do segundo site falhar; o único impacto que um site perdido tem sobre o cluster é uma leve degradação no tempo de resposta, dependendo do número total de nós no cluster. Figura 12 - Oracle Real Application Clusters on Extended Distance Clusters 10gR2. Fonte: Oracle (2005) 52 REFERÊNCIA BIBLIOGRÁFICA LONEY, Kevin; THERIAULT, Marlene. O Manual do DBA. São Paulo: Campus, 2005 HART, Matthew; JESSE, Scott. Oracle Database 10g. Eua: Osborne, 2005. FREEMAN, Robert G.. Oracle Database 10g: New Features. Eua: Osborne, 2008. TOLEDO JUNIOR, Hugo. Oracle Networking. Usa: Osborne, 2000. UNIVERSITY, Oracle. Oracle Real Application Clusters. Usa: Oracle, 2003. GOPALAKRISHNAN. Oracle Database 10g: Real Application Cluster. Usa: Oracle, 2008. WATSON; BERSINIC. Oracle Database 10g: RMAN Backup & Recovery. Usa: Oracle, 2006. JOHN WATSON, Oracle Database 10g: Certificação OCP. Oracle, 2005 ÖZSU, M. TAMER, Principios de Sistemas de Banco de Dados Distribuídos, 2001 NETWORK, Oracle Technology (Org.). Instalação. Disponível em: <http://download.oracle.com/docs/cd/B25329_01/doc/install.102/b25144.pdf>. Acesso em: 17 fev. 2009. ORACLE (Org.). Oracle. Disponível em: <http://www.oracle.com/technologies/virtualization/docs/p2v-whitepaper.pdf>. Acesso em: 23 mar. 2009. ORACLE (Org.). Clustering. Disponível em: <http://www.oracle.com/technology/products/database/clustering/pdf/twp_rac10gr2.pdf>. Acesso em: 02 abr. 2009. 53 ORACLE (Org.). Real Application Cluster. Disponível em: <http://www.oraclebase.com/articles/10g/OracleDB10gR2RACInstallationO.php>. Acesso em: 07 abr. 2009. ORACLE (Org.). Clustering. Disponível em: <http://www.oracle.com/technology/products/database/clustering/pdf/twpracwkldmgmt.pdf>. Acesso em: 09 abr. 2009. RACLE (Org.). Oracle. Disponível em: <http://download.oracle.com/docs/pdf/B25801_01.pdf>. Acesso em: 03 abr. 2009. ORACLE (Org.). Oracle. Disponível em: <http://download.oracle.com/docs/pdf/B25784_01.pdf>. Acesso em: 20 abr. 2009. ORACLE (Org.). Fail Safe. Disponível em: <http://www.oracle.com/technology/software/tech/windows/failsafe/index.html>. Acesso em: 02 maio 2009. ORACLE (Org.). Fail Safe. Disponível em: <http://www.oracle.com/technology/documentation/failsafe.html>. Acesso em: 05 maio 2009. ORACLE (Org.). Fail Safe. Disponível em: <http://www.oracle.com/technology/tech/windows/failsafe/pdf/fscawp32.pdf>. Acesso em: 07 maio 2009. CBLC. Tecnologia. Disponível em: < http://www.cblc.com.br/cblc/ACBLC/Tecnologia.asp?tit=1>. Acesso em: 05 setembro 2009.