In Part 1 we have discussed how to derive ORACLE_HOME, ORACLE_SID etc from oratab file located at /etc/oratab (in AIX/LINUX) /var/opt/oratab (in Solaris). we will derive some more environment variables from the oratab file.
See also: DBA Tips and Tricks - Part 3
See also: DBA Tips and Tricks - Part 3
[oracle@usha /]$ echo ORACLE_HOME=`cat /etc/oratab |egrep ':N|:Y'|cut -f2 -d':'` ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 [oracle@usha /]$ echo DBA=`echo $ORACLE_HOME|sed -e 's:/product/.*::g'`/admin DBA=/u01/app/oracle/admin [oracle@usha /]$ Now lets write a shell script that loops into admin and all its subdirectories and delete all files older than 7 days. (Oracle 10 g version) #!/bin/bash for ORACLE_SID in `cat /etc/oratab |egrep ':N|:Y'|grep -v \*|cut -f1 -d':'` do ORACLE_HOME= `cat /etc/oratab |egrep ':N|:Y'|grep -v \*|cut -f2 -d':'` DBA=`echo $ORACLE_HOME|sed -e 's:/product/.*::g'`/admin # Delete all .trc files from bdump directory older than 14 days find $DBA/$ORACLE_SID/bdump -name \*.trc -mtime +14 -exec rm {} \; find $DBA/$ORACLE_SID/udump -name \*.trc -mtime +14 -exec rm {} \; find $ORACLE_HOME/rdbms/audit -name \*.aud -mtime +14 -exec rm {} \; done Now lets write a shell script that loops into admin and all its subdirectories and delete all files older than 7 days. (Oracle 11 g version). In Oracle 11g, Oracle introduced ADR and all Diagnostic files are created under ADR BASE Directory. Please visit ADR page to learn about ADR . SQL> select name,value from v$diag_info; NAME VALUE -------------------------------- ------------------------------------------------------------ Diag Enabled TRUE ADR Base /u01/app/oracle ADR Home /u01/app/oracle/diag/rdbms/testdb/DB11G Diag Trace /u01/app/oracle/diag/rdbms/testdb/DB11G/trace Diag Alert /u01/app/oracle/diag/rdbms/testdb/DB11G/alert Diag Incident /u01/app/oracle/diag/rdbms/testdb/DB11G/incident Diag Cdump /u01/app/oracle/diag/rdbms/testdb/DB11G/cdump Health Monitor /u01/app/oracle/diag/rdbms/testdb/DB11G/hm Default Trace File /u01/app/oracle/diag/rdbms/testdb/DB11G/trace/DB11G_ora_22158.trc #!/bin/bash for ORACLE_SID in `cat /etc/oratab |egrep ':N|:Y'|grep -v \*|cut -f1 -d':'` do ORACLE_HOME= `cat /etc/oratab |egrep ':N|:Y'|grep -v \*|cut -f2 -d':'` ADR_HOME=`echo $ORACLE_HOME|sed -e 's:/product/.*::g'`/diag/rdbms/testdb/DB11G # Delete all .trc files from bdump directory older than 14 days find $ADR_HOME/trace -name \*.trc -mtime +14 -exec rm {} \; find $ADR_HOME/trace -name \*.trm -mtime +14 -exec rm {} \; find $ADR_HOME/alert -name \*.xml -mtime +14 -exec rm {} \; find $ADR_HOME/incident -name \*.inc -mtime +14 -exec rm {} \; find $ADR_HOME/cdump -name \*.dmp -mtime +14 -exec rm {} \; done |