Oracle RAC

Vamos aproveitar esse post para escrever de um tema bem atual: Oracle RAC. O objetivo aqui é tratar alguns novos conceitos e analisarmos algumas diferenças entre uma single instance.

Arquitetura:

Arquitetura Oracle Rac

Novos componentes:
Oracle Clusteware: realiza serviços básicos no nível do sistema operacional que permitem que software Oracle rode em modo de clustering, componente essencial para a instalação do Oracle Rac
Voting Disk: é uma partição de disco compartilhada entre os nós do RAC onde pode ser verificar os membros da estrutura e seu status
OCR: registro das informações dos membros: Vip Address, service, database, asm, entre outros

Instância:

Instance

Novos componentes:

Cache Fusion: mecanismo que garante a coerência entre os caches, realiza a transferência dos blocos da holding instance para request instance
Cluster Private High Speed Network: Interconnect
Global enqueue service: coordena o acesso aos blocos de dados dos nós garantindo a coerência
Global cache service: processo que implementa o Cache Fusion
LMD: gerenciam a requisições de acesso aos blocos e deadlocks
LMON: gerenciam a queda das instância e recuperação no caso de falha
LMSx: gerenciam a quantidade de mensagens remotas
 
Contenção de DMLs, Querys e Serialização
 
DMLs e Querys intensivas num pequeno conjunto de blocos
 

GC Buffer Busy

Conseqüência

Re-masterização de blocos via interconnect entre os nós ocasionando lentidão
 

Solução

Módulos que utilizem tabelas diferentes podem ser configurados para entrada em apenas uma das instâncias (configuração de failover no listener) / configuração de serviços

Sequences

CACHE or NO CACHE

Quando no cache é utilizado o dicionário de dados tem que ser atualizado com a requisição NEXTVAL. Isso significa que o row cache gerar um lock com essa requisição. Múltiplas sessões requisitando um nextval gera o wait event “row cache lock”.

Quando cache + ordering são utilizados e o parâmetro cluster_database = true,  a sessão requer um NEXTVAL é necessário conseguir um lock exclusivo na shared pool para obter o valor. Quando múltiplas requisitam o mesmo valor o wait event gerado é ‘DFS lock Handle’ também uma contenção, que pode ser resolvida por exemplo aumentando o valor de cache.

 

A configuração que gera menor impacto em termos de performance é:

 

CACHE e NOORDER (default)

Essa configuração tem menor impacto de performance no RAC, cada instance armazena um número diferente no cache e não serão globalmente ordenadas, gerando gaps

 

Gaps em seqüences sempre são possíveis, quando ocorre falha e/ou rollback de transações!

Best Practises

Algumas boas práticas, porém de qualquer forma recomendo a leitura das notes elencadas ao final do artigo pois há muito mais que isso:

Designer

Eliminar qualquer ponto de falha na arquitetura

Exemplo: Incluir Cluster Interconnect Redundancy (NIC bonding), múltiplos paths no storage, utilizando 2 HBAs, Disk mirroring / Raid

ASM fortemente recomendado para a versão 10g e obrigatório na versão 11g

 

Network

Switch (ou redundante switches) são necessários e altamente recomendados para private network (crossover cables não são suportados). Se utilizarem uma VLAN deverá ser configurada 1:1 para evitar congestionamentos. (Vlan Settings: 9761210).
Vips e Scan Vips (Recomendável a partir de 11gR2) devem ser o mesmo na sub-rede e na interface pública
As interfaces de rede devem ter o mesmo nome em todos os nós (eth1 -> eth1 suporta o Vip e eth2 -> suporte a interface privada)

 

Storage

Utilizar múltiplas HBAs
Assegurar a utilização de discos NFS juntamente com ASM
No mínimo 4 LUNs de mesmo tamanho em tamanho e desempenho (Cada LUN em um Raid Grupo separado)
Apenas 2 diskgroups são necessários (ASM) um para flash recovery area e o outro para área de dados
Criar uma retundância externa
 

Cluster e Grid Infra-estrutura

Recomenda-se utilização de RAW ou Block Devices na área dos voting disks
Se a versão do BD é 11.2.0.2 pode se utilizar NIC retundancy para o interconnect

Note: 1210883.1

 

Instalação

Verificar os pré-requisitos do Cluster com o utilitário cluvfy
Instalar o ASM em paths diferentes do Oracle Home, garantindo disponibilidade e facilidade para realização de upgrades

 

 Notes Interessantes:

RAC and Oracle Clusterware Best Practices and Starter Kit (Platform Independent) [ID 810394.1]
Where Should the CRS Home be Placed? [ID 549196.1]
When Starting the Database with Srvctl [ID 749515.1]
Transactional Sequences in Applications in a RAC environment [ID 561414.1]
RAC and Sequences [ID 853652.1]

 

Sobre oradeep

José Eduardo Fiamengui Júnior Graduação: Tecnologia em Informática pela Universidade Estadual de Campinas (Unicamp) Pós-Graduação: Administração em Banco de Dados Oracle pelo Instituto Brasileiro de Tecnologia Avançada (IBTA) Mba em Gestão Estratégica em TI pela FGV OCE Certified ITIL Certified Empresa Atual: Dba Oracle e Performance Specialist na Ccee Empresa Atual: Instrutor Oracle IBTA
Esta entrada foi publicada em Oracle. ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s