NBU备份oracle异机恢复没有catalog解决方案.docx

上传人:b****0 文档编号:8937255 上传时间:2023-05-16 格式:DOCX 页数:11 大小:21.28KB
下载 相关 举报
NBU备份oracle异机恢复没有catalog解决方案.docx_第1页
第1页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第2页
第2页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第3页
第3页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第4页
第4页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第5页
第5页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第6页
第6页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第7页
第7页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第8页
第8页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第9页
第9页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第10页
第10页 / 共11页
NBU备份oracle异机恢复没有catalog解决方案.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

NBU备份oracle异机恢复没有catalog解决方案.docx

《NBU备份oracle异机恢复没有catalog解决方案.docx》由会员分享,可在线阅读,更多相关《NBU备份oracle异机恢复没有catalog解决方案.docx(11页珍藏版)》请在冰点文库上搜索。

NBU备份oracle异机恢复没有catalog解决方案.docx

NBU备份oracle异机恢复没有catalog解决方案

NetBackup备份oracle无nocatalog解决方案

1.NetBackup通过RMANnocatalog方式备份设置步骤

当通过rmannocatalog方式备份Oracle,Oracle使用controlfile存放备份信息。

因此,当使用rmannocatalog方式备份时,备份controlfile是非常重要的。

有一个问题,当使用rmannocatalog恢复时,数据库必须是处于“mount”状态的。

而Oraclestartupmount的前提条件是control必须存在。

因此,你必须在恢复datafile之前先恢复controlfile。

使用rmancatalog方式时,能startupnomount然后restorecontrolfile;但使用rmannocatalog时,必须先用文件方式恢复controlfile。

下面对比一下rmannocatalog和rmancatalog的恢复时的步骤,以便建立正确的备份策略(以下的恢复都是在online状态下的备份):

rmannocatalog恢复:

1)      建立oracle运行环境(包括init或sp文件)

2)      文件方式恢复controlfile到init文件指定的位置

3)      startupmount

4)      rman,恢复datafile

5)      alterdatabaseopenresetlogs

rmancatalog恢复:

1)      建立oracle运行环境(包括init或sp文件)

2)      rman,restorecontrofile

3)      alterdatabasemount

4)      rman,restoredatafile

5)      alterdatabaseopenresetlogs

能看出,rmannocatalog备份时,必须用文件方式备份controlfile。

另外,由于nocatalog时利用controlfile存放备份信息,建议将Oracle参数文件中的CONTROL_FILE_RECORD_KEEP_TIME值加大(缺省为7天),该参数在$ORACLE_HOME/dbs/initSID.ora中(9i后也可能在spfile中,只能通过Oracle语句更改)。

  

以下描述怎么使用NetBackup对Oracle进行rmannocatalog方式下的备份:

一、备份服务器上的工作

1.建立NetBackuppolicy,用于备份controlfile

建立policy“oracle_control_file”,backuptype“standard”,client“oracle_server”,filelist“/scripts/control.ora”,schedule“user”type“userbackup”,选择所有时间范围。

2.建立NetBackuppolicy,用于备份Oracledatabase

建立policy“oracle_full”,backuptype“oracle”,client“oracle_server”,script“/scripts/hot_database_level0.sh”,schedule自己定。

3.如果需要,建立NetBackuppolicy用于备份archivelog,方法同上,脚本另写。

二、Oracle服务器上的工作

1.在“oracle_server”上,编辑“/scripts/hot_database_level0.sh”文件,加入下行,在rman指令结束符“}”前:

ALLOCATECHANNELch00TYPEdisk;

COPYCURRENTCONTROLFILEto’/scripts/control.ora’;

RELEASECHANNELch00;

2.在“/scripts/hot_database_level0.sh”相关行(快结束的地方),加入:

/usr/openv/netbackup/bin/bpbackup-poracle_control_file-suser?

t0/scripts/control.ora

3.如果另外有archivelog的备份,重复以上1、2步骤,加在archivelog备份的脚本中。

4.改动oracle参数(可选,Oracle9i使用spfile的话通过oracle指令修改)

(1)shutdownoracle

