Welcome 微信登录

首页 / 操作系统 / Linux / Nocatalog 下的RMAN 增量备份 shell脚本

之前整理了下catalog下全备的脚本,上次在生产库上弄了个nocatalog的脚本,结果没有在本本上保存,这次要用了,重新在整理了一下。Linux 平台下 RMAN 全备 和 增量备份 shell 脚本http://www.linuxidc.com/Linux/2011-02/32707.htm在执行脚本之前,先修改几个参数值:1. DB 参数:修改控制文件的保存时间,从默认的7天改成14天SQL> show parameter controlSQL> alter system set control_file_record_keep_time=14 scope=both; 2. RMAN 参数:开启控制文件的自动备份,开启之后在数据库备份或者数据文件(比如添加数据文件)有修改的时候都会自动备份控制文件和spfile文件。RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;3. 备份策略根据自己的系统决我这里是周日做0级备份。周四1级备份,其他2级备份。4. 备份脚本如下:####################################################################   rman_incremental_backup.sh               ####    created by Tianlesoftware                 ####        2011-1-25                         #####################################################################!/bin/ksh export LANG=en_USBACKUP_DATE=`date +%d`RMAN_LOG_FILE=${0}.outTODAY=`date`USER=`id|cut -d "(" -f2|cut -d ")" -f1`echo "-----------------$TODAY-------------------">$RMAN_LOG_FILEOracle_HOME=/u01/app/oracle/product/10.2.0/db_1export ORACLE_HOMERMAN=$ORACLE_HOME/bin/rmanexport RMANORACLE_SID=orclexport ORACLE_SIDORACLE_USER=oracleexport ORACLE_USER echo "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_FILE WEEK_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=erroresac export BAK_LEVEL=$BAK_LEVEL echo "Today is : $WEEK_DAILY  incremental level= $BAK_LEVEL">>$RMAN_LOG_FILE RUN_STR="BAK_LEVEL=$BAK_LEVELexport BAK_LEVELORACLE_HOME=$ORACLE_HOMEexport ORACLE_HOMEORACLE_SID=$ORACLE_SIDexport ORACLE_SID$RMAN nocatalog TARGET sys/admin 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="/u01/backup/orcl_lev"$BAK_LEVEL"_%U_%T"  tag="orcl_lev"$BAK_LEVEL"" ;sql "alter system archive log current";backup archivelog all tag="arc_bak" format="/u01/backup/arch_%U_%T" skip inaccessible  filesperset 5 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/ORCL_spfile_%U_%T";release channel c2;release channel c1;}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 " www.linuxidc.com@www.linuxidc.com < $RMAN_LOG_FILE exit $RSTAT  5. 备份脚本的log 日志: connected to target database: DAVE (DBID=801102850)using target database control file instead of recovery catalog RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> allocated channel: c1channel c1: sid=158 devtype=DISK allocated channel: c2channel c2: sid=147 devtype=DISK Starting backup at 01-FEB-12channel c1: starting incremental level 2 datafile backupsetchannel c1: specifying datafile(s) in backupsetinput datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system.256.736598559input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users.259.736598641channel c1: starting piece 1 at 01-FEB-12channel c2: starting incremental level 2 datafile backupsetchannel c2: specifying datafile(s) in backupsetinput datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux.257.736598563input datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs1.258.736598599channel c2: starting piece 1 at 01-FEB-12channel c1: finished piece 1 at 01-FEB-12piece handle=/u02/backup/orcl_lev2_0dn287g3_1_1_20120201 tag=ORCL_LEV2 comment=NONEchannel c1: backup set complete, elapsed time: 00:00:36channel c2: finished piece 1 at 01-FEB-12piece handle=/u02/backup/orcl_lev2_0en287g3_1_1_20120201 tag=ORCL_LEV2 comment=NONEchannel c2: backup set complete, elapsed time: 00:00:36Finished backup at 01-FEB-12 Starting Control File and SPFILE Autobackup at 01-FEB-12piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118951_7lmfms6s_.bkp comment=NONEFinished Control File and SPFILE Autobackup at 01-FEB-12 sql statement: alter system archive log current Starting backup at 01-FEB-12current log archivedchannel c1: starting archive log backupsetchannel c1: specifying archive log(s) in backup setinput archive log thread=1 sequence=9 recid=9 stamp=774118956channel c1: starting piece 1 at 01-FEB-12channel c2: starting archive log backupsetchannel c2: specifying archive log(s) in backup setinput archive log thread=1 sequence=10 recid=10 stamp=774118956channel c2: starting piece 1 at 01-FEB-12channel c1: finished piece 1 at 01-FEB-12piece handle=/u02/backup/arch_0hn287hc_1_1_20120201 tag=ARC_BAK comment=NONEchannel c1: backup set complete, elapsed time: 00:00:02channel c1: deleting archive log(s)archive log filename=/u01/archivelog/1_9_738254360.arch recid=9 stamp=774118956channel c2: finished piece 1 at 01-FEB-12piece handle=/u02/backup/arch_0gn287hc_1_1_20120201 tag=ARC_BAK comment=NONEchannel c2: backup set complete, elapsed time: 00:00:03channel c2: deleting archive log(s)archive log filename=/u01/archivelog/1_10_738254360.arch recid=10 stamp=774118956Finished backup at 01-FEB-12 Starting backup at 01-FEB-12channel c1: starting full datafile backupsetchannel c1: specifying datafile(s) in backupsetincluding current control file in backupsetchannel c1: starting piece 1 at 01-FEB-12channel c1: finished piece 1 at 01-FEB-12piece handle=/u02/backup/ctl_file_0in287hg_1_1_20120201 tag=BAK_CTLFILE comment=NONEchannel c1: backup set complete, elapsed time: 00:00:02Finished backup at 01-FEB-12 Starting backup at 01-FEB-12channel c1: starting full datafile backupsetchannel c1: specifying datafile(s) in backupsetincluding current SPFILE in backupsetchannel c1: starting piece 1 at 01-FEB-12channel c1: finished piece 1 at 01-FEB-12piece handle=/u02/backup/ORCL_spfile_0jn287hi_1_1_20120201 tag=SPFILE comment=NONEchannel c1: backup set complete, elapsed time: 00:00:01Finished backup at 01-FEB-12 Starting Control File and SPFILE Autobackup at 01-FEB-12piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118963_7lmfn45l_.bkp comment=NONEFinished Control File and SPFILE Autobackup at 01-FEB-12 released channel: c2 released channel: c1 RMAN> RMAN> allocated channel: ORA_MAINT_DISK_1channel ORA_MAINT_DISK_1: sid=158 devtype=DISK RMAN> RMAN> RMAN retention policy will be applied to the commandRMAN retention policy is set to recovery window of 7 daysno obsolete backups found RMAN> RMAN> RMAN retention policy will be applied to the commandRMAN retention policy is set to recovery window of 7 daysno obsolete backups found RMAN> RMAN> crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/orcl_lev2_06n2877c_1_1_20120201 recid=1 stamp=774118636crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/orcl_lev2_05n2877c_1_1_20120201 recid=2 stamp=774118636crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118723_7lmfdojy_.bkp recid=3 stamp=774118725crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/arch_08n287ab_1_1_20120201 recid=4 stamp=774118732crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/arch_09n287ab_1_1_20120201 recid=5 stamp=774118732crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/ctl_file_0an287al_1_1_20120201 recid=6 stamp=774118742crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/ORCL_spfile_0bn287ao_1_1_20120201 recid=7 stamp=774118744crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118745_7lmffb20_.bkp recid=8 stamp=774118746crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/orcl_lev2_0dn287g3_1_1_20120201 recid=9 stamp=774118915crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/orcl_lev2_0en287g3_1_1_20120201 recid=10 stamp=774118923crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118951_7lmfms6s_.bkp recid=11 stamp=774118953crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/arch_0gn287hc_1_1_20120201 recid=12 stamp=774118957crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/arch_0hn287hc_1_1_20120201 recid=13 stamp=774118957crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/ctl_file_0in287hg_1_1_20120201 recid=14 stamp=774118961crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u02/backup/ORCL_spfile_0jn287hi_1_1_20120201 recid=15 stamp=774118962crosschecked backup piece: found to be "AVAILABLE"backup piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118963_7lmfn45l_.bkp recid=16 stamp=774118964Crosschecked 16 objects  RMAN> RMAN>  RMAN> RMAN>  List of Backups===============Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag------- -- -- - ----------- --------------- ------- ------- ---------- ---1       B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV22       B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV23       B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T1658434       B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK5       B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK6       B  F  A DISK        01-FEB-12       1       1       NO         BAK_CTLFILE7       B  F  A DISK        01-FEB-12       1       1       NO         SPFILE8       B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T1659059       B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV210      B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV211      B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T17023112      B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK13      B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK14      B  F  A DISK        01-FEB-12       1       1       NO         BAK_CTLFILE15      B  F  A DISK        01-FEB-12       1       1       NO         SPFILE16      B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T170243 RMAN> RMAN> released channel: ORA_MAINT_DISK_1 RMAN> RMAN>  Recovery Manager complete. Script rman_incremental_backup.sh==== ended successfully on Wed Feb 1 17:02:50 EST 2012 ====6. 将备份脚本添加到Crontab[oracle@singledb u02]$ crontab -l20 17 * * * /u02/rman_incremental_backup.sh 1>/u02/rman.log 2>&1 &关于crontab 参考:Linux Crontab 定时任务 命令详解http://www.linuxidc.com/Linux/2007-09/7681.htmPython 发送 RMAN 备份 Log 脚本英文 RedHat AS5 中文语言包安装相关资讯      Linux教程 
  • Linux教程:如何在命令行中查看目  (07/28/2014 12:22:23)
  • Linux 修改root密码  (11/03/2012 07:53:38)
  • su - root 与su root的区别  (06/06/2012 00:39:40)
  • Linux进程间通信:消息队列  (01/28/2013 09:43:00)
  • U盘安装Linux开机无法启动解决方法  (10/07/2012 08:55:52)
  • Windows 7/Linux 同步时间  (05/15/2012 06:17:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数