Shell-rman script

来源:互联网 发布:2017淘宝内容营销 编辑:程序博客网 时间:2024/04/30 01:08
[oracle@dev121 ~]$ cat /backup/script/incremental_backup.sh########################################################################incremental__backup.sh                ## created by Tianlesoftware  ##  modify by Gabriel                ##       2011-04-22                  ##########################################################################!/bin/bash#export LANG=en_USsource /home/oracle/.bash_profileBACKUP_DATE=`date +%Y%m%d`RMAN_LOG_FILE=/backup/script/"$BACKUP_DATE".logTODAY=`date`USER=`id|cut -d "(" -f2|cut -d ")" -f1`echo "-----------------$TODAY-------------------">$RMAN_LOG_FILE#ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1#export ORACLE_HOMERMAN=$ORACLE_HOME/bin/rmanexport RMAN#ORACLE_SID=orcl#export ORACLE_SIDORACLE_USER=oracleexport ORACLE_USERecho "ORACLE_SID: $ORACLE_SID">>$RMAN_LOG_FILEecho "ORACLE_HOME:$ORACLE_HOME">>$RMAN_LOG_FILEecho "ORACLE_USER:$ORACLE_USER">>$RMAN_LOG_FILEecho "==========================================">>$RMAN_LOG_FILEecho "BACKUP DATABASE BEGIN......">>$RMAN_LOG_FILEecho "                  ">>$RMAN_LOG_FILEchmod 666 $RMAN_LOG_FILEWEEK_DAILY=`date +%a`case "$WEEK_DAILY" in      "Mon")           BAK_LEVEL=2           ;;      "Tue")           BAK_LEVEL=2           ;;      "Wed")           BAK_LEVEL=2           ;;      "Thu")           BAK_LEVEL=1           ;;      "Fri")           BAK_LEVEL=2           ;;      "Sat")           BAK_LEVEL=2           ;;      "Sun")           BAK_LEVEL=0           ;;      "*")           BAK_LEVEL=erroresacexport BAK_LEVEL=$BAK_LEVELecho "Today is : $WEEK_DAILY incremental level= $BAK_LEVEL">>$RMAN_LOG_FILE#RUN_STR="#BAK_LEVEL=$BAK_LEVEL#export BAK_LEVEL#ORACLE_HOME=$ORACLE_HOME#export ORACLE_HOME#ORACLE_SID=$ORACLE_SID#export ORACLE_SID$RMAN TARGET / msglog $RMAN_LOG_FILE append <<EOFrun{allocate channel c1 type disk;allocate channel c2 type disk;backup incremental level= $BAK_LEVEL skip inaccessible filesperset 5 Database format='/backup/rmanback/${ORACLE_SID}_lev${BAK_LEVEL}_%U_%T' tag='orcl_lev${BAK_LEVEL}' ;sql 'alter system archive log current';backup archivelog all tag='arc_bak' format='/backup/rmanback/arch_%U_%T' skip inaccessible filesperset 5 not backed up 1 times delete input;backup current controlfile tag='bak_ctlfile' format='/backup/rmanback/ctl_file_%U_%T';backup spfile tag='spfile' format='/backup/rmanback/${ORACLE_SID}_spfile_%U_%T';release channel c2;release channel c1;}allocate channel for maintenance device type disk;report obsolete;crosscheck backup;crosscheck archivelog all;delete noprompt expired backup;delete noprompt obsolete;delete noprompt backup of database completed before 'sysdate -7';delete noprompt archivelog all;delete noprompt backup of archivelog all completed before 'sysdate -7';list backup summary;release channel;EOFRSTAT=$?#allocate channel for maintenance device type disk;#report obsolete;#delete noprompt obsolete;#crosscheck backup;#delete noprompt expired backup;#list backup summary;#release channel;#"#if the rman using catalog you must add the line in the end of RUN_STR#resync catalog; # Initiate the command string#if [ "$CUSER" = "root" ]#then#   echo "Root Command String: $RUN_STR" >> $RMAN_LOG_FILE#   su - $ORACLE_USER -c "$RUN_STR" >> $RMAN_LOG_FILE#   RSTAT=$?#else#   echo "User Command String: $RUN_STR" >> $RMAN_LOG_FILE#   /bin/sh -c "$RUN_STR" >> $RMAN_LOG_FILE#   RSTAT=$?#fi# ---------------------------------------------------------------------------# Log the completion of this script.# ---------------------------------------------------------------------------if [ "$RSTAT" = "0" ]then   LOGMSG="ended successfully"else   LOGMSG="ended in error"fiecho >> $RMAN_LOG_FILEecho Script. $0 >> $RMAN_LOG_FILEecho ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILEecho >> $RMAN_LOG_FILE#/bin/mailx -s "RMAN Backup SID " @sf-express.com < $RMAN_LOG_FILEexit $RSTAT[oracle@dev121 ~]$ crontab -l30 0 * * * /backup/script/incremental_backup.sh >/dev/null 2>&1 &

原创粉丝点击