Visão geral do Oracle RAC
Autor: Pablo Gonzalez | Publicado: 2013-07-09T15:14:00-07:00

Visão geral do Oracle RAC

Um cluster consiste em multiplos computadores interconectados ou servidores que têm como objetivo compartilhar/ processar requisições de usuários em aplicações para usuários finais. O Oracle RAC permite que um Database seja clusterizado e ele utiliza o Oracle Clusterware como infraestrutura para processar várias instâncias como um sistema único.

Abaixo o funcionamento do Oracle RAC:



O que é um Cluster?

As características mais comuns de um Cluster Oracle são:

Servidores interligados que atuam como um único servidor;
O software utilizado pelo cluster mascara a infra-estrutura;
Os discos estão disponíveis para leitura e gravação para todos os servidores do cluster;
Os dados são compartilhados através de softwares;
ASM;
ACFS;
OCFS;
NFS;
RAW;


O sistema operacional é o mesmo em todos os servidores;
Várias instâncias acessando o mesmo banco de dados;
Uma instância por servidor;
Acesso aos dados (datafiles) ao mesmo tempo por todas instâncias;
Controle de acesso aos dados por parte do Oracle RAC;



Os benefícios da utilização do Oracle Real Application Clusters:

Alta disponibilidade: segurança para falhas em servidores e instâncias;
Escalabilidade: adicione mais nodes/servidores em necessidade futuras;
Custo: somente é pago o que é utilizado;
Computação em grade (Grid):
Aumento e diminuição do cluster confirme necessidade;
Adicionar e remover nodes com facilidade;
Utilização de repositório de carga;
Execuções de processos de forma paralela;
Distribuição de carga entre os nodes do cluster.
Interconnect

O Oracle Clusterware necessita de troca de informações entre todos os nodes do Cluster. Para isso é utilizado o link “Interconnect”. As principais tarefas desta interface de rede são:

Funções Heartbeat/Keep Alive ;
Troca de mensagens;
Troca de informações sobre locks e deadlocks;
Atualização de cache (Cache Fusion);
Exemplos de ligações da interface Interconnect:

Single-Switch:

Interfaces ligadas somente a um switch para o Interconnect dos nodes do clusters;
Pode ser configurado como Ativo/Ativo ou Ativo/Standby via Bonding.


Multi-Switch:

Interfaces ligadas a duas ou mais switchs para o Interconnect dos nodes do clusters;
Pode ser configurado como Ativo/Ativo ou Ativo/Standby via Bonding ou HAIP.





Exemplo de ambiente Oracle RAC

Um exemplo de ambiente utilizando Oracle RAC (Versão 11gR2) é mostrado a seguir na imagem:



Ordem de Startup

Para iniciar o cluster, existe uma ordem para o startup dos serviços – isso garante a inicialização correta do Oracle RAC:



Principais processos do Oracle RAC

Um cluster consiste em vários processos no SO. Os processos GCS, GES e GRD consistem no funcionamento do Oracle Cache Fusion (responsável pela troca de blocos em memória entre os nodes do cluster.) Abaixo alguns processos do Oracle RAC:



Cluster Ready Services(CRS)
Processo principal para gerenciamento de alta-disponibilidade do cluster.
Cluster Synchronization Services (CSS)
Gerencia a configuração do cluster controlando seus membros, notificando membros quando um node é edicionado ou excluído do cluster.
Event Manager (EVM)
Proceso Background que gerencia eventos do cluster.
Cluster Time Synchronization Services (CTSS)
Serviço para sincronização de horário entre os nodes do cluster.
Oracle Notification Services (ONS)
Serviço para gerenciamento de eventos FAN (Fast Application Notifications)
Oracle AgentGerencia serviços quando um evento FAN ocorre. Conhecido como processo RACG até a versão 11.1
Oracle Root Agent
É um processo específico (Oraagent) que funciona juntamente com o processo CRSD para gerenciar recursos do usuário “root”, como serviços de rede e endereços VIP.
Grid Naming Services (GNS)
É um conexão entre o mDNS e o DNS externo. Gerencia automaticamente nomes do cluster (opcional).
Grid Plug And Play (GPnP)
Permite adição e remoção de nodes no cluster automaticamente sem ação manual. Necessita do GNS configurado.
Multicast Domain Name Services (mDNS)
Permite solicitações do DNS externo.
ACMS: Atomic Controlfile do Memory Service
Num ambiente Oracle RAC, o ACMS contribui para garantir que as atualizações na memória SGA sejam distribuídas entre os nodes, com sucesso ou falha. 
GTX0-j: Global Transaction Process
O processos GTX0-j suporta transações globais num ambiente Oracle RAC. O Database automaticamente calcula o número desses processos baseando-se na carga de transações XA globais. 
LMON: Global Enqueue Service Monitor
O processo LMON monitora filas globais e recursos do cluster e executa recover de operações LMD   (GlobalEnqueue Daemon). Os processos LMD gerenciam as solicitações remotas de cada instance do cluster.
LMS: Global Cache Service Process
O processo LMS mantém registros dos status dos Datafiles e de cada bloco em cache registrados no Global Resource Directory (GRD). O Processo LMS também controla as mensagens para instâncias   remotas e gerencia o acesso e a transmissão de blocos da Buffer Cache entre as diferentes instances do cluster. Esse processo faz parte da feature Cache Fusion.
LCK0: Instance Enqueue Process
O processo LCK0 administra as requisições de recursos que não são da Cache Fusion, como por exemplo, requisições library w row cache.
Veja os principais processos do Oracle RAC aqui. (Somente em inglês)

Principais mudançaos no Oracle 11gR2

Em relação a versões anteriores do Oracle Database, existem algumas diferenças, como:

OFA (Optimal Flexible Architecture)

 Os novos diretórios no 11g, em $ORACLE_BASE/diag/rdbms/

alert – Diretório do alert log em xml e txt.
incident – Diretório para todos os incidentes do software.
incpkg – Diretório para quando a criado um pacote des incidentes.
trace – Diretório para armazenar os antigos traces gerados nos caminhos background dump (bdump) e user dump (udump).
cdump – Diretório para armazenar os traces de Core Dump, antigo core_dump_dest.
metadata – Metadata sobre os incidentes, problemas e pacotes.
Parâmetros depreciados

Os parâmetros background_dump_dest, core_dump_dest, user_dump_dest foram depreciados. Agora, todos os traces podem ser encontrados em DIAGNOSTIC_DEST.

ADR – Automatic Diagnostic Repository

Ferramenta para auxiliar na prevenção, detecção e diagnóstico de problemas com bugs em banco de dados. O ADR centraliza todos os traces e logs de todos os componentes, tais como ASM, CRS, LISTENER.

Senhas

As senhas agora, por padrão, são SENSITIVE CASE. Logo, é preciso muita atenção com usuários de aplicação, pois isso poderá ser um problema em uma migração. O recurso pode ser desligado alterando o parâmetro sec_case_sentitive_logon = FALSE.

SCAN – Single Access Name

O Single Client Name (SCAN) é uma nova feature do Oracle RAC 11gR2 que dispõe de um nome qualificado para acesso ao Oracle Database em um cluster. Entre os benefícios, um é a possibilidade de adionar ou remover nodes de um cluster sem a necessidade de alterar os clients. O SCAN é o responsável por LOAD BALANCING e FAILOVER, mudando consideralvelmente o Oracle Net de ambiente em Cluster 11gR2.



Overview do SCAN

LOAD BALACING de conexões usando SCAN:



Oracle Grid Infrastructure

Com o Oracle Grid Infrastructure, o ASM e o Clusterware são instalados em uma única home, tornando-se uma plataforma unificada de infraestrutura do Oracle RAC. Arquivos do Clusterware como OCR e Voting Disks, podem ser armazenados no ASM, unificando as soluções de armazenamento. Para novas instalações, a opção de armazenamento dos arquivos de Clusterware em raw devices não é mais suportada. Estas consigurações também se aplicam para a configuração STANDALONE SERVER.
O ACFS – Automatic Storage Management Cluster File System é um novo recurso de armazenamento, suportando todas as plataformas, provendo uma file system dinâmica, distribuída performaticamente, balanceamento sobre todos os discos envolvidos. Substituí o antigo OCFS.

O Cluster Time Synchronization Service – CTSS, serviço responsável por manter o sincronismo de tempo entre os nodes. Oracle Universal Installer do Grid Infrastructure gera scripts automaticamente para fix de pré-requisitos não atendidos. 

Online Application Upgrade

Nessa versão é permitido que sejam realizados upgrades online sem qualquer indisponibilidade para aplicações. Anteriormente, quando um commando DDL era executado e outra sessão tentava realizar um DML no mesmo objeto, ocorria uma falha. Isto não acontece mais. Foram feitas melhorias nos processos Create e Rebuild index (no waits). O modelo de dependências do banco mudou para o chamado “finegrained”. Ex: Adicionar uma nova coluna em uma tabela ou um novo subprograma para uma package spec não invalidará suas dependências.

Matriz de Certificação do Oracle RAC

Para garantir a compatibilidade de software/hardware em uma instalação do Oracle RAC, confira a matriz de certificação no My Oracle Support:

Conecte no portal Oracle;
Clique na aba “Certificação”;
Cliquem em “Certificação por Produto”;
Selecione “Real Application Clusters”;
Selecione a plataforma.