 |
|
ss
Oracle Tips by Burleson |
Oracle Trace file Alert
Report
This is a great script for instantly
notifying the DBA and developers of the presence of trace files. In
a production environment, this script can be used to alert the DBA
to production aborts, and it is also useful in development
environments, where developers can be e-mailed their trace file
dumps when a program aborts. This script is generally executed every
five minutes.
The trace_alert.ksh script interrogates the
Oracle datafile systems to find the locations of all trace and dump
files. It then checks these directories and e-mails any trace files
to the appropriate staff member. Let’s take a close look at the
steps in this script.
Set the Environment
The first part of the script ensures that a valid ORACLE_SID is
passed to the script:
#!/bin/ksh
#******************************************************
# Exit if no first parameter $1 is passed to script
#******************************************************
if [ -z "$1" ]
then
echo "Usage: trace_alert.ksh <ORACLE_SID>"
exit 99
fi
#******************************************************
# First, we must set the environment . . . .
#******************************************************
ORACLE_SID=$1
export ORACLE_SID
ORACLE_HOME=`cat /var/opt/oracle/oratab|grep $ORACLE_SID:|cut -f2
-d':'`
export ORACLE_HOME
ORACLE_BASE=`echo $ORACLE_HOME | sed -e 's:/product/.*::g'`
export ORACLE_BASE
export DBA=$ORACLE_BASE/admin;
export DBA
PATH=$ORACLE_HOME/bin:$PATH
export PATH
MON=`echo ~oracle/mon`
export MON
Get the Names of Any Recent
Trace or Dump Files
This section issues the UNIX find command to locate any Oracle trace
or dump files that were created in the past day:
#******************************************************
# list the full-names of all possible dump files . . . .
#******************************************************
find $DBA/$ORACLE_SID/bdump/*.trc -mtime -1 -print >> /tmp/trace_list.lst
find $DBA/$ORACLE_SID/udump/*.trc -mtime -1 -print >> /tmp/trace_list.lst
find $ORACLE_HOME/rdbms/log/*.trc -mtime -1 -print >> /tmp/trace_list.lst
E-Mail the Trace Files
This section of the code extracts the first 100 lines of each trace
and dump file and e-mails them to the DBA and developer staff.
#******************************************************
# for each trace file found, send DBA an e-mail message
# and move the trace file to the /tmp directory
#******************************************************
cat /tmp/trace_list.lst|while read TRACE_FILE
do
#***************************************************
# This gets the short file name at the end of the full path
#***************************************************
SHORT_TRACE_FILE_NAME=`echo $TRACE_FILE|awk -F"/" '{ print $NF }'`
#***************************************************
# This gets the file location (bdump, udump, log)
#***************************************************
DUMP_LOC=`echo $TRACE_FILE|awk -F"/" '{ print $(NF-1) }'`
#***************************************************
# send an e-mail to the administrator
#***************************************************
head -100 $TRACE_FILE|\
mailx -s "$ORACLE_SID Oracle trace file at $MYDATE."\
don@remote-dba.net\
terry@oracle.net\
tzu@oracle.com
Download your Oracle scripts now:
www.oracle-script.com
The
definitive Oracle Script collection for every Oracle professional DBA
|
|