Oracle RMAN增量备份脚本
转载请注明文章转载自: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-
上一篇: Linux下screen乱码问题解决
下一篇:Nagios监控软件配置