Oracle RAC 12c:"Flex ASM" e "Flex Cluster"
Por Deiby Gómez Robles, Yenugula Venkata RaviKumar (OCM) e David Siqueira ,
Postado en março 2014
Introdução:
"Oracle Real Application Cluster (RAC)" é um produto muito conhecido hoje em dia dentre as grandes suluções que a Oracle oferece para manter a Alta Disponibilidade dos dados de um negócio. Oracle RAC permite compartilhar a carga de trabalho entre todos os nodes que compõem o cluster, resultando em uma configuração de N-1 para falhas nos nodes, onde N é o número total de nodes. Oracle RAC constantemente está adquirindo melhorias em cada uma de suas versões, e desta vez não foi diferente, na versão 12c incorporou duas características muito importantes chamadas "Flex ASM" e "Flex Cluster" que dão suporte aos requisitos exigidos em ambientes do tipo "Cloud Computing".
"Oracle Flex ASM" em relação as versões anteriores a aquitetura do ASM mudou na versão Oracle RAC . Antes da chagada do "Oracle Flex ASM" na base de dados Oracle versão 12c, uma instância ASM existia em cada um dos nós do cluster, se uma instância de ASM falhava, então todas as demais bases de dados que executavam no mesmo nó também falhavam.
Agora no Banco de Dados versão 12c, se uma instância de ASM falha, o "Oracle Clusterware" inicia uma subistituição da instância de ASM em um nó diferente para manter a cardinalidade do ASM.
A cardinalidade por padrão para ASM é de três, mas que pode ser alterado por meio de alguns comandos de Clusterware.
Comparação entre "Oracle Flex Cluster" e "Oracle Flex ASM":
Antes da versão 12c a topulogia dos nós dentro de um Oracle RAC obedecia as seguintes normas:
- Cada nó dentro do cluster é conectado aos outros nós mediante uma rede privada.
- Cada nó dentro do cluster é conectado diretamente ao armazenamento compartilhado (storage).
No Oracle RAC 12c foram introduzidos dois novos conceitos:
Nós Hub: Estes nós são conectados uns aos outros através de uma rede privada e acessam directamente o armazenamento compartilhado, tal como era nas versões anteriores. Estes nós são aqueles que acessam diretamente o Oracle Cluster Registry (OCR) e o Voting Disk (VD).
Nós Leaf: Estes nós são mais leves e não estão ligados uns aos outros e acessam diretamente o compartilhamento como no caso do "Hub Nodes" de armazenamento. Cada "Fulha do Nó" se comunica com o "Nó Hub", que está ligado e conectado ao cluster igualmente através do seu "Hub Nó".
"Oracle Flex Cluster" é um cluster com nodes do tipo "Hub" e nodes do tipo "Leaf" (fulha). "Oracle Flex Cluster" requer "Oracle Flex ASM". Em uma configuração de "Oracle Flex Cluster", o "Oracle Flex ASM" pode ser executados nos nodes do tipo "Hub" servindo os clientes através dele. As principais vantagens de se usar "Oracle Flex Cluster" são:
- Reduzir a quantidade de acesso ao armazenamento dos nodes compartilhados do tipo “Hub” a contençao no OCR e no “Votting Disk” são reduzidas.
- Redução do trafego de rede entre os nodes do cluster utilizados pelo "heartbeats".
Formas de Implantar o "Oracle Flex ASM":
O "Oracle Flex ASM" pode ser implementao das seguintes maneiras:
- Na versão 12c:
- "Grid Infrastructure (GI)" e a base de dados ambos estão na versão 12c.
- Utilizando versões mistas:
- A instancia de ASM na versão 12c será executada em cada node dentro da configuração Flex para servir as instancias de base de dados em uma versão anterior a 12c. a vantagem desta configuração é que se uma instancia de uma base de dados perde a conectividade com uma instancia ASM, então as conexões de banco de dados realizam “failover” com outra instancia ASM em um node diferente.
Comparação entre RAC 12c e versões anteriores:
O cenário utilizado para essa comparação foi o seguinte:
- RAC 12c com os seguintes componentes:
- Dois nodes: "rac1" e "rac2".
- Duas instancias de base de dados: "orcl1" e "orcl2"
- Duas instancias de ASM: "+ASM1" e "+ASM2".
- RAC 11g com os seguintes componentes:
- Dois nodes: "rac1" e "rac2".
- Duas instancias de base de dados: "flavia1" e "flavia2"
- Duas instancias de ASM: "+ASM1" e "+ASM2".
RAC1: Como verificar se "Oracle Flex ASM" está habilitado ou não?
[oracle@oel6-112-rac1 Desktop]$ asmcmd
ASMCMD>showclustermode
ASM cluster :Flex mode enabled
ASMCMD>showclusterstate
Normal
RAC1: Como trocar a cardinalidade do ASM?
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm -detail
ASM is running on oel6-112-rac2,oel6-112-rac1
ASM is enabled.
[oracle@oel6-112-rac1 Desktop]$ srvctlconfigasm -detail
ASM home: /u01/app/12.1.0/grid
Password file: +DATA/orapwASM
ASM listener: LISTENER
ASM is enabled.
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM
RAC2: Como verificar se "Oracle Flex ASM" está habilitado ou não?
[oracle@oel6-112-rac2 Desktop]$ asmcmd
ASMCMD>showclustermode
ASM cluster : Flex mode enabled
ASMCMD>showclusterstate
Normal
ASMCMD>exit
RAC2: Como trocar a cardinalidade do ASM?
[oracle@oel6-112-rac2 Desktop]$ srvctlconfigasm -detail
ASM home: /u01/app/12.1.0/grid
Password file: +DATA/orapwASM
ASM listener: LISTENER
ASM is enabled.
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM
Oracle RAC 12c:
Configuração Standard "Oracle Flex ASM":
Falha de uma instancia de ASM com uma configuração de "Oracle Flex ASM"
- Conecte-se no Node 1 (rac1):
- Verificar a existencia de instancias no node 1 (rac1): A instancia de base de dados "orcl1" está executando assim como a instancia de ASM "+ASM1".
- Verificar o status das instancias de ASM no node 1 (rac1):
- Verificar o status do Cluster no node 1 (rac1):
- Parar a instancia de ASM no Node 1 (rac1): deve ser parada de maneira forçada para simular uma falha da mesma.
- Verificar o status da instania ASM no Node 1 (rac1): A instancia de ASM no node 1 não esta executando.
- Verificar o status do Cluster no Node 1 (rac1):
- Verificar o status do ASM e da instancia de banco de dados no node 1 (rac1): A instancia de banco de dados "orcl1" ainda continua mesmo que não houver nenhuma instancia de ASM no mesmo node.
- Comprovação dos resultados (rac1): As instancia de banco de dados "orcl1" e "orcl2" estão executando sem se importar se a instancia de ASM "+ASM1" não exista.
- Conectar-se a instancia de ASM do node 2 (rac2) através do node 1 (rac1): A instancia de ASM do Node 2 (rac2) esta acessivel através do node 1.
[oracle@oel6-112-rac1 Desktop]$ hostname
oel6-112-rac1.localdomain
[oracle@oel6-112-rac1 Desktop]$ ps -ef | greppmon
oracle 3325 1 0 17:39 ? 00:00:00 asm_pmon_+ASM1
oracle 5806 1 0 17:42 ? 00:00:00 ora_pmon_orcl1
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm
ASM is running on oel6-112-rac2,oel6-112-rac1
[oracle@oel6-112-rac1 Desktop]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[oracle@oel6-112-rac1 Desktop]$ srvctl stop asm -node oel6-112-rac1 -stopoption abort -force
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm
PRCR-1070 : Failed to check if resource ora.asm is registered
Can not communicate with crsd
[oracle@oel6-112-rac1 Desktop]$ crsctl check cluster
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[oracle@oel6-112-rac1 Desktop]$ ps -ef | greppmon
oracle 5806 1 0 17:42 ? 00:00:00 ora_pmon_orcl1
oracle@oel6-112-rac1 Desktop]$ sqlplus /nolog
SQL*Plus: Release 12.1.0.1.0 Production on Wed Sep 25 18:24:36 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> connect sys/oracle@orcl as sysdba
Connected.
SQL> select instance_name,instance_number from gv$instance;
INSTANCE_NAME INSTANCE_NUMBER
------------------ -----------------------
orcl2 2
orcl1 1
SQL> select instance_name,instance_number from v$instance;
INSTANCE_NAME INSTANCE_NUMBER
------------------ ----------------------
orcl2 2
SQL> connect sys/oracle@orcl as sysdba
Connected.
SQL> select instance_name,instance_number from gv$instance;
INSTANCE_NAME INSTANCE_NUMBER
------------------ ----------------------
orcl1 1
[oracle@oel6-112-rac1 Desktop]$ . oraenv
ORACLE_SID = [orcl1] ? +ASM2
ORACLE_HOME = [/home/oracle] ? /u01/app/12.1.0/grid
The Oracle base remains unchanged with value /u01/app/oracle
oracle@oel6-112-rac1 Desktop]$ asmcmd --privilege sysasm --inst +ASM2
ASMCMD>lsdg
State Type Rebal Sector Block AU Total_MB Free_MBReq_mir_free_
MOUNTED EXTERN N 512 4096 1048576 15342 4782
MBUsable_file_MBOffline_disksVoting_files Name
0 4782 0 Y DATA/
ASMCMD>
Resumo: A instancia de banco de dados estava usando uma instancia de ASM dedicada , e essa instancia de ASM foi forçada a baixar simulando assim uma falha nela mesma, então a instancia de base de dados reconectou-se a uma instancia de ASM existente em outro node, como demonstrado no exemplo .. para o node 2 (rac2).
Oracle RAC 11.2 ou anterior:
- Realizar "Login" no node 1 (rac1):
- Verificar se existem instancias no node 1 (rac1): A instancia de banco de dados "flavia1" está executando bem como a instancia de ASM "+ASM1".
- Verificar o status da instancia de ASM no node 1 (rac1): Existe uma instancia de ASM em cada um dos nodes do cluster.
- Verificar o status do Cluster no Node 1 (rac1):
- Baixar a instancia de ASM no node 1 (rac1): baixar de maneira forçada para simular uma falha da mesma.
- Verificar o status da instancia de ASM no node 1 (rac1): só ha uma instancia de ASM executando no node 2 do cluster (rac2):
- Verificar o status das instancias de ASM e banco de dados no node 1 (rac1): Veja que a falha na Instancia de ASM no node1, também gerou uma falha na base de dados.
- O numero máximo de "Disk Groups" foi aumentado de 63 para 511.
- Agora ha um comando para renomear "ASM Disk" em um "Disk Group".
- Verificação a nível de patch da instancia de ASM
- A verificação a nivel de patch e desabilitada durante a aplicaçao de um patch.
- Metadados físico replicados.
- "Oracle Flex ASM"suporta tamanhos de LUN muito maiores para bases de dados 12c.
- Nenhum parametro especifico é requerido dedo do banco de dados para usar o "Oracle Flex ASM".
- A instancia de ASM usa Automatic Memory Management (AMM).
- A reconexão de uma instancia de banco de dados para outra instancia ASM é automática.
- Nas versões anteriores o cluster requería :
- Uma rede publica para acesso dos clientes.
- Uma ou mais redes privadas para comunicação entre os nodes dentro do cluster incluindo trafego de ASM.
- "Oracle Flex ASM" agrega uma rede dedicada para ASM, que pode ser usada para comunicação entre ASM e clientes para isular e reducir o trafego ASM.
- Esculha a opção “Advanced Installation”
- Standard ASM
- Configuração usada para versões anteriores a 12c.
- "Oracle Flex ASM"
- Recommended
- Non-ASM managed storage
- Utilizada para um sistema de arquivos diferente de ASM.
login as: oracle
oracle@192.168.xx.xx's password:
Lastlogin: FriSep 27 06:05:44 2013
[oracle@rac1 ~]$ ps -ef | greppmon
oracle 3053 1 0 05:56 ? 00:00:00 asm_pmon_+ASM1
oracle 3849 1 0 05:57 ? 00:00:00 ora_pmon_flavia1
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2,rac1
[oracle@rac1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[oracle@rac1 ~]$ srvctl stop asm -n rac1 -o abort -f
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2
[oracle@rac1 ~]$ ps -ef | grep pmon
oracle 7885 5795 0 06:20 pts/0 00:00:00 grep pmon
Resumo: A instancia de banco de dados esta fortemente interligada com a instancia de ASM. Se uma instancia de ASM falhar, também a instancia e banco de dados do mesmo node falhará.
Características do Flex ASM:
Novas características de rede agregadas no Flex ASM:
Implementação do "Oracle Flex ASM":
Existem tres opções de armazenamento para os dados:
Deiby Gomez é um DBA com vasta experiencia em Oracle Exadata Database Machine e suluções de Alta Dipsonibilidade. Deiby requentemente ministra palestras em importantes eventos Oracle na Guatemala tais como "Oracle Technulogy Network Tour", "Java Day", "Primer Simposio de Oracle" e em varias Universidades de seu país de residencia (Guatemala). Deiby é o primeiro Oracle ACE da Guatemala. É "Oracle RAC 11g and Grid Infraestructure Administrator", "ExadataDatabase Machine X3 Administrator", "Oracle Linux Certified ImplementationSpecialist" e "Oracle SOA Implementation Certified Expert".
Yenugula Venkata Ravikumar é um DBA com mais de 15 anos de experiencia com Oracle e em ambientes de alta disponibilidade (RAC, Data Guard, dentre outros), tuning e desempenho, migrações, backup e recover, Oracle Exadata X2 e X3, é Expert em sistemas operacionais tais como como AIX, HP-UX e Linux. Já participou como conferencista de Oracle pela India, ode mora atualmente. Obteve o titulo de "Oracle Certified Master (OCM 10g)" em 2009.
David Siqueira DBA desde 2001, atuante no mercado de São Paulo Brasil, trabalhou nas principais consultorias sempre buscando melhorar conhecimentos e agregar valor aos ambientes por onde passou, é OCP 10 e 11g, OCE SQL Expert, OCE RAC 10g, OCE Exadata Essentials e foi nomeado Oracle ACE em Dezembro de 2011. Atua com ambientes de Alta Disponibilidade Oracel RAC 11g, Exadata X2-2 e Administração de Banco de Dados em Geral. Também possui conhecimentos em sistemas operacionais Oracle VM server e Oracle Businnes Intelligence.