##################################################################
##    rman_backup.sh               ##
##    created by cndba.cn                 ##
##        2016-1-11                         ##
##################################################################
#!/bin/ksh 
export
BACKUP_DATE=`date +%d`
RMAN_LOG_FILE=${0}.out
TODAY=`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_HOME
RMAN=$ORACLE_HOME/bin/rman
export RMAN
ORACLE_SID=dave
export ORACLE_SID
ORACLE_USER=oracle
export ORACLE_USER
echo "ORACLE_SID: $ORACLE_SID">>$RMAN_LOG_FILE
echo "ORACLE_HOME:$ORACLE_HOME">>$RMAN_LOG_FILE
echo "ORACLE_USER:$ORACLE_USER">>$RMAN_LOG_FILE
echo "==========================================">>$RMAN_LOG_FILE
echo "BACKUP DATABASE BEGIN......">>$RMAN_LOG_FILE
echo "                   ">>$RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
WEEK_DAILY=`date +%a`
case  "$WEEK_DAILY" in
       "Mon")
            BAK_LEVEL=1
            ;;
       "Tue")
            BAK_LEVEL=1
            ;;
       "Wed")
            BAK_LEVEL=1
            ;;
       "Thu")
            BAK_LEVEL=1
            ;;
       "Fri")
            BAK_LEVEL=1
            ;;
       "Sat")
            BAK_LEVEL=1
            ;;
       "Sun")
            BAK_LEVEL=0
            ;;
       "*")
            BAK_LEVEL=error
esac
export BAK_LEVEL=$BAK_LEVEL 
echo "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 nocatalog TARGET / msglog $RMAN_LOG_FILE append <<EOF
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup  incremental level= $BAK_LEVEL  skip inaccessible filesperset 6 Database format='/u01/backup/dave_lev"$BAK_LEVEL"_%U_%T'  tag='dave_lev"$BAK_LEVEL"';
sql 'alter system archive log current';
backup archivelog all tag='arc_bak' format='/u01/backup/arch_%U_%T' skip inaccessible  filesperset 6 not  backed up 1 times  delete input;
backup current controlfile tag='bak_ctlfile' format='/u01/backup/ctl_file_%U_%T';
backup spfile tag='spfile' format='/u01/backup/dave_spfile_%U_%T';
release channel c2;
release channel c1;
release channel c3;
release channel c4;
}
allocate channel for maintenance device type disk; 
report obsolete; 
delete noprompt obsolete; 
crosscheck backup; 
delete noprompt expired backup;
list backup summary; 
release channel;
EOF
"
# 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" 
fi 
echo >> $RMAN_LOG_FILE 
echo Script $0 >> $RMAN_LOG_FILE 
echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE 
echo >> $RMAN_LOG_FILE 
/bin/mailx -s "RMAN Backup SID " ahdba@qq.com < $RMAN_LOG_FILE 
exit $RSTAT 转:http://www.cndba.cn/dave/article/163

最新文章

  1. php阳历转农历的类 谷歌到的
  2. 微信公众账号 token 验证失败 解决办法
  3. Net.Sockets
  4. js无间隙滚动
  5. Effective C++ -----条款08: 别让异常逃离析构函数
  6. asp.net mvc4 使用KindEditor文本编辑器
  7. 《Android进阶》Sqlite的使用
  8. 2017.2.6Redis连接问题排查
  9. BZOJ2028: [SHOI2009]会场预约(set)
  10. Centos7.1环境下搭建SVN
  11. C#面向对象架构总结
  12. Xcode8.0 / OS X EI Capitan 10.11.6 提交报错90111
  13. 洛谷 P1135 奇怪的电梯 【基础BFS】
  14. 深入理解java虚拟机---java虚拟机内存管理(六)
  15. [py]django第三方分页器django-pure-pagination实战
  16. 如何使32位Win7支持超过4GB的内存,而不装64位
  17. Qt 自定义事件的实现
  18. 【javascript】javascript设计模式之工厂模式
  19. scala 高级编程
  20. TestNG,timeOut

热门文章

  1. [UOJ210]寻找罪犯
  2. jQ&amp;js给label
  3. 【转】和菜鸟一起学linux之DBUS基础学习记录
  4. Socket初步了解
  5. ssm框架搭建流程及原理分析
  6. NumPy位操作
  7. 如何在 CentOS7 中安装 Nodejs
  8. visual stdio 2012 c#学习笔记1
  9. 用OpenCV进行视频截取
  10. IOS-MapKit