1、DG9RMAN全备和增量备shell脚本+windows下脚本一一些准备知识使用RMAN备份分catalog和nocatalog,就是是否使用恢复目录,如果不使用恢复目录,那么就是用controlfile作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息。因此,当使用rmannocatalog方式备份时,备份controlfile是非常重要的。如果使用catalog模式,就需要句需要创建catalog目录。当库比较多时,使用catalog也是比较方便的。具体参考:RMANCatalog和Nocatalog的区别RMAN的备份也分两种,一种是全备,
2、另一种增量备份。全备适用与数据库比较小的情况,如果库大的话就需要使用增量备份了,因为这样能减少备份的时间。Window下的备份脚本,参考Blog:Windows下RMAN备份脚本关于控制文件对于RMAN的重要性,可以参考下面blog中的第四节:RMAN系列(一)-RMAN体系结构概述修改控制文件的保存时间,从默认的7天改成14天SQLshowparametercontrol SQLaltersystemsetcontrol_file_record_keep_time=14scope=both;开启控制文件的自动备份,开启之后在数据库备份或者数据文件(比如添加数据文件)有修改的时候都会自动备份控
3、制文件和spfile文件。Configurecontrolfileautobackupon;当数据库兼容性设置为大于等于10.0.0时,尽管在没有0级备份情况做1级的增量备份实际上是一个全备,但是这个全备也是1级的,不能用作1级积累增量备份的基础备份,这个是在设计备份策略的时候要注意的问题。 二全备脚本以nocatalog模式为例:Shell脚本:#hot_database_backup.sh#createdbyTianlesoftware#2010-7-16#!/bin/sh#-#Determinetheuserwhichisexecutingthisscript.#-CUSER=id|cu
4、t-d(-f2|cut-d)-f1#-#Putoutputin.out.Changeasdesired.#Note:outputdirectoryrequireswritepermission.#-RMAN_LOG_FILE=$0.out#-#Youmaywanttodeletetheoutputfilesothatbackupinformationdoes#notaccumulate.Ifnot,deletethefollowinglines.#-if-f$RMAN_LOG_FILEthenrm-f$RMAN_LOG_FILEfi#-#Initializethelogfile.#-echo$
5、RMAN_LOG_FILEchmod666$RMAN_LOG_FILE#-#Logthestartofthisscript.#-echoScript$0$RMAN_LOG_FILEecho=startedondate=$RMAN_LOG_FILEecho$RMAN_LOG_FILE#-#Oraclehomepath.#-ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1exportORACLE_HOME#-#theOracleSIDofthetargetdatabase.#-ORACLE_SID=orclexportORACLE_SID#-#TheO
6、racleDBAuserid(account).#-ORACLE_USER=oracleexportORACLE_USER#-#SettheOracleRecoveryManagername.#-RMAN=$ORACLE_HOME/bin/rman#-#Printoutthevalueofthevariablessetbythisscript.#-echo$RMAN_LOG_FILEechoRMAN:$RMAN$RMAN_LOG_FILEechoORACLE_SID:$ORACLE_SID$RMAN_LOG_FILEechoORACLE_USER:$ORACLE_USER$RMAN_LOG_F
7、ILEechoORACLE_HOME:$ORACLE_HOME$RMAN_LOG_FILE#-#Printoutthevalueofthevariablessetbybphdb.#-#echo$RMAN_LOG_FILE#echoNB_ORA_FULL:$NB_ORA_FULL$RMAN_LOG_FILE#echoNB_ORA_INCR:$NB_ORA_INCR$RMAN_LOG_FILE#echoNB_ORA_CINC:$NB_ORA_CINC$RMAN_LOG_FILE#echoNB_ORA_SERV:$NB_ORA_SERV$RMAN_LOG_FILE#echoNB_ORA_POLICY
8、:$NB_ORA_POLICY$RMAN_LOG_FILE#-#NOTE:Thisscriptassumesthatthedatabaseisproperlyopened.Ifdesired,#thiswouldbetheplacetoverifythat.#-echo$RMAN_LOG_FILE#-#-#CallRecoveryManagertoinitiatethebackup.#-CMD_STR=ORACLE_HOME=$ORACLE_HOMEexportORACLE_HOMEORACLE_SID=$ORACLE_SIDexportORACLE_SID$RMANnocatalogtarg
9、etsys/adminmsglog$RMAN_LOG_FILEappend$RMAN_LOG_FILEsu-$ORACLE_USER-c$CMD_STR$RMAN_LOG_FILERSTAT=$?elseechoUserCommandString:$CMD_STR$RMAN_LOG_FILE/bin/sh-c$CMD_STR$RMAN_LOG_FILERSTAT=$?fi#-#Logthecompletionofthisscript.#-if$RSTAT=0thenLOGMSG=endedsuccessfullyelseLOGMSG=endedinerrorfiecho$RMAN_LOG_FI
10、LEechoScript$0$RMAN_LOG_FILEecho=$LOGMSGondate=$RMAN_LOG_FILEecho$RMAN_LOG_FILE/bin/mailx-sRMANBackupSIDdaimmsf-createtablespacecatalog_tsdatafileD:/APP/ADMINISTRATOR/ORADATA/ORCL/catalog_ts1.dbfsize20M;2.创建RMAN用户并授权SQLcreateusercatalogidentifiedbycatalogdefaulttablespacecatalog_ts;SQLgrantrecovery_
11、catalog_ownertocatalog;查看角色所拥有的权限:select*fromdba_sys_privswheregrantee=RECOVERY_CATALOG_OWNER;3.创建恢复目录oracledb1scripts$rmantarget/catalogcatalog/catalogcatalog1;RecoveryManager:Release10.2.0.1.0-ProductiononThuJul1512:03:162010Copyright(c)1982,2005,Oracle.Allrightsreserved.connectedtotargetdatabase:
12、ORCL(DBID=1248423599)connectedtorecoverycatalogdatabaseRMANcreatecatalogtablespacecatalog_ts;recoverycatalogcreated如果此处报错:ORACLEerrorfromrecoverycatalogdatabase:ORA-00955:nameisalreadyusedbyanexistingobject可以用命令删除catalog,在创建:RMANdropcatalog;recoverycatalogownerisCATALOGenterDROPCATALOGcommandagainto
13、confirmcatalogremovalRMANdropcatalogrecoverycatalogdroppedRMANregisterdatabase;databaseregisteredinrecoverycatalogstartingfullresyncofrecoverycatalogfullresynccompleteRMAN差异备份有3个级别:0级:相当于全备,不同的是0级可用于增量备份,全备不行。1级:备份自上次0级备份以来的数据2级:备份自上次备份以来的数据脚本的增量备份策略:周日0级备份,周四1级备份,其他2级备份Shell脚本:#incremental_hot_data
14、base_backup.sh#createdbyTianlesoftware#2010-7-16#!/bin/kshexportLANG=en_USBACKUP_DATE=date+%dRMAN_LOG_FILE=$0.outTODAY=dateUSER=id|cut-d(-f2|cut-d)-f1echo-$TODAY-$RMAN_LOG_FILEORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1exportORACLE_HOMERMAN=$ORACLE_HOME/bin/rmanexportRMANORACLE_SID=orclexportORA
15、CLE_SIDORACLE_USER=oracleexportORACLE_USERechoORACLE_SID:$ORACLE_SID$RMAN_LOG_FILEechoORACLE_HOME:$ORACLE_HOME$RMAN_LOG_FILEechoORACLE_USER:$ORACLE_USER$RMAN_LOG_FILEecho=$RMAN_LOG_FILEechoBACKUPDATABASEBEGIN.$RMAN_LOG_FILEecho$RMAN_LOG_FILEchmod666$RMAN_LOG_FILEWEEK_DAILY=date+%acase$WEEK_DAILYinMon)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=erroresacexportBAK_LEVEL=$BAK
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2