(2)编辑$ORACLE_HOME/dbs/initSID.ora,设置

CONTROL_FILE_RECORD_KEEP_TIME=365

(3)startuporacle

scripts举例:

#!

/bin/sh

#$Header:

hot_database_backup.sh,v1.92002/02/0616:

48:

56lstrubStab$

#

#bcpyrght

#***************************************************************************

#*$VRTScprght:

Copyright1993-2002VERITASSoftwareCorporation,AllRightsReserved$*

#***************************************************************************

#ecpyrght

#

#---------------------------------------------------------------------------

#                  hot_database_backup.sh

#---------------------------------------------------------------------------

#  ThisscriptusesRecoveryManagertotakeahot(inconsistent)database

#  backup.Ahotbackupisinconsistentbecauseportionsofthedatabaseare

#  beingmodifiedandwrittentothediskwhilethebackupisprogressing.

#  YoumustrunyourdatabaseinARCHIVELOGmodetomakehotbackups.Itis

#  assumedthatthisscriptwillbeexecutedbyuserroot.InorderforRMAN

#  toworkproperlyweswitchuser(su-)totheoracledbaaccountbefore

#  execution.IfthisscriptrunsunderauseraccountthathasOracledba

#  privilege,itwillbeexecutedusingthisuser’saccount.

#---------------------------------------------------------------------------

#---------------------------------------------------------------------------

#Determinetheuserwhichisexecutingthisscript.

#---------------------------------------------------------------------------

CUSER=`id|cut-d"("-f2|cut-d"

"-f1`

#---------------------------------------------------------------------------

#Putoutputin;.out.Changeasdesired.

#Note:

outputdirectoryrequireswritepermission.

#---------------------------------------------------------------------------

RMAN_LOG_FILE=${0}.out

#---------------------------------------------------------------------------

#Youmaywanttodeletetheoutputfilesothatbackupinformationdoes

#notaccumulate.  Ifnot,deletethefollowinglines.

#---------------------------------------------------------------------------

if[-f"$RMAN_LOG_FILE"]

then

      rm-f"$RMAN_LOG_FILE"

fi

#-----------------------------------------------------------------

#Initializethelogfile.

#-----------------------------------------------------------------

echo>;>;$RMAN_LOG_FILE

chmod666$RMAN_LOG_FILE

#---------------------------------------------------------------------------

#Logthestartofthisscript.

#---------------------------------------------------------------------------

echoScript$0>;>;$RMAN_LOG_FILE

echo====startedon`date`====>;>;$RMAN_LOG_FILE

echo>;>;$RMAN_LOG_FILE

#---------------------------------------------------------------------------

#Replace/db/oracle/product/ora81,below,withtheOraclehomepath.

#---------------------------------------------------------------------------

ORACLE_HOME=/oracle/app/oracle/product/8.1.7

exportORACLE_HOME

#---------------------------------------------------------------------------

#Replaceora81,below,withtheOracleSIDofthetargetdatabase.

#---------------------------------------------------------------------------

ORACLE_SID=ora81

exportORACLE_SID

#---------------------------------------------------------------------------

#Replaceora81,below,withtheOracleDBAuserid(account).

#---------------------------------------------------------------------------

ORACLE_USER=oracle

#---------------------------------------------------------------------------

#Setthetargetconnectstring.

#Replace"sys/manager",below,withthetargetconnectstring.

#---------------------------------------------------------------------------

TARGET_CONNECT_STR=/

#---------------------------------------------------------------------------

#SettheOracleRecoveryManagername.

#---------------------------------------------------------------------------

RMAN=$ORACLE_HOME/bin/rman

#---------------------------------------------------------------------------

#Printoutthevalueofthevariablessetbythisscript.

#---------------------------------------------------------------------------

echo>;>;$RMAN_LOG_FILE

echo  "RMAN:

$RMAN">;>;$RMAN_LOG_FILE

echo  "ORACLE_SID:

$ORACLE_SID">;>;$RMAN_LOG_FILE

echo  "ORACLE_USER:

$ORACLE_USER">;>;$RMAN_LOG_FILE

echo  "ORACLE_HOME:

$ORACLE_HOME">;>;$RMAN_LOG_FILE

#---------------------------------------------------------------------------

#Printoutthevalueofthevariablessetbybphdb.

#---------------------------------------------------------------------------

echo  >;>;$RMAN_LOG_FILE

echo  "NB_ORA_FULL:

$NB_ORA_FULL">;>;$RMAN_LOG_FILE

echo  "NB_ORA_INCR:

$NB_ORA_INCR">;>;$RMAN_LOG_FILE

echo  "NB_ORA_CINC:

$NB_ORA_CINC">;>;$RMAN_LOG_FILE

echo  "NB_ORA_SERV:

$NB_ORA_SERV">;>;$RMAN_LOG_FILE

echo  "NB_ORA_POLICY:

$NB_ORA_POLICY">;>;$RMAN_LOG_FILE

#---------------------------------------------------------------------------

#NOTE:

Thisscriptassumesthatthedatabaseisproperlyopened.Ifdesired,

#thiswouldbetheplacetoverifythat.

#---------------------------------------------------------------------------

echo>;>;$RMAN_LOG_FILE

#---------------------------------------------------------------------------

#IfthisscriptisexecutedfromaNetBackupschedule,NetBackup

#setsanNB_ORAenvironmentvariablebasedonthescheduletype.

#TheNB_ORAvariableisthenusedtodynamicallysetBACKUP_TYPE

#Forexample,when:

#    scheduletypeis          BACKUP_TYPEis

#    ----------------          --------------

#AutomaticFull              INCREMENTALLEVEL=0

#AutomaticDifferentialIncrementalINCREMENTALLEVEL=1

#AutomaticCumulativeIncremental  INCREMENTALLEVEL=1CUMULATIVE

#

#Foruserinitiatedbackups,BACKUP_TYPEdefaultstoincremental

#level0(full).  Tochangethedefaultforauserinitiated

#backuptoincrementalorincrementalcumulative,uncomment

#oneofthefollowingtwolines.

#BACKUP_TYPE="INCREMENTALLEVEL=1"

#BACKUP_TYPE="INCREMENTALLEVEL=1CUMULATIVE"

#

#Notethatweuseincrementallevel0tospecifyfullbackups.

#Thatisbecause,althoughtheyareidenticalincontent,only

#theincrementallevel0backupcanhaveincrementalbackupsof

#level>;0appliedtoit.

#---------------------------------------------------------------------------

if["$NB_ORA_FULL"="1"]

then

      echo"Fullbackuprequested">;>;$RMAN_LOG_FILE

      BACKUP_TYPE="INCREMENTALLEVEL=0"

elif["$NB_ORA_INCR"="1"]

then

      echo"Differentialincrementalbackuprequested">;>;$RMAN_LOG_FILE

      BACKUP_TYPE="INCREMENTALLEVEL=1"

elif["$NB_ORA_CINC"="1"]

then

      echo"Cumulativeincrementalbackuprequested">;>;$RMAN_LOG_FILE

      BACKUP_TYPE="INCREMENTALLEVEL=1CUMULATIVE"

elif["$BACKUP_TYPE"=""]

then

      echo"Default-Fullbackuprequested">;>;$RMAN_LOG_FILE

      BACKUP_TYPE="INCREMENTALLEVEL=0"

fi

#---------------------------------------------------------------------------

#CallRecoveryManagertoinitiatethebackup.Thisexampledoesnotusea

#RecoveryCatalog.Ifyouchoosetouseone,replacetheoption’nocatalog’

#fromthermancommandlinebelowwiththe

#’rcvcat;/;@;’statement.

#

#Note:

AnyenvironmentvariablesneededatruntimebyRMAN

#    mustbesetandexportedwithintheswitchuser(su)command.

#---------------------------------------------------------------------------

#  Backsupthewholedatabase.  Thisbackupispartoftheincremental

#  strategy(thismeansitcanhaveincrementalbackupsoflevels>;0

#  appliedtoit).

#

#  Wedonotneedtoexplicitlyrequestthecontrol

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2