感谢支持
我们一直在努力

Nocatalog 下的RMAN 增量备份 shell脚本

之前整理了下catalog下全备的脚本,上次在生产库上弄了个nocatalog的脚本,结果没有在本本上保存,这次要用了,重新在整理了一下。


Linux 平台下 RMAN 全备 和 增量备份 shell 脚本


http://www.linuxidc.com/Linux/2011-02/32707.htm


在执行脚本之前,先修改几个参数值:


1. DB 参数:


修改控制文件的保存时间,从默认的7天改成14天


SQL> show parameter control


SQL> 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_US


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=orcl


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=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=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 sys/admin msglog $RMAN_LOG_FILE append <<EOF


run


{


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: c1


channel c1: sid=158 devtype=DISK


 


allocated channel: c2


channel c2: sid=147 devtype=DISK


 


Starting backup at 01-FEB-12


channel c1: starting incremental level 2 datafile backupset


channel c1: specifying datafile(s) in backupset


input datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system.256.736598559


input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users.259.736598641


channel c1: starting piece 1 at 01-FEB-12


channel c2: starting incremental level 2 datafile backupset


channel c2: specifying datafile(s) in backupset


input datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux.257.736598563


input datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs1.258.736598599


channel c2: starting piece 1 at 01-FEB-12


channel c1: finished piece 1 at 01-FEB-12


piece handle=/u02/backup/orcl_lev2_0dn287g3_1_1_20120201 tag=ORCL_LEV2 comment=NONE


channel c1: backup set complete, elapsed time: 00:00:36


channel c2: finished piece 1 at 01-FEB-12


piece handle=/u02/backup/orcl_lev2_0en287g3_1_1_20120201 tag=ORCL_LEV2 comment=NONE


channel c2: backup set complete, elapsed time: 00:00:36


Finished backup at 01-FEB-12


 


Starting Control File and SPFILE Autobackup at 01-FEB-12


piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118951_7lmfms6s_.bkp comment=NONE


Finished Control File and SPFILE Autobackup at 01-FEB-12


 


sql statement: alter system archive log current


 


Starting backup at 01-FEB-12


current log archived


channel c1: starting archive log backupset


channel c1: specifying archive log(s) in backup set


input archive log thread=1 sequence=9 recid=9 stamp=774118956


channel c1: starting piece 1 at 01-FEB-12


channel c2: starting archive log backupset


channel c2: specifying archive log(s) in backup set


input archive log thread=1 sequence=10 recid=10 stamp=774118956


channel c2: starting piece 1 at 01-FEB-12


channel c1: finished piece 1 at 01-FEB-12


piece handle=/u02/backup/arch_0hn287hc_1_1_20120201 tag=ARC_BAK comment=NONE


channel c1: backup set complete, elapsed time: 00:00:02


channel c1: deleting archive log(s)


archive log filename=/u01/archivelog/1_9_738254360.arch recid=9 stamp=774118956


channel c2: finished piece 1 at 01-FEB-12


piece handle=/u02/backup/arch_0gn287hc_1_1_20120201 tag=ARC_BAK comment=NONE


channel c2: backup set complete, elapsed time: 00:00:03


channel c2: deleting archive log(s)


archive log filename=/u01/archivelog/1_10_738254360.arch recid=10 stamp=774118956


Finished backup at 01-FEB-12


 


Starting backup at 01-FEB-12


channel c1: starting full datafile backupset


channel c1: specifying datafile(s) in backupset


including current control file in backupset


channel c1: starting piece 1 at 01-FEB-12


channel c1: finished piece 1 at 01-FEB-12


piece handle=/u02/backup/ctl_file_0in287hg_1_1_20120201 tag=BAK_CTLFILE comment=NONE


channel c1: backup set complete, elapsed time: 00:00:02


Finished backup at 01-FEB-12


 


Starting backup at 01-FEB-12


channel c1: starting full datafile backupset


channel c1: specifying datafile(s) in backupset


including current SPFILE in backupset


channel c1: starting piece 1 at 01-FEB-12


channel c1: finished piece 1 at 01-FEB-12


piece handle=/u02/backup/ORCL_spfile_0jn287hi_1_1_20120201 tag=SPFILE comment=NONE


channel c1: backup set complete, elapsed time: 00:00:01


Finished backup at 01-FEB-12


 


Starting Control File and SPFILE Autobackup at 01-FEB-12


piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118963_7lmfn45l_.bkp comment=NONE


Finished Control File and SPFILE Autobackup at 01-FEB-12


 


released channel: c2


 


released channel: c1


 


RMAN> RMAN>


allocated channel: ORA_MAINT_DISK_1


channel ORA_MAINT_DISK_1: sid=158 devtype=DISK


 


RMAN> RMAN>


RMAN retention policy will be applied to the command


RMAN retention policy is set to recovery window of 7 days


no obsolete backups found


 


RMAN> RMAN>


RMAN retention policy will be applied to the command


RMAN retention policy is set to recovery window of 7 days


no 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=774118636


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/orcl_lev2_05n2877c_1_1_20120201 recid=2 stamp=774118636


crosschecked 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=774118725


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/arch_08n287ab_1_1_20120201 recid=4 stamp=774118732


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/arch_09n287ab_1_1_20120201 recid=5 stamp=774118732


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/ctl_file_0an287al_1_1_20120201 recid=6 stamp=774118742


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/ORCL_spfile_0bn287ao_1_1_20120201 recid=7 stamp=774118744


crosschecked 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=774118746


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/orcl_lev2_0dn287g3_1_1_20120201 recid=9 stamp=774118915


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/orcl_lev2_0en287g3_1_1_20120201 recid=10 stamp=774118923


crosschecked 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=774118953


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/arch_0gn287hc_1_1_20120201 recid=12 stamp=774118957


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/arch_0hn287hc_1_1_20120201 recid=13 stamp=774118957


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/ctl_file_0in287hg_1_1_20120201 recid=14 stamp=774118961


crosschecked backup piece: found to be ‘AVAILABLE’


backup piece handle=/u02/backup/ORCL_spfile_0jn287hi_1_1_20120201 recid=15 stamp=774118962


crosschecked 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=774118964


Crosschecked 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_LEV2


2       B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV2


3       B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T165843


4       B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK


5       B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK


6       B  F  A DISK        01-FEB-12       1       1       NO         BAK_CTLFILE


7       B  F  A DISK        01-FEB-12       1       1       NO         SPFILE


8       B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T165905


9       B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV2


10      B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV2


11      B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T170231


12      B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK


13      B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK


14      B  F  A DISK        01-FEB-12       1       1       NO         BAK_CTLFILE


15      B  F  A DISK        01-FEB-12       1       1       NO         SPFILE


16      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 -l


20 17 * * * /u02/rman_incremental_backup.sh 1>/u02/rman.log 2>&1 &


关于crontab 参考:


Linux Crontab 定时任务 命令详解


http://www.linuxidc.com/Linux/2007-09/7681.htm

赞(0) 打赏
转载请注明出处:服务器评测 » Nocatalog 下的RMAN 增量备份 shell脚本
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