[OCI] housekeeping /u01

David SanzDavid Sanz
2 min read

Os comparto un script sencillo para tener controlado /u01, lo bueno del script es que cuando entra a realizar tareas de limpieza en /u01, nos mandara la siguiente alerta al correo, con el tamaño anterior y actual de realizar la limpieza

Este sería el código del script

#!/bin/bash
# DSM NTTDATA-DBA

. /home/oracle/.bashrc

NAME=`df -h | grep u01 | awk '{print $6}'`
USE=`df -h | grep u01 | awk '{print $5}' | sed -r 's/%//g'`
ADRCI_LOG="adrci_"`date +%Y%m%d%H%M%S`".log"
TODAY=$(date '+%Y-%m-%d %H:%M:%S')

# 5 sera el numero de dias que queremos mantener a nivel de trace
PURGE=$(expr 5 \* 24 \* 60)

if [[ ${USE} -gt 80 ]]
then

lanza_sqlplus() {
    sqlplus -s ${VUSER}/${VPASS}@${LOCAL_SID} <<EOF
    set lines 200 pages 9000
    set termout off
    set heading off
    ${SQL}
    EXIT;
EOF
}
      SQL=$(cat <<EOF
        Select Value||chr(47) From V\$diag_Info Where Name='ADR Base'
         ;
EOF
)
    set __ $(lanza_sqlplus)
    ADRCI_BASE=${2}

      SQL=$(cat <<EOF
        Select Replace( Value, (Select Value || Chr(47) From V\$diag_Info Where Name='ADR Base'),'')  Value
          From V\$diag_Info Where Name='ADR Home'
         ;
EOF
)
   set __ $(lanza_sqlplus)
   ADRCI_HOME=${2}

   echo "Base " ${ADRCI_BASE} " home " ${ADRCI_HOME}

   adrci exec="set echo ON; spool ${P_RAIZ}/log/${ADRCI_LOG} append; set base ${ADRCI_BASE}; set homepath ${ADRCI_HOME}; purge -age ${PURGE}" >>  ${P_RAIZ}/log/${ADRCI_LOG}

   USE_ACTUAL=`df -h | grep u01 | awk '{print $5}' | sed -r 's/%//g'`

   printf "Mantenimient ${NAME}\nSize Ant=${USE}\nAct=${USE_ACTUAL}"  | mailx -s "[XXXX][XXXX] Mantenimiento ${NAME} with more ${USE} - ${TODAY}." ${EMAIL}


  fi

Para que sea más fácil la descarga, lo he dejado subido en github.

dbaenlasombra/MonitoreU01

Ahora solo faltaría planificarlo en cron. En mi caso lo dejo definido para que se ejecute cada hora.

[oracle@ scripts]# crontab -l
 0 * * * * /home/oracle/scripts/check_u01.sh

Listo. ¡Espero que os sirva!

1
Subscribe to my newsletter

Read articles from David Sanz directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

David Sanz
David Sanz

Soy desarrollador, Analista, DBA Oracle y Arquitecto OCI, certificado en OCI Migration and Integration Certified Professional y Certified Architect Associate con más de 15 años de experiencia en plataformas Oracle además de especialista en temas de rendimiento.