Revisado por Marcelo Pivovar
Normalmente para a monitorardas as bases de dados Oracle usamos o OEM12c. OOEM é uma ferramenta de monitoração, que permite além de monitorar ter ações corretivas a problemas que podem surgir.
Com as ações corretivas podemos indicar script de resolução relativos a problemas no momento da ocorrência antes do DBA ver o email e antes do DBA ter tempo de entrar no sistema para corrigir o problema, para alguns casos conseguimos evitar downtime prolongados e por vezes nem chegamos a ter downtime se a ação corretiva for executada rapidamente.
Um DBA proativo configura algumas ações reativas para corrigir eventuais situações, que podem ocorrer no futuroe de forma a não ter indisponibilidade na da base de dados.
Temos uma base de dados que usa ASM e temos alguns diskgroup, vamos configurar um procedimento para o OEM12c gerar um alerta Critical de falta de espaço em disco, a ação vai reagir apenas no alerta crítico e adicionar um novo disco ao diskgroup para evitar a parada de serviço e dar tempo do DBA agir com mais calma sem a pressão de ter o ambiente parado.
Preparar a LUN/Disco a nível do Sistema Operativo
Vamos formatar o novo disco “/dev/sdd”.
Vamos criar um ASM disk com o nome emergencia.
Vamos listar os discos no ASM e vamos ver o disco com o nome emergencia.
Vamos adicionar o novo disco a um diskgroup e confirmar que esta tudo bem, e que o espaço em disco aumentou, depois disto vamos remover novamente o diskgroup, este passo é só para na hora que o script tentar adicionar automaticamente o disco não termos surpresas desagradáveis.
Os diskgroups tem cada o tamanho de 10236 MB.
Temos 2 discos um em cada diskgroup conforme podemos validar com o comando abaixo.
Abaixo já conseguimos ver que o disco esta visível no ASM mas não esta associado a nenhum diskgroup.
O novo tamanho do diskgroup FRA é 22520 MB e anteriormente era 10236 MB.
Vamos eliminar o disco de emergencia e validar que foi removido o espaço do diskgroup FRA.
Acima validamos que os dois diskgroup estão novamente com o mesmo tamanho.
O script vai ser criado no path “/u01/script/adicionar_disco.sh” e vai ter o conteúdo abaixo.
#!/bin/bash
##Adicionar o disco no diskgroup FRA em caso de problema critical
export ORACLE_SID=+ASM
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/grid
export LD_LIBRARY_PATH=/u01/app/oracle/product/12.1.0/grid/lib
echo "##########################################################"
date >> /u01/script/adicionar_disco.log
echo "Vai adicionar um disco ao diskgroup $1" >> /u01/script/
adicionar_disco.log
disco=$1
/u01/app/oracle/product/12.1.0/grid/bin/asmca -silent -addDisk
-diskGroupName ''"${disco}"'' -disk /dev/oracleasm/disks/EMERGENCIA
echo "############################################################"
>> /u01/script/adicionar_disco.log
Criar um tablespace grande para gerar o alerta
Validar que o script foi executado em resposta ao alerta
Vamos apagar a tablespace e eliminar o disco, para que na próxima vez que o diskgroup encha o script seja ativado e aumente o espaço em disco.
Cassule Camilo Jacinto ossui experiência e profundos conhecimentos em Administração de Bancos de Dados Oracle 10G, 11G12C E Administração de sistemas UNIX.
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.