rman 备份执行脚本
rman 基于块备份
#! /bin/bash
#
# LEVEL0 包含自動刪除archivelog并記錄相關日志
#
# crontab -l
# 0 2 * * * /home/oracle/autojobs/lunch_rman.sh 2>&1 >>/tmp/lunch_rman.log
#
#------------------------------------------------------------------
. ~/.bash_profile
LOGDIR=/home/oracle/autojobs/logs
WORKDIR=/home/oracle/autojobs
DATE=`date +"%F_%H-%M"`
LOGFILE="$LOGDIR"/"Level0_${DATE}.log"
BAKDIR=/mnt/backup/backup
cd $WORKDIR
echo -e " E[32m BACKUP DATABASE LEVEL=0 ---> Starting... "
sleep 1
echo -e " ."
sleep 0.5
echo -e " .."
sleep 0.5
echo -e " ..."
if [ -e $BAKDIR ]; then
rman target / @rman_auto_backup.sh > $LOGFILE 2>&1
else
echo "Failed, check SMB mount."
exit
fi
df -h >> $LOGFILE
echo -e " E[32m* BACKUP DATABASE LEVEL=0 ---> Done *"
grep -i fail $LOGFILE
if [ $? != 0 ]; then
echo " BACKUP DATABASE IS OK [ ^_^ ]!"
else
echo " SORRY, IT'S FAIL! CHECK IT PLEASE. [ ^_^|| ]"
fi
tput sgr0
rman备份脚本,包含备份控制文件,归档日志,删除过期备份,清理归档
#==================================================================
# 自動創建Database + Archivelog + Controlfile至本地硬盤的備份
# use double channel!
#
#==================================================================
run {
show all;
allocate channel t1 type disk;
allocate channel t2 type disk;
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog all completed before 'sysdate-7';
crosscheck backup;
delete noprompt expired backup;
sql 'alter system archive log current';
backup as compressed backupset incremental level 0 database format '/mnt/backup/backup/full_%d_%T_%s_%p' plus archivelog format '/mnt/backup/backup/arch_%d_%T_%s_%p';
backup current controlfile format '/mnt/backup/backup/ctrl_%d_%T_%s_%p';
report obsolete;
delete noprompt obsolete;
release channel t1;
release channel t2;
}