Oracle RAC Cache Fusion - Oracle HAIP - Saiba como configurar
Autor: Adelson Luniere | Publicado: 2013-04-15T07:50:00-07:00





Oracle Cache Fusion é um dos componentes mais importante de um ambiente Oracle RAC. Como o próprio nome já indica, trata-se da fusão dos caches (buffers) de memória dos vários servidores que compõem a arquitetura de cluster da Oracle.



Cada instância possui seu próprio buffer local. Imagine que uma transação na Instância "A" precisa acessar um bloco de dados que está em uso na Instância "B". O mecanismo que possibilita que a instância "A" tenha acesso ao bloco da instância "B" é denominado CACHE FUSION. Ou seja, uma instância pode acessar um bloco de dados que se encontra no cache de outra instância via uma interconexão de alta velocidade.



Podemos agora imaginar o quanto este processo é crítico para a performance da solução Oracle RAC. Mas e se configurarmos somente uma placa de rede para executar esta tarefa e esta ficar indisponível por qualquer razão que seja. Imagine agora outra situação que é a limitação de banda da rede, geralmente limitada a 1GB, que pode ficar saturada facilmente dependendo do tipo de aplicação que está sendo rodada no ambiente.



Até pouco tempo poderíamos contornar esta limitação de banda e de disponibilidade do canal configurando o mecanismo de "BONDING". Este termo é usado para representar a junção de 2 placas de rede para aparecer como um único dispositivo com o mesmo endereço MAC. O objetivo é aumentar a largura de banda e possibilitar o contingenciamento da rede na eventual falha de um de seus componentes.



A Oracle, a partir da versão 11gR2 criou o protocolo HAIP (High Availability Internet Protocol) para substituir o bonding. A intenção da Oracle é prover melhor performance e alta disponibilidade com a configuração de até 4 placas de rede.



Como configurar o Oracle HAIP?



Vamos usar o utilitário da Oracle chamado:&nbsp;oifcfg



O Oracle Grid irá criar um apelido denominado IP Privado usando a sub-rede 169.254.*.* para usar no HAIP.&nbsp;





Passo 1: Identifique os endereços privados de IP



[root@db01 bin]# ./oifcfg getif

eth0 &nbsp;192.168.1.0 &nbsp;global &nbsp;cluster_interconnect

eth1 &nbsp;10.91.119.0 &nbsp;global &nbsp;public




Passo 2: Adicione e configure uma nova interface de rede privada (eth4)



[oracle@db01 bin]$ ./oifcfg iflist

eth0 &nbsp;192.168.1.0

eth0 &nbsp;169.254.0.0

eth4 &nbsp;192.168.1.0

eth1 &nbsp;10.91.119.0




Passo 3: Use o utilitário setif para configurar a nova interface de rede com o tipo cluster interconnect.

[oracle@db01 ~]$&nbsp;oifcfg setif -global eth4/192.168.1.0:cluster_interconnect



Passo 4: Pare o serviço de cluster em todos os servidores(nós do cluster):

[oracle@db01 ~]# sudo /u01/app/11.2.0/grid/bin/crsctl stop cluster -all




(usar sudo - passo 4 - ou logar como root - passo 5)



Passo 5: Inicie o serviço de cluster nos servidores
[root@db01 ~]# /u01/app/11.2.0/grid/bin/crsctl start cluster -all




Passo 6: Confira suas alterações do ambiente:



[root@coltdb01 bin]# ./oifcfg getif

eth0 &nbsp;192.168.1.0 &nbsp;global &nbsp;cluster_interconnect

eth1 &nbsp;10.91.119.0 &nbsp;global &nbsp;public

eth4 &nbsp;192.168.1.0 &nbsp;global &nbsp;cluster_interconnect





[root@coltdb01 bin]# ./oifcfg iflist -p -n

eth0 &nbsp;192.168.1.0 &nbsp;PRIVATE &nbsp;255.255.255.0

eth0 &nbsp;169.254.0.0 &nbsp;UNKNOWN &nbsp;255.255.128.0

eth4 &nbsp;192.168.1.0 &nbsp;PRIVATE &nbsp;255.255.255.0

eth4 &nbsp;169.254.128.0 &nbsp;UNKNOWN &nbsp;255.255.128.0

eth1 &nbsp;10.91.119.0 &nbsp;PRIVATE &nbsp;255.255.255.0