oracledba.help
SpecialTopics

File Maintenance (OS Files)

Overview

Should you find that Oracle database's ability to self maintain peripheral logs and files is inadequate this might help. If nothing else you can use this as a fail-safe so your OS volumes do not become full.

Manual script below. For an ADR script example (adr.purge.sh) go here.

One directory that is overlooked is where old patches are stored. You can purge these after the appropriate amount posting patching:
$ORACLE_HOME/.patch_storage

Cron Example (via root)

 OUT=/u01/app/scripts/out
 AUD_DIR_GRID=/u01/app/12.1.0/grid/rdbms/audit
 AUD_DIR_RDBMS=/u01/app/oracle/product/12.1.0.2/db_1/rdbms/audit

 # Daily
 00 05 * * * find $AUD_DIR_GRID  -type f -name '*.aud' -mtime +15 -delete > $OUT/AUD_DIR_GRID.out
 15 05 * * * find $AUD_DIR_RDBMS -type f -name '*.aud' -mtime +15 -delete > $OUT/AUD_DIR_RDBMS.out

Adjust as needed for your environment.

Script Example (Manual)

#!/bin/bash

# User Vars
usrStdRet=35; # Days to retain files, i.e. standard retention.
usrAudRet=7;  # Days to retain Audit files.
usrRmnRet=14; # Days to retain RMAN files.

ORACLE_SID="oradb";
ORACLE_BASE="/u01/app/oracle";
ORACLE_HOME="/u01/app/oracle/product/12.1.0.2/dbhome_1";
GRID_HOME="/u01/app/12.1.0.2/grid";

# Scripts
find /u01/app/scripts/logs                     -type f -name '*.log' -mtime +$usrStdRet -delete
find /u01/app/scripts/tmp                      -type f -name '*.tmp' -mtime +$usrStdRet -delete

# Audit
find $ORACLE_BASE/admin/$ORACLE_SID/adump      -type f -name '*.aud' -mtime +$usrAudRet -delete
find $ORACLE_HOME/rdbms/audit                  -type f -name '*.aud' -mtime +$usrAudRet -delete
find $GRID_HOME/rdbms/audit                    -type f -name '*.aud' -mtime +$usrAudRet -delete

# alert
find $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID1/alert  -type f -name '*.xml' -mtime +$usrStdRet -delete

# trace
find $ORACLE_HOME/network/trace                             -type f -name '*.tr?' -mtime +$usrStdRet -delete
find $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID1/trace -type f -name '*.tr?' -mtime +$usrStdRet -delete
##find $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener/trace   -type f -name '*.tr?' -mtime +$usrStdRet -delete

# lsinv
find $ORACLE_HOME/cfgtoollogs/opatch/lsinv -type f -name 'lsinventory*.txt' -mtime +$usrStdRet -delete
find $GRID_HOME/cfgtoollogs/opatch/lsinv   -type f -name 'lsinventory*.txt' -mtime +$usrStdRet -delete

# Listener
find $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener -type f -name '*.log.[1-9]' -mtime +$usrStdRet -delete

# cvures
##find $ORACLE_BASE/crsdata/@global/cvu/baseline/cvures -type f -name '*.zip' -mtime +$usrStdRet -delete

# gpnp Logs (GRID Environments)
##find /u01/app/grid/12.1.0.2/log/mlblpdnaorav01/client -type f -name '*.log' -mtime +$usrStdRet -delete

# RMAN
find /u03/rman/$ORACLE_SID -type f -name '*.bkp' -mtime +$usrRmnRet -delete