Oracle script: Log gathering via adcri

In the implementation of a new system wide monitoring tool, it became apparent the tool was not flexible enough to find the alert log and listener log files in non-default locations.  Below are examples of the shell and perl script used in place for monitoring and gathering ad hoc.  They will probably be most useful in quickly gathering log data to upload to Oracle support without running a full RDA script.  Before implementing confirm your $ORACLE_HOMEs are all registered in adcri and visible.  Just invoke adcri and at the prompt enter ‘show homes’ without the quotes.

 

The shell script portion, self explanatory:

#!/bin/sh

export ORACLE_SID=ORCL
export ORACLE_HOME=`grep “^$ORACLE_SID” /etc/oratab | cut -f2 -d”:”`
export PATH=$ORACLE_HOME/bin:$PATH

adrci <<EOF > /dev/null
spool adrciout.$$
show homes
EOF

./getdiag.pl adrciout.$$

rm adrciout.$$

 

In the same working directory, create this perl script as getdiag.pl:

#!/usr/bin/perl

while (<>) {
chomp;

if ((m/client/) || (m/ADR Home/))
{
}

else {
($v1,$v2,$v3,$thing) =split “/”,$_;

if (m/listener/) {
print “Diag log is at $ENV{ORACLE_BASE}/$_/trace/$thing.log\n”;
}
else {
print “Diag log is at $ENV{ORACLE_BASE}/$_/trace/alert_$thing.log\n”;
}
}
}

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s