Introdução

Recentemente eu estava revisando as mudanças do ASMlib 3.0, e uma mudança que afeta a maneira como costumo configurar os ambientes é o fato de não existir mais o caminho “/dev/oracleasm/disks“, que até a versão 2.0 era usado para listar os LABELs dos discos criados com o ASMlib.

Na nova versão, a forma de referenciar os discos pelo Label é usando o caminho padrão do SO “/dev/disk/by-label“, mas esse diretório inclui todos os discos que contém um Label, mesmo os que não foram criados como ASMlib.

Uma alternativa é usar o padrão ‘ORCL:*‘ como prefixo para descobrir os discos criados com o ASMlib. Neste post eu demonstro como habilitar essa opção, e como migrar uma configuração existente que usa o padrão ‘/dev/oracleasm/disks‘ para o padrão ‘ORCL:*‘.

Habilitando o Prefixo ORCL:*

Para habilitar essa opção, use o kfod com os parâmetros abaixo:

kfod status=TRUE asm_diskstring='ORCL:*' disks=all dscvgroup=TRUE

Se você estiver fazendo uma instalação nova, já poderá utilizar o padrão ‘ORCL:*’ no parâmetro asm_diskstring do ASM.

Migrando Uma Configuração Existente

Este tópico demonstra um exemplo de como alterar a configuração de um ASM existente, considerando que você já habilitou a opção com o kfod, e que tem uma janela de indisponibilidade para isso.

1) Na instância ASM via SQLPLUS, verifique o valor atual do parâmetro asm_diskstring:

SQL> show parameter asm_disk

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring			     string	 /dev/oracleasm/disks

2) Altere o parâmetro para incluir o novo valor ‘ORCL:*‘ e deixando valor original por último:

SQL> alter system set asm_diskstring='ORCL:*','/dev/oracleasm/disks/*';

Isso irá permitir que o ASM acesse os discos pelos dois caminhos possíveis temporariamente.

3) Verifique que ambos os caminhos para o mesmo disco são reconhecidos pelo ASM, mas o novo deve estar com status CLOSED:

set lines 400
col path format a50
select mount_status, header_status, mode_status, name, path from v$asm_disk;

MOUNT_S HEADER_STATU MODE_ST NAME			    PATH
------- ------------ ------- ---------------- ------------------------------------------------------------
CLOSED	MEMBER	     ONLINE				      ORCL:DATA01  --<<=====  Current CLOSED
CACHED	MEMBER	     ONLINE  DATA_0000		  /dev/oracleasm/disks/DATA01  --<<===== Current CACHED

4) Pare qualquer banco de dados que esteja usando o diskgroup e faça um restart do mesmo:

SQL> alter diskgroup DATA dismount force;
Diskgroup altered.

SQL> alter diskgroup DATA mount;
Diskgroup altered.

5) Consulte o status dos discos novamente, o novo caminho deve aparecer como CACHED, e o antigo como IGNORED:

SQL> select mount_status, header_status, mode_status, name, path from v$asm_disk;

MOUNT_S HEADER_STATU MODE_ST NAME			    PATH
------- ------------ ------- ----------------- ------------------------------------------------------------
IGNORED MEMBER	     ONLINE				       /dev/oracleasm/disks/DATA01  --<<=====  IGNORED
CACHED	MEMBER	     ONLINE  DATA_0000		   ORCL:DATA01 --<<===== CACHED

6) Altere o parâmetro asm_diskstring para incluir apenas o novo prefixo:

SQL> alter system set asm_diskstring = 'ORCL:*';
System altered.

Isso irá fazer com que o ASM considere apenas os discos com o novo prefixo.

7) Agora o disco deve aparecer apenas com o prefixo novo:

select mount_status, header_status, mode_status, name, path from v$asm_disk;

MOUNT_S HEADER_STATU MODE_ST NAME			    PATH
------- ------------ ------- ------------------ --------------------------------------------------
CACHED	MEMBER	     ONLINE  DATA_0000			ORCL:DATA01

Conclusão

Esse post demonstrou uma alternativa para manter uma configuração padronizada no ASM, que pode ser usada em qualquer versão do ASMlib, servindo como uma preparação do que você pode precisar fazer em um possível upgrade do ASMlib para a sua versão 3.0.

Leave a Reply

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading