#!/bin/ksh # # Author: Todd Barbera # Date: 12/29/05 # Purpose: Verify that the database is running in archive log mode # Acknowledgements: Oracle home code repurposed from check_oracle # PROGNAME=`basename $0` PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` REVISION=`echo '$Revision: 1.14 $' | sed -e 's/[^0-9.]//g'` . $PROGPATH/utils.sh print_usage() { echo "Usage: check_archiving " echo "User must have access to query v\$database" } # Make sure the correct number of command line # arguments have been supplied if [ $# -lt 3 ]; then print_usage exit $STATE_UNKNOWN fi # Hunt down a reasonable ORACLE_HOME if [ -z "$ORACLE_HOME" ] ; then # Adjust to taste for oratab in /var/opt/oracle/oratab /etc/oratab do [ ! -f $oratab ] && continue ORACLE_HOME=`IFS=: while read SID ORACLE_HOME junk; do if [ "$SID" = "$2" -o "$SID" = "*" ] ; then echo $ORACLE_HOME; exit; fi; done < $oratab` [ -n "$ORACLE_HOME" ] && break done fi # Last resort [ -z "$ORACLE_HOME" -a -d $PROGPATH/oracle ] && ORACLE_HOME=$PROGPATH/oracle if [ -z "$ORACLE_HOME" -o ! -d "$ORACLE_HOME" ] ; then echo "Cannot determine ORACLE_HOME for sid $2" exit $STATE_UNKNOWN fi PATH=$PATH:$ORACLE_HOME/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export ORACLE_HOME PATH LD_LIBRARY_PATH # Check archving state result=`sqlplus -s ${1}/${2}@${3} << EOF select log_mode from V\\$DATABASE; EOF` archstate=`echo "$result"| awk '/ARCHIVELOG/ {print $1}'` if [ "$archstate" == "ARCHIVELOG" ] ; then echo Archiving for $3 is on. exit $STATE_OK else echo Warning! Archiving for $3 is off. exit $STATE_WARNING fi