Comandos utiles para hacer limpieza en Oracle sobre UNIX

Todos sabemos que para administrar una base de datos Oracle sobre UNIX necesitamos obligatoriamente tener cierto control sobre el sistema operativo, y poder mantener «la casa ordenada» en la cual vive nuestra base de datos.

Uno de las labores que normalmente los ingenieros de sistemas delegan a los DBAs es que se hagan cargo de sus filesystems (filesystem con owner oracle), entonces necesitaremos por ejemplo buscar los logs que crecen, los archivos que han crecido demasiado y quiza no son parte de Oracle, core dump y otros.

Para esto usemos lo siguiente :

1) Buscar archivos grandes (sobre 2MB)

# para esto usaremos el comando find con parametros, y salida la ordenaremos de forma numérica por tamaño :

find / -size +2000 -exec ls -s {} ; | sort -nr >large_files.out

# Un ejemplo del archivo generado sería:

cat large_files.out

18916604 /home/jacevedofl/.VirtualBox/HardDisks/Winblows XP.vdi

12835276 /oracle/_.VirtualBox/.VirtualBox/HardDisks/Winblows XP.vdi

9727424 /media/MEDIA XPORT/TRAINING/_D17092GC31 – Oracle Database 10g Administration Workshop II/Red Hat Enterprise Linux 3.vmdk

2819526 /media/MEDIA XPORT/TRAINING/_D17276GC2_Oracle10gRAC/medios/RAC_medios.iso

2165700 /media/MEDIA XPORT/Downloads_WIN/Pinnacle.Studio.12.Ultimate.MULTI-HiRO/Pinnacle.Studio.12.iso

2) los logs mas usados y que crecen con mayor frecuencia en Oracle son :
Listener.log
Alert.log
y para buscarlos podemos abstraernos de las variables $ORACLE_HOME y buscarlos usando el sistema operativo:
find . -name  «listener*.log»
find . -name «*${ORACLE_SID}*.log»
3)  Coredumps
Normalmente los coredump causados por el usuario Oracle  quedan en el HOME o bien
se generan en el USER_DUMP_DEST, y para verificarlos usaremos :
ls -ltr $HOME/core*
y
sqlplus «/ as sysdba»
SQL> show parameters USER_DUMP_DEST
name                               value
———————      ——————————————–
user_dump_dest      /oracle10g/rdbms/orcl/orcl/trace

exit

luego nos dirigiremos al folder indicado en el parámetro dentro de la base de datos , y listamos los archivos en orden de creación y tamaño :
cd  /oracle10g/rdbms/orcl/orcl/trace
ls -ltr | sort -nr
y luego simplemente a borrar.
NOTA: Cabe destacar que el parámetros que usamos en 10g esta discontinuado en 11g, asi es como pueden
verificarlo:
SELECT isdeprecated,name,value FROM v$parameter WHERE name like '%dump_dest%';
y obtendran (maquina virtual con 11g y Windows):

TRUE 	background_dump_dest	c:orcl11gdbdiagrdbmsorclwnorclwntrace
TRUE 	user_dump_dest  	c:orcl11gdbdiagrdbmsorclwnorclwntrace
FALSE	core_dump_dest	        c:orcl11gdbdiagrdbmsorclwnorclwncdump
y estos parámetros DUMP fueron reemplazados por uno solo llamado DIAGNOSTIC_DEST, la cual es
una Feature que viene activada por defecto.
atte.
Jorge