ITPub博客

首页 > 数据库 > Oracle > oracle11g Rman 备份脚本

oracle11g Rman 备份脚本

Oracle 作者:zhang_1202 时间:2015-11-12 16:32:00 0 删除 编辑

1、Rman备份脚本 

备份策略:周天0级备份,其他时候1级备份 

[plain] view plaincopy
  1. ########################################################################  
  2. ##   kfc_incremental_hot_database_backup.sh  ##  
  3. ##   created by  NBU TEMP                    ##  
  4. ##        2012-3-8                           ##  
  5. #########################################################################  
  6.   
  7. #!/bin/ksh  
  8.   
  9. export LANG=en_US  
  10. BACKUP_DATE=`date +%d`  
  11. RMAN_LOG_FILE=/home/oracle/backup/log/backupinfo.out  
  12. TODAY=`date`  
  13. USER=`id|cut -d "(" -f2|cut -d ")" -f1`  
  14. echo "-----------------$TODAY-------------------">$RMAN_LOG_FILE  
  15.   
  16. ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1  
  17. export ORACLE_HOME  
  18.   
  19. RMAN=$ORACLE_HOME/bin/rman  
  20. export RMAN  
  21.   
  22. ORACLE_SID=kfsjora  
  23. export ORACLE_SID  
  24.   
  25. ORACLE_USER=oracle  
  26. export ORACLE_USER  
  27.   
  28. echo "ORACLE_SID: $ORACLE_SID">>$RMAN_LOG_FILE  
  29. echo "ORACLE_HOME:$ORACLE_HOME">>$RMAN_LOG_FILE  
  30. echo "ORACLE_USER:$ORACLE_USER">>$RMAN_LOG_FILE  
  31. echo "==========================================">>$RMAN_LOG_FILE  
  32. echo "BACKUP DATABASE BEGIN......">>$RMAN_LOG_FILE  
  33. echo "                   ">>$RMAN_LOG_FILE  
  34.   
  35. #touch $RMAN_LOG_FILE  
  36. chmod 666 $RMAN_LOG_FILE  
  37.   
  38. WEEK_DAILY=`date +%a`  
  39.   
  40. case  "$WEEK_DAILY" in  
  41.        "Mon")  
  42.             BAK_LEVEL=1  
  43.             ;;  
  44.        "Tue")  
  45.             BAK_LEVEL=1  
  46.             ;;  
  47.        "Wed")  
  48.             BAK_LEVEL=1  
  49.             ;;  
  50.        "Thu")  
  51.             BAK_LEVEL=1  
  52.             ;;  
  53.        "Fri")  
  54.             BAK_LEVEL=1  
  55.             ;;  
  56.        "Sat")  
  57.             BAK_LEVEL=1  
  58.             ;;  
  59.        "Sun")  
  60.             BAK_LEVEL=0  
  61.             ;;  
  62.        "*")  
  63.             BAK_LEVEL=error  
  64. esac  
  65.   
  66. export BAK_LEVEL=$BAK_LEVEL  
  67.   
  68. echo "Today is : $WEEK_DAILY  incremental level= $BAK_LEVEL">>$RMAN_LOG_FILE  
  69.   
  70.   
  71. RUN_STR="  
  72.   
  73. BAK_LEVEL=$BAK_LEVEL  
  74. export BAK_LEVEL  
  75.   
  76. ORACLE_HOME=$ORACLE_HOME  
  77. export ORACLE_HOME  
  78.   
  79. ORACLE_SID=$ORACLE_SID  
  80. export ORACLE_SID  
  81.   
  82. $RMAN TARGET sys/<span style="color:#000000;">qhyc_pass CATALOG kfcrman/kfcrman@kfcrman  msglog $RMAN_LOG_FILE append <<EOF  
  83. run  
  84. {  
  85.   allocate channel c1 type disk;  
  86.   allocate channel c2 type disk;  
  87.   
  88.   backup  incremental level= $BAK_LEVEL  skip inaccessible filesperset 5 Database format='/opt/kfsjora_backup/orcl_lev"$BAK_LEVEL"_%U_%T'  tag='orcl_lev"$BAK_LEVEL"' ;  
  89.   
  90.   sql 'alter system archive log current';  
  91.   
  92.   backup archivelog all tag='arc_bak' format='/opt/kfsjora_backup/arch_%U_%T' skip inaccessible  filesperset 5 not  backed up 1 times  delete input;  
  93.   
  94.   backup current controlfile tag='bak_ctlfile' format='/opt/kfsjora_backup/ctl_file_%U_%T';  
  95.   
  96.   backup spfile tag='spfile' format='/opt/kfsjora_backup/ORCL_spfile_%U_%T';  
  97.   
  98.   release channel c2;  
  99.   release channel c1;  
  100. }  
  101.   
  102. report obsolete;  
  103. delete noprompt obsolete;  
  104. crosscheck backup;  
  105. delete noprompt expired backup;  
  106. list backup summary;  
  107. resync catalog;  
  108. EOF  
  109.   
  110. "  
  111. # Initiate the command string  
  112.   
  113. if [ "$CUSER" = "root" ]  
  114. then  
  115.     echo "Root Command String: $RUN_STR" >> $RMAN_LOG_FILE  
  116.     su - $ORACLE_USER -c "$RUN_STR" >> $RMAN_LOG_FILE  
  117.     RSTAT=$?  
  118. else  
  119.     echo "User Command String: $RUN_STR" >> $RMAN_LOG_FILE  
  120.     /bin/sh -c "$RUN_STR" >> $RMAN_LOG_FILE  
  121.     RSTAT=$?  
  122. fi  
  123.   
  124. # ---------------------------------------------------------------------------  
  125. # Log the completion of this script.  
  126. # ---------------------------------------------------------------------------  
  127.   
  128. if [ "$RSTAT" = "0" ]  
  129. then  
  130.     LOGMSG="ended successfully"  
  131. else  
  132.     LOGMSG="ended in error"  
  133. fi  
  134.   
  135. echo >> $RMAN_LOG_FILE  
  136. echo Script $0 >> $RMAN_LOG_FILE  
  137. echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE  
  138. echo >> $RMAN_LOG_FILE  
  139.   
  140. /bin/mailx -s "RMAN Backup SID " oracle@kfc.localdomain < $RMAN_LOG_FILE  
  141. exit $RSTAT  


 

2、删除归档备份和oracle trc等文件的脚本

[plain] view plaincopy
  1. #!/bin/ksh  
  2. # ##################################################################  
  3. #  
  4. #   delete_archvivelog_backup_and_trc_trm_file.sh  
  5. #  
  6. #  
  7. # ##################################################################  
  8. PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin  
  9. export PATH  
  10. #find /opt/kfsjora_backup -mtime +15 -name "arch_*" -exec rm "{} /;"  
  11. find /opt/kfsjora_backup -mtime +15 -name "arch_*" -exec rm {} \;  
  12. find /opt/oracle/admin/kfsjora/adump/ -mtime +15 -name "*.aud" -exec rm {} \;  
  13. find /opt/oracle/diag/rdbms/kfsjora/kfsjora/cdump/ -mtime +15 -name "*" -exec rm -fr {} \;  
  14. find /opt/oracle/diag/rdbms/kfsjora/kfsjora/trace/ -mtime +15 -name "*.tr?" -exec rm {} \;  


 

3、导出Rman catalog数据 的脚本

[plain] view plaincopy
  1. #!/bin/ksh  
  2. # ##################################################################  
  3. #  
  4. #   exprman.sh  
  5. #  
  6. #  
  7. # ##################################################################  
  8. ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME  
  9. PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin:$ORACLE_HOME/bin:/usr/sbin  
  10. export PATH  
  11. EXP_BASE=/home/oracle/backup/exprman  
  12. export EXP_BASE  
  13. NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  
  14. export NLS_LANG  
  15.   
  16. if [ -s  "$EXP_BASE/kfcrman_new.dmp" ];then  
  17.   rm $EXP_BASE/kfcrman_old.dmp  
  18.   mv $EXP_BASE/kfcrman_new.dmp $EXP_BASE/kfcrman_old.dmp  
  19. fi  
  20. exp <a href="mailto:kfcrman/×××@kfcrman"><span style="color:#000000;">kfcrman/kfcrman@kfcrman tablespaces=KFC3850 file=$EXP_BASE/kfcrman_new.dmp >>$EXP_BASE/../log/expkfcrman.log 2>&1  


4、设置 crontab 定期执行上述脚本

$crontab -e

加入如下内容

[plain] view plaincopy
  1. 00 1 * * * /home/oracle/backup/script/kfc_incremental_hot_database_backup.sh &  
  2. 00 2 * * * /home/oracle/backup/script/delete_archvivelog_backup_and_trc_trm_file.sh >/home/oracle/backup/log/log_delete_archvivelog_backup_and_trc_trm_file.log 2>&1 &  
  3. 00 5 1 * * /home/oracle/backup/script/expkfcrman.sh 







source:http://blog.csdn.net/upcorange/article/details/7335990

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30557618/viewspace-1833885/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-11-09

  • 博文量
    40
  • 访问量
    108921