#! /bin/ksh export ORACLE_SID=$1 [ ! -d "$2" ] && exit 1; MIREP=$2 if [ ! -z $3 ];then RETENTION=$3 else RETENTION=1 fi MIPATH=`dirname $0` MIDATE=`date +%Y%m%d_%H%M%S` MILOG="$MIPATH/backup_${ORACLE_SID}_${MIDATE}.log" rman target / << EOF$ORACLE_SID |tee $MILOG CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '$MIREP/%F'; configure retention policy to recovery window of $RETENTION days; run { allocate channel c2 type disk; allocate channel c1 type disk; backup incremental level 0 tag db_0 filesperset 10 format '$MIREP/db_0_${MIDATE}_%d_s%s_p%p' (database include current controlfile); sql 'alter system archive log current'; backup filesperset 50 format '$MIREP/arch_${MIDATE}_%d_s%s_p%p' archivelog all; delete noprompt archivelog until time 'sysdate - $RETENTION'; release channel c2 ; release channel c1 ; sql "alter database backup controlfile to ''$MIREP/control_sav_${MIDATE}.ctl'' reuse"; } crosscheck backup; delete noprompt obsolete; EOF$ORACLE_SID NBERR=`grep -c "RMAN-00569" $MILOG` if [ $NBERR -eq 0 ];then for i in `find $MIREP -mtime +$RETENTION` do [ ! -d $i ] && rm $i done echo "Fin normale du backup de $ORACLE_SID" |tee -a $MILOG else echo "erreur(s) detectees lors du backup de $ORACLE_SID" |tee -a $MILOG fi exit $NBERR