[OCI] housekeeping /u01
![[OCI] housekeeping /u01](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1732528944736%2Fc0698004-54ee-4d14-903f-ceccbfd84ffc.jpeg&w=3840&q=75)
Ingeniero informático, Oracle ACE, DBA y Arquitecto OCI, con más de 15 años de experiencia en plataformas Oracle. Certificado en OCI Certified Architect Professional y OCI Migration and Integration Certified Professional.
Search for a command to run...
![[OCI] housekeeping /u01](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1732528944736%2Fc0698004-54ee-4d14-903f-ceccbfd84ffc.jpeg&w=3840&q=75)
Ingeniero informático, Oracle ACE, DBA y Arquitecto OCI, con más de 15 años de experiencia en plataformas Oracle. Certificado en OCI Certified Architect Professional y OCI Migration and Integration Certified Professional.
No comments yet. Be the first to comment.
Os paso un pequeño script que tengo de monitorización de tareas de OCI erróneas. Este script se ejecuta diariamente y lo que hace es consultar si ha habido tareas erróneas el día anterior. En caso que encuentre tareas erróneas, te índice que hilos ha...
En el artículo de hoy vamos a ver las Calendar functions en 26ai, diseñadas para simplificar la "vida" a los desarrolladores. Antes de su existencia, esto se resolvía con ingeniosas combinaciones usan
![[26ai] SQL: Calendar functions/Aggregation Filters "CALENDAR"](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F587e3328-9877-4c7a-aad7-7811e251f81e.png&w=3840&q=75)
En el artículo de hoy vamos a ver como podemos recrear una PDB$Seed de manera fácil en caso que se quede corrupta y no tengamos backup. sys@> alter pluggable database PDB$SEED open read only; alter pl
![[OCI] Recreación PDB$SEED](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F289ede5b-558c-4f93-b5c0-fa04680c91ca.png&w=3840&q=75)
El artículo también se encuentra publicado en Ingles English version. En el artículo de hoy vamos a ver como podemos clonar una PDB usando RMAN Active Duplicate o bien usando una instrucción DDL entre
![[OCI] Clone PDB](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F8ce0c665-4a5d-459d-91cf-ffe3f47d8176.png&w=3840&q=75)
El artículo también se encuentra publicado en Ingles English version. En el artículo de hoy voy a compartir un sh que utilizo para ver de una manera rápida los jobs que se ejecutan desde Oracle Databa
![[OCI] Check Jobs DBCli](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F1376a869-58fa-491e-926a-a6ead08f9c80.png&w=3840&q=75)
El artículo también se encuentra publicado en Ingles English version. En el artículo de hoy vamos a ver la nueva sintaxis introducida para simplificar aún más los joins evitando errores comunes, hacie
![[26ai] JOIN_TO_ME](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F16a23f6e-ec4c-4f0a-9529-2c8a2af2ef5e.png&w=3840&q=75)
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.
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!