Oracle Linux: oracleasm não está exibindo os ASM Disks Após Reboot

 

ASM Disks indisponível após reboot

Não é raro encontrar ambientes de banco de dados oracle onde o ASM instance não consegue montar os diskgroups após um reboot.
Quando se tentar montar os diskgroups de forma manual é retornado um erro do tipo diskgroup is incomplete. Nesse caso, muito provavelmente, os asm disks não estão disponíveis ainda.


Quando executamos o oracleasm listdisks os discos do ASM não são listados, ou são de forma parcial (nem todos os discos estão disponíveis).
Para resolver esse problema geralmente é suficiente executar um scandisks oracleasm scandisks. Esse comando vai fazer um scan para identificar os discos marcados para uso pelo asmlib.

Após o oracleasm scandisks geralmente é suficiente fazer um restart no serviço do asm para que ele consiga montar os diskgroups.

Esse tipo de problema é especialmente comum em ambientes onde os discos do ASM são disponibilizados por uma storage acessível via rede, geralmente (iSCSI). Nesse caso o oracleasm é executado antes dos dispositivos iscsi estarem completamente inicializados / visiveis no servidor.

Uma forma de contornar esse problema, e não precisar reiniciar o serviço manualmente toda vez que o servidor for reiniciado, é fazendo uso do rc.local para executar os comandos necessários para carregar os asm disks após os discos iscsi estarem completamente visíveis ao servidor. O exemplo abaixo foi adicionado no final do arquivo /etc/rc.local.

OBS: os comandos do rc.local são executados após todos os serviços do servidor terem concluído seu start após o reboot.
No exemplo abaixo é dado um sleep de 120 segundos e na sequência é feito um scandisks. A espera do sleep é para garantir que os discos iscsi já esteja devidamente disponíveis no servidor quando o comando /usr/sbin/oracleasm scandisks for executado.
Na sequência é feito um stop no ASM seguindo de uma espera/pausa de 10 segundos. Por fim, o último comando faz um start no serviço do ASM.

/usr/bin/sleep 120
/usr/sbin/oracleasm scandisks
su - grid /u01/app/grid/19.0.0.0/grid_home/bin/srvctl stop asm
/usr/bin/sleep 10
su - grid /u01/app/grid/19.0.0.0/grid_home/bin/srvctl start asm

No final do script, quando a instância do asm estiver subindo, ela vai conseguir montar com sucesso os diskgroups

Referência: (Doc ID 2043733.1)

Postar um comentário

0 Comentários