Project Description

Cliente: rede de análises clínicas

Tempo de contrato: Cliente desde 2013.

Bases de dados administradas: 10 bases de dados Oracle.

Serviços contratados: Administração e monitoramento das bases de dados com atendimento 24 horas por dia.

Por conta do acordo de confidencialidade entre as empresas, detalhes específicos do projeto não serão divulgados. Somente serão descritas informações de conhecimento geral e/ou domínio público sobre hardware, software e atividades que sejam inerentes à administração de banco de dados.

Descrição do projeto:

Em uma fase de expansão das atividades, o cliente necessitou do apoio da DBA para estabilizar e garantir a disponibilidade de seus principais sistemas, optando pela instalação de bancos de dados Oracle com a funcionalidade do Oracle Real Application Cluster, produto que fornece alta tolerância a falhas de hardware e permite diversas possibilidades para ajustes de desempenho e escalabilidade do banco de dados.

Desafios

Migrar com uma parada mínima os bancos de dados de produção para uma versão com o Oracle RAC, garantindo assim a alta disponibilidade.

O projeto foi dividido em 3 fases, conforme abaixo:

Fase

Objetivo

Instalação do Oracle RAC em ambiente de testes, para testar e adaptar a aplicação existente a essa nova tecnologia. O Oracle RAC fornece alta disponibilidade adicionando mais servidores de banco de dados a sua estrutura. Essa funcionalidade, em alguns casos, precisa de certas adaptações da aplicação, para que ela continue funcionando se um dos servidores do cluster ficar indisponível.
Atualização do banco de dados existente para a versão 11g do banco de dados Oracle A versão que o cliente executava na época, não possuía às atualizações de correção e segurança necessárias e não era compatível com o novo sistema operacional que fora adquirido.
Migração definitiva para o Oracle RAC na versão 11g Com todos os pontos de falhas identificados na fase de testes e com a aplicação adaptada ao novo produto, utilizamos essa fase para migrar o banco de dados em definitivo e com tecnologias que garantissem o menor tempo de indisponibilidade possível.

Atividades identificadas e ajustadas nos testes

  • Aplicação de patches de correção do banco de dados conforme recomendação do fabricante;
  • Testes entre as duas versões do otimizador do banco demonstraram que algumas queries deveriam ser re-escritas para não causar baixo desempenho da aplicação;
  • Testes entre a coleta de estatística antiga e a nova demonstraram que o novo resultado era eficiente em 99% das queries;
  • Em duas tabelas específicas do banco de dados tivemos que mover e congelar as estatísticas antigas para garantir o bom desempenho dos comandos;
  • Ajustes em parâmetros específicos do CBO (Cost-Based Optmizer) que não faziam mais sentido na nova versão do banco de dados;
  • Criação de rotinas constantes de coleta de estatísticas do sistema, além das estatísticas do banco de dados;
  • Ajuste dos comandos de coleta de estatísticas do banco de dados para a nova versão;
  • Identificação e congelamento de plano de execução de uma query fundamental que possuía comportamento distinto entre os dois nós do Oracle RAC;
  • Ajuste em determinados pontos da aplicação para adequação do funcionamento nos dois nós disponíveis do Oracle RAC.

Tecnologias de Banco de Dados Utilizadas

O Oracle RAC (Real Application Clusters) permite a execução transparente de um único banco de dados em um pool de servidores, fornecendo o mais alto nível de disponibilidade e escalabilidade possível.

Aumento na alta disponibilidade com diversos servidores trabalhando como apenas um, storages trabalhando como se fossem apenas um e CPUs/memórias sendo provisionadas dinamicamente, enquanto o sistema permanece disponível. Os níveis de serviços podem ser mantidos de forma eficiente enquanto se  reduzem o custo total de hardware. O Oracle RAC oferece distribuição dinâmica de carga de trabalho entre os servidores e proteção transparente contra falhas do sistema.

O Oracle Clusterware é uma solução de gerenciamento de clusters completa e integrada. Disponível em todas as plataformas suportadas para o Oracle RAC. Ele inclui mecanismos para envio de mensagens em cluster, bloqueio, detecção de falhas e recuperação. Para a maioria das plataformas, nenhum software de gerenciamento de clusterware de terceiros precisa ser adquirido. O fabricante garante, no entanto, o suporte a produtos de cluster de terceiros em plataformas específicas, se necessário.

O Oracle Clusterware inclui uma API específica para tornar os aplicativos altamente disponíveis. O Oracle Clusterware pode ser usado para monitorar, realocar e reiniciar qualquer aplicativo que execute no sistema operacional do servidor de banco de dados. Em um ambiente Oracle RAC, o Oracle Clusterware gerencia automaticamente todos os processos do banco de dados Oracle, atuando em conjunto.

Um standby database é uma réplica de banco de dados criada a partir de um backup do servidor primário. Ao aplicar os logs arquivados do banco de dados principal ao standby database, você manterá os dois servidores sincronizados.

Um standby database possui as seguintes finalidades principais:

  • Proteção contra desastres;
  • Proteção contra corrupção de dados;
  • possibilidade de uso para geração de relatórios.

Se o banco de dados principal for perdido ou seus dados ficarem corrompidos, você poderá executar um fail-over para o standby, caso em que o banco de dados se tornará o novo sistema principal. Você também pode abrir um banco de dados standby com a opção somente leitura, permitindo que ele funcione como um banco de dados de relatórios independente.

Para este projeto, utilizamos esta funcionalidade para migrar o banco de dados, com uma parada mínima, criando um banco standby da produção para uso na migração.

Resultados Alcançados

Em resumo, os bancos de dados foram migrados com uma parada máxima de 10 mínutos e o Oracle RAC passou a ser utilizado para alta-disponibilidade. Além disso, com as atividades realizadas no banco de dados do cliente, os seguintes objetivos foram alcançados:

  1. Flexibilidade para escalar a aplicação. Precisando de mais processamento, simplesmente adiciona-se mais servidores ao pool;
  2. Menor investimento inicial em banco de dados. O cliente optou pelo Oracle RAC na versão Standard Edition e, somente se precisar adicionar um terceiro nó ao cluster, migrará para versão Enterprise do banco Oracle;
  3. Migração para a nova plataforma de banco de dados sem impactos significativos, pois os problemas encontrados foram resolvidos em ambientes de teste e homologação;
  4. Interrupção de apenas 10 minutos para migração entre a versão antiga do banco de dados e a nova, com o apoio da tecnologia de standby database.