Um dos problemas que temos ao utilizar o ASM e que, nas versoes anteriores a versao 12c, temos que instalar a instancia ASM em cada local onde sera consumido dos diskgroups.

Temos entao o Flex ASM e para a clusterizacao temos que utilizar o Flex Clusters.

Caracteristicas:

Flex ASM nao requer Flex Cluster
Flex ASM roda como um servico para cluster padrao para atender clientes atraves do cluster.
Flex ASM pode rodar como um hub de conexao para atender aos servicos de Flex Cluster atraves de nos de HUBs de Flex Cluster.
O Flex ASM tem menor gastos de recursos ja que o mesmo nao precisa da instancia ASM
Flex ASM introduz uma nova rede para que os clientes e as instancias ASM possam se comunicar nessa rede

Como ocorre a conexao:

Cada servidor contendo o banco de dados oracle ira configurar o local_listener apontando para o listener existente no servidor que roda a instancia ASM com seu devido Listener, sendo que o parametro local_listener do banco pode ser configurado para ate 3 listener.

As instancias ASM sao desenvolvidas para que tenhamos o minimo de monitoramento o possivel. Portanto sempre que possivel a recomentacao e utilizar o parametro memory_target. O calculo e feito na hora da criacao da instancia ASM baseando-se no numero de cores dos processadores e a quantidade de memoria disponivel. Atualmente o valor minimo e de 1076M para o memory_target.
Gerenciamento
$ srvctl status asm -detail

ASM is running on host03,host02,host01 ASM is enabled.
$ srvctl stop asm -node host03 -f
$ srvctl start asm -node host04

$ srvctl status asm -detail

ASM is running on host04,host02,host01
ASM is enabled.
$ srvctl relocate asm -currentnode host04 -targetnode host03 $ srvctl status asm -detail
ASM is running on host03,host02,host01
ASM is enabled. 

$ srvctl stop asm -proxy -node host03 
$ srvctl start asm -proxy -node host04

Cardinalidade

A cardinalidade para as instancias ASM, informa qual e a quantidade de instancias ASM servindo o cluster ASM.

$ srvctl config asm
ASM home: /u01/app/12.1.0/grid

Password file: +DATA/orapwASM
ASM listener: LISTENER
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM

Para consultar quais sao os clientes que estao consumindo as instancias, utilizamos a gv$asm_client.

Para visualizar quais instancias estao fazendo o atendimento, faca a consulta abaixo:

 

Os clientes podem ser realocados, isso ja ocorre automaticamente caso a instancia ASM falhe. Mas atraves do novo comando abaixo, podemos realocar o cliente. Geralmente voce executa este comando para tentar realocar os clientes para outra instancia ASM.

SQL> ALTER SYSTEM RELOCATE CLIENT ‘<instance_name>:<db_name>‘;

O cliente sera desconectado e provavelmente ao se conectar novamente, ira se conectar na instancia ASM que ja estava conectado. Para evitar que isso ocorra, derrube a instancia ASM logo apos realocar todos clientes.

Quando os discos estao entregues para serem consumidos pelos diskgroups temos os seguintes status:

CANDIDATE – Disco recentemente criado, este disco nunca foi usado ainda.
FORMER – Disco que ja foi usado e removido do diskgroup, esta disponivel novamente para uso.
PROVISIONED – E similar ao candidate exceto porque o provisionado ainda necessita alguma acao por parte do administrador para disponibilizar este disco.

Para criar um diskgroup siga o exemplo:

 

CREATE DISKGROUP FRA NORMAL REDUNDANCY
DISK ‘ORCL:SDD11’ NAME ‘FRA_DISK1’ SIZE 977 M, ‘ORCL:SDD12’ NAME ‘FRA_DISK2’ SIZE 977 M;

Cada diskgroup criado, mesmo que nao contenha a clausula failure group, cada disco pertencendo a um diskgroup com redundancia normal ou redundancia high,  cada disco contem uma redundancia, ou seja se eu tiver 10 discos em um diskgroup vamos ter automaticamente 10 failgroups.

Redundancia

NORMAL – requer no minimo dois failure groups. No exemplo de criacao acima sao dois failure groups criados. Permite a falha de um failure group. Controlfiles armazenados neste tipo de diskgroup espelhado 3 vezes.
HIGH REDUNDANCY – requer a existencia de tres grupos de falha. Tolerante a perda de dois grupos de falhas.
EXTERNAL REDUNDANCY – nao tolera falhas, necessita redundancia externa.