I have been working on simplifying, perfecting, and comparing RMAN backup scripts.
The typical diff file1 file2 was not useful as I wanted a complete picture.
Look at what I found!
$ diff -iwyB --suppress-common-lines -W 150 rman_bkupinc.sh rman_bkuparc.sh;echo # RMAN database incremental backup | # RMAN archivelog backup # rman_bkupinc.sh | # rman_bkuparc.sh # Shell script calls bkupinc.rman at at SCRIPT_DIR location | # Shell script calls bkuparc.rman at at SCRIPT_DIR location SID=${1:?"---> USAGE: $DN/$BN -ORACLE_SID -LEVEL"} | SID=${1:?"---> USAGE: $DN/$BN -ORACLE_SID"} LVL=${2:?"---> USAGE: $DN/$BN -ORACLE_SID -LEVEL"} < DAY=`date '+%bW%U'` | DAY=`date '+%aH%H'` RMAN_LOG=$LOG_DIR/`echo $BN|cut -d'.' -f1`.$ORACLE_SID.L$2.$DAY.log | RMAN_LOG=$LOG_DIR/`echo $BN|cut -d'.' -f1`.$ORACLE_SID.$DAY.log rman @${RMAN_SCRIPT} ${LVL} msglog $RMAN_LOG | rman @${RMAN_SCRIPT} msglog $RMAN_LOG $ diff -iwy -W 150 rman_bkupinc.sh rman_bkuparc.sh;echo #!/bin/sh -ex #!/bin/sh -ex # Michael Dinh: Mar 03, 2016 # Michael Dinh: Mar 03, 2016 # RMAN database incremental backup | # RMAN archivelog backup # rman_bkupinc.sh | # rman_bkuparc.sh # Shell script calls bkupinc.rman at at SCRIPT_DIR location | # Shell script calls bkuparc.rman at at SCRIPT_DIR location DN=`dirname $0` DN=`dirname $0` BN=`basename $0` BN=`basename $0` SID=${1:?"---> USAGE: $DN/$BN -ORACLE_SID -LEVEL"} | SID=${1:?"---> USAGE: $DN/$BN -ORACLE_SID"} LVL=${2:?"---> USAGE: $DN/$BN -ORACLE_SID -LEVEL"} < set -a set -a ### Edit for proper location ### Edit for proper location SCRIPT_DIR=/media/sf_working/rman SCRIPT_DIR=/media/sf_working/rman LOG_DIR=/tmp LOG_DIR=/tmp PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin LD_LIBRARY_PATH=/lib:/usr/lib LD_LIBRARY_PATH=/lib:/usr/lib ### Edit resync_catalog.rman ### Edit resync_catalog.rman ### Uncomment if catalog is being used ### Uncomment if catalog is being used # RESYNC_CATALOG=$SCRIPT_DIR/resync_catalog.rman # RESYNC_CATALOG=$SCRIPT_DIR/resync_catalog.rman ORACLE_SID=$1 ORACLE_SID=$1 ORAENV_ASK=NO ORAENV_ASK=NO . oraenv . oraenv NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS" NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS" DAY=`date '+%bW%U'` | DAY=`date '+%aH%H'` RMAN_SCRIPT=$SCRIPT_DIR/`echo $BN|cut -d'.' -f1|cut -c6-`.rman RMAN_SCRIPT=$SCRIPT_DIR/`echo $BN|cut -d'.' -f1|cut -c6-`.rman RMAN_LOG=$LOG_DIR/`echo $BN|cut -d'.' -f1`.$ORACLE_SID.L$2.$DAY.log | RMAN_LOG=$LOG_DIR/`echo $BN|cut -d'.' -f1`.$ORACLE_SID.$DAY.log TMPLOG=/tmp/`echo $BN|cut -d'.' -f1`_$ORACLE_SID.log TMPLOG=/tmp/`echo $BN|cut -d'.' -f1`_$ORACLE_SID.log ERRLOG=/tmp/`echo $BN|cut -d'.' -f1`_$ORACLE_SID.err ERRLOG=/tmp/`echo $BN|cut -d'.' -f1`_$ORACLE_SID.err set +a set +a # Lock file # Lock file exec 200>/tmp/$BN.lck exec 200>/tmp/$BN.lck flock -n 200 || exit 1 flock -n 200 || exit 1 # RMAN archivelog backup # RMAN archivelog backup rman @${RMAN_SCRIPT} ${LVL} msglog $RMAN_LOG | rman @${RMAN_SCRIPT} msglog $RMAN_LOG ### Uncomment if catalog is being used ### Uncomment if catalog is being used # rman @${RESYNC_CATALOG} msglog $RMAN_LOG append # rman @${RESYNC_CATALOG} msglog $RMAN_LOG append cp -v $RMAN_LOG $TMPLOG cp -v $RMAN_LOG $TMPLOG egrep -i '^rman-|^ora-|error|fail' $RMAN_LOG > $ERRLOG egrep -i '^rman-|^ora-|error|fail' $RMAN_LOG > $ERRLOG exit exit $ ll /tmp/rman*.* -rw-r--r--. 1 oracle oinstall 0 Mar 3 17:19 /tmp/rman_bkuparc_hawklas.err -rw-r--r--. 1 oracle oinstall 7910 Mar 3 17:19 /tmp/rman_bkuparc_hawklas.log -rw-r--r--. 1 oracle oinstall 7910 Mar 3 17:19 /tmp/rman_bkuparc.hawklas.ThuH17.log -rw-r--r--. 1 oracle oinstall 0 Mar 3 17:19 /tmp/rman_bkuparc.sh.lck -rw-r--r--. 1 oracle oinstall 0 Mar 3 19:20 /tmp/rman_bkupinc_hawklas.err -rw-r--r--. 1 oracle oinstall 15315 Mar 3 19:20 /tmp/rman_bkupinc.hawklas.L1.MarW09.log -rw-r--r--. 1 oracle oinstall 15315 Mar 3 19:20 /tmp/rman_bkupinc_hawklas.log -rw-r--r--. 1 oracle oinstall 0 Mar 3 19:20 /tmp/rman_bkupinc.sh.lck
