Oracle RMAN增量备份脚本

At 2011-07-18

转载请注明文章转载自:Dbabc.Net [http://dbabc.net]
本文链接:http://dbabc.net/archives/2011/07/18/oracle-rman_incremental_shell.shtml

Linux平台下Oracle RMAN增量备份脚本,并实现备份完成之后自动发送mail,并在mail的后面附加了磁盘信息,能够及时关注磁盘的信息,以下是0级增量脚本,1级和2级增量脚本直接修改RMAN_LEVEL变量就好了。其中发送mail是通过sendEmail实现的。
其中sendEmail的官方网站为:http://caspian.dotconf.net/menu/Software/SendEmail/

#!/bin/bash
# RMAN SCRIPTS rmanl0.sh
# by Liups 2011/07/06
# http://dbabc.net
# User specific environment and startup programs

if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi

#nsf mount rman begin
#mount -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 nfs_ip:/nfs_dir/ /localdir/
#nfs mount rman end
#mount -t iso9660 -o loop rhel4u8x64.iso ./isomt/

HOST_IP=10.11.12.13;export HOST_IP
TIMESTAMP=`date +%Y%m%d%H%M`;export TIMESTAMP
DATE=`date +%Y%m%d`;export DATE
RMAN_DIR=/db_bak/$HOST_IP;export RMAN_DIR
RMAN_DATA=${RMAN_DIR}/${DATE};export RMAN_DATA
RMAN_LOG=$RMAN_DATA/log;export RMAN_LOG
RMAN_LEVEL=0;export RMAN_LEVEL
BACKUP_TYPE=l${RMAN_LEVEL};export BACKUP_TYPE
RMAN_FILE=${RMAN_DATA}/${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP};export RMAN_FILE
SSH_LOG=${RMAN_LOG}/${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}.log;export SSH_LOG
MAXPIECESIZE=8G;export MAXPIECESIZE
DBAEMAIL=dba@dbabc.net,dba2@dbabc.net;export DBAEMAIL
BCCEMAIL=bccdba@dbabc.net;export BCCEMAIL
EMAILPWD=password;export EMAILPWD

#Check RMAN Backup Path

if ! test -d ${RMAN_DATA}
then
mkdir -p ${RMAN_DATA}
fi

if ! test -d ${RMAN_LOG}
then
mkdir -p ${RMAN_LOG}
fi

echo "---------------------------------" >>${SSH_LOG}
echo "   " >>${SSH_LOG}
echo "Rman Begin  to Working ........." >>${SSH_LOG}
echo "Begin time at:" `date` --`date +%Y%m%d%H%M` >>${SSH_LOG}

$ORACLE_HOME/bin/rman log=${RMAN_FILE}.log <<EOF
connect target /
run {
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '${RMAN_FILE}_%F';
ALLOCATE CHANNEL 'dev1' TYPE DISK maxpiecesize=${MAXPIECESIZE};
CROSSCHECK ARCHIVELOG ALL;
DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
BACKUP INCREMENTAL LEVEL ${RMAN_LEVEL} DATABASE FORMAT '${RMAN_FILE}_%U' TAG '${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}'
PLUS ARCHIVELOG FORMAT '${RMAN_FILE}_arc_%U' TAG '${ORACLE_SID}_arc_${TIMESTAMP}'
DELETE  INPUT;
DELETE NOPROMPT OBSOLETE;
RELEASE CHANNEL dev1;
}
exit;
EOF
RC=$?

cat ${RMAN_FILE}.log >>${SSH_LOG}
echo "Rman Stop working @ time:"`date` `date +%Y%m%d%H%M` >>${SSH_LOG}

echo "------------------------" >>${SSH_LOG}
echo "------ Disk Space ------" >>${SSH_LOG}
df -h >>${SSH_LOG}

if [ $RC -ne "0" ]; then
echo "------ error ------" >>${SSH_LOG}
/usr/local/bin/sendEmail -f ${DBAEMAIL} -t ${DBAEMAIL} -bcc ${BCCEMAIL}-s smtp.dbabc.net -u "${HOST_IP}_${ORACLE_SID}_${BACKUP_TYPE}_RMAN_BACKUP_Failed"  -o message-file=${SSH_LOG} -xu "${DBAEMAIL} " -xp "${EMAILPWD}"
else
echo "------ no error ------" >>${SSH_LOG}
/usr/local/bin/sendEmail -f ${DBAEMAIL}  -t ${DBAEMAIL}  -bcc ${BCCEMAIL} -s smtp.dbabc.net -u "${HOST_IP}_${ORACLE_SID}_${BACKUP_TYPE}_RMAN_BACKUP_Successful"  -o message-file=${SSH_LOG} -xu "${DBAEMAIL}" -xp "${EMAILPWD}"
rm -rf ${RMAN_FILE}.log
fi
exit

无觅相关文章插件,快速提升流量

Copyright © Dbabc.Net All Rights Reserved. 本站内容仅代表个人观点, 与其他任何组织或公司无关

-The End-

发表评论


*

为你保密









Copyright © Dbabc.Net All Rights Reserved. 本站内容仅代表个人观点, 与其他任何组织或公司无关

Powered by Wordpress and Theme by WPYOU