NetBackup 恢复手册.docx
《NetBackup 恢复手册.docx》由会员分享,可在线阅读,更多相关《NetBackup 恢复手册.docx(23页珍藏版)》请在冰豆网上搜索。
![NetBackup 恢复手册.docx](https://file1.bdocx.com/fileroot1/2023-2/3/f12604e4-6d60-47ec-861f-c7d63ac2877a/f12604e4-6d60-47ec-861f-c7d63ac2877a1.gif)
NetBackup恢复手册
StrategicServicesforStorageandStorageManagement
XX基金
NetBackup恢复手册
PRESENTEDBY:
VERITASEnterpriseConsultingServices
1600PlymouthStreet
MountainView,CA94043
22Feb2004
目录
1.文件本机恢复测试3
2.本地恢复操作系统测试5
3.文件异机恢复测试6
4.oracle数据库文件毁坏恢复测试8
5.oracle数据库控制文件毁坏恢复测试17
6.SQLdatabase恢复测试19
7.BMRAIX恢复测试20
8.BMRWindows恢复测试22
9.Vault的全备份恢复测试24
10.Vault的全备份和增量备份恢复测试26
1.文件本机恢复测试
对每台安装NetBackupClient的机器都进行一次备份和恢复测试,备份一个小目录,恢复到本机
a.准备工作
为每台安装了NetBackupClient的机器建立一个备份/usr/openv的测试备份策略,备份都通过网络写到shwp0007上的带库中,挑选若干盘磁带放在test_pool中。
确认该机器/tmp目录下有400MB以上的空间。
确认网络正常
确认NetBackupMasterserver正常运行
b.测试方法
立刻启动备份策略,确认备份进程正常mount磁带,写磁带并以状态0结束
在恢复GUI中找到刚才备份的数据,恢复该目录到/tmp目录下,在UNIX下用chkum比较两个二进制文件的校验值。
直接用vi(或diff)来比较两个文本文件是否一致。
c.清理工作
删除建立的测试备份策略,删除test_pool,删除/tmp下恢复出的数据
d.出错处理方法
根据NetBackupTroubleshooting文档资料对错误状态进行分析,纠正错误配置后重新进行测试
测试结果:
主机名
pass
fail
2.本地恢复操作系统测试
对测试机进行一次全备份和恢复测试,备份全部操作系统,恢复到本机
a.准备工作
为这台测试机建立一个备份ALL_LOCAL_DRIVES和system_state:
/的测试备份策略,备份都通过网络写到shwp0007上的带库中,挑选若干盘磁带放在test_pool中。
确认网络正常
确认NetBackupMasterserver正常运行
b.测试方法
立刻启动备份策略,确认备份进程正常mount磁带,写磁带并以状态0结束
在恢复GUI中找到刚才备份的数据,恢复覆盖整个操作系统。
c.清理工作
删除建立的测试备份策略,删除test_pool
d.出错处理方法
根据NetBackupTroubleshooting文档资料对错误状态进行分析,纠正错误配置后重新进行测试
测试结果:
主机名
pass
fail
3.文件异机恢复测试
对每台安装NetBackupClient的机器都进行一次备份和恢复测试,备份一个小目录,恢复到shwp0007本机
a.准备工作
为每台安装了NetBackupClient的机器建立一个备份/usr/openv的测试备份策略,备份都通过网络写到shwp0007的带库中,挑选若干盘磁带放在test_pool中。
确认该机器/tmp目录下有400MB以上的空间。
确认网络正常
确认NetBackupMasterserver正常运行
b.测试方法
在jfkdb2中的/usr/openv/netbackup/db目录下建altnames目录,然后创建空文件No.Restrictions.
立刻启动备份策略,确认备份进程正常mount磁带,写磁带并以状态0结束
在恢复GUI中找到刚才备份的数据,恢复该目录到jfkdb2的/tmp目录下,在UNIX下用chkum比较两个二进制文件的校验值。
直接用vi(或diff)来比较两个文本文件是否一致。
c.清理工作
删除建立的测试备份策略,删除test_pool,删除jfkdb2的/tmp下恢复出的数据
d.出错处理方法
根据NetBackupTroubleshooting文档资料对错误状态进行分析,纠正错误配置后重新进行测试
测试结果:
主机名
pass
fail
4.oracle数据库文件毁坏恢复测试
在测试机上对Oracle数据库进行一次备份和恢复测试,备份全数据库,恢复数据库
a.准备工作
1.为测试机安装Oracle数据库
2.为测试机安装NetBackup客户端和数据库agent,link该测试数据库
3.为该测试机建立一个备份数据库的测试备份策略,挑选磁带放在test_pool中。
配置rman备份脚本
4.确认网络正常
5.确认NetBackupMasterserver正常运行
b.测试方法
1.在数据库中创建一张表,写些数据
2.立刻启动备份策略,确认备份进程正常mount磁带,写磁带并以状态0结束,查看rman脚本的日志确认备份成功
3.关闭数据库
>shutdownimmediate
4.将当前的几个datafile的裸设备dd掉
5.将数据库置于mount状态
>startupmount
6.通过手工执行rman恢复数据,查看刚才的表中数据还在
c.清理工作
删除建立的测试备份策略,删除test_pool
d.出错处理方法
根据NetBackupTroubleshooting文档资料和查阅oracleMetalink对错误状态进行分析,纠正错误配置后重新进行测试
RMAN备份脚本
#
#---------------------------------------------------------------------------
#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=/db/oracle/product/ora81
exportORACLE_HOME
#---------------------------------------------------------------------------
#Replaceora81,below,withtheOracleSIDofthetargetdatabase.
#---------------------------------------------------------------------------
ORACLE_SID=ora81
exportORACLE_SID
#---------------------------------------------------------------------------
#Replaceora81,below,withtheOracleDBAuserid(account).
#---------------------------------------------------------------------------
ORACLE_USER=ora81
#---------------------------------------------------------------------------
#Setthetargetconnectstring.
#Replace"sys/manager",below,withthetargetconnectstring.
#---------------------------------------------------------------------------
TARGET_CONNECT_STR=sys/manager
#---------------------------------------------------------------------------
#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:
#scheduletypeisBACKUP_TYPEis
#------------------------------
#AutomaticFullINCREMENTALLEVEL=0
#AutomaticDifferentialIncrementalINCREMENTALLEVEL=1
#AutomaticCumulativeIncrementalINCREMENTALLEVEL=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).
#
#Wedonotneedtoexplicitlyrequestthecontrolfiletobeincluded
#inthisbackup,asitisautomaticallyincludedeachtimefile1of
#thesystemtablespaceisbackedup(theinference:
asitisawhole
#databasebackup,