RMAN备份恢复之SPFILE的恢复.docx
- 文档编号:8390596
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:14
- 大小:20.90KB
RMAN备份恢复之SPFILE的恢复.docx
《RMAN备份恢复之SPFILE的恢复.docx》由会员分享,可在线阅读,更多相关《RMAN备份恢复之SPFILE的恢复.docx(14页珍藏版)》请在冰豆网上搜索。
RMAN备份恢复之SPFILE的恢复
1RMAN备份恢复之SPFILE的恢复
(一)
缺少初始化文件,数据库是无法启动的。
如果通过RMAN备份了初始化参数,那么可以通过RMAN对初始化参数进行恢复。
这篇文章简单介绍CATALOG方式下初始化参数的恢复问题。
初始化参数的丢失和损坏,并不会造成太严重的问题,即使是最坏的情况,导致无法进行恢复,也是可以通过手工编辑一个新的PFILE文件,来启动实例的。
而且,在数据库的alert文件中包含了每次数据库启动使用的所有非默认值初始化参数,因此重新编写一个初始化参数并不困难。
不过,既然对SPFILE进行了备份,那么完全可以采用恢复的方式来还原SPFILE。
对于CATALOG方式,SPFILE的恢复相对简单很多。
不过Oracle文档上对于SPFILE的恢复的描述有些小问题:
SETDBID这个步骤是不能省略的,否则会报错。
$rmantarget/catalog"rman/rman@testcen"
RecoveryManager:
Release9.2.0.4.0-Production
Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.
connectedtotargetdatabase(notstarted)
connectedtorecoverycatalogdatabase
RMAN>startupforcenomount;
startupfailed:
ORA-01078:
failureinprocessingsystemparameters
LRM-00109:
couldnotopenparameterfile'/opt/ora9/product/9.2/dbs/inittestdata.ora'
tryingtostarttheOracleinstancewithoutparameterfiles...
Oracleinstancestarted
TotalSystemGlobalArea97588504bytes
FixedSize451864bytes
VariableSize46137344bytes
DatabaseBuffers50331648bytes
RedoBuffers667648bytes
RMAN>restorespfile;
Startingrestoreat27-6月-07
RMAN-00571:
===========================================================
RMAN-00569:
===============ERRORMESSAGESTACKFOLLOWS===============
RMAN-00571:
===========================================================
RMAN-03002:
failureofrestorecommandat06/27/200710:
36:
46
RMAN-12010:
automaticchannelallocationinitializationfailed
RMAN-06004:
ORACLEerrorfromrecoverycatalogdatabase:
RMAN-20001:
targetdatabasenotfoundinrecoverycatalog
正确的方式如下:
$rmantarget/catalog"rman/rman@testcen"
RecoveryManager:
Release9.2.0.4.0-Production
Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.
connectedtotargetdatabase:
DUMMY(notmounted)
connectedtorecoverycatalogdatabase
RMAN>setdbid2270762593;
executingcommand:
SETDBID
RMAN>startupforcenomount
startupfailed:
ORA-01078:
failureinprocessingsystemparameters
LRM-00109:
couldnotopenparameterfile'/opt/ora9/product/9.2/dbs/inittestdata.ora'
tryingtostarttheOracleinstancewithoutparameterfiles...
Oracleinstancestarted
TotalSystemGlobalArea97588504bytes
FixedSize451864bytes
VariableSize46137344bytes
DatabaseBuffers50331648bytes
RedoBuffers667648bytes
RMAN>restorespfile;
Startingrestoreat27-6月-07
allocatedchannel:
ORA_DISK_1
channelORA_DISK_1:
sid=9devtype=DISK
allocatedchannel:
ORA_DISK_2
channelORA_DISK_2:
sid=10devtype=DISK
allocatedchannel:
ORA_DISK_3
channelORA_DISK_3:
sid=11devtype=DISK
channelORA_DISK_1:
startingdatafilebackupsetrestore
channelORA_DISK_1:
restoringSPFILE
outputfilename=/opt/ora9/product/9.2/dbs/spfiletestdata.ora
channelORA_DISK_1:
restoredbackuppiece1
piecehandle=/data1/backup/testdata/c-2270762593-20070626-01tag=nullparams=NULL
channelORA_DISK_1:
restorecomplete
Finishedrestoreat27-6月-07
RMAN>startupforce
Oracleinstancestarted
databasemounted
databaseopened
TotalSystemGlobalArea1175525576bytes
FixedSize452808bytes
VariableSize335544320bytes
DatabaseBuffers838860800bytes
RedoBuffers667648bytes
startingfullresyncofrecoverycatalog
fullresynccomplete
SETDBID这个步骤是必须的。
对于CATALOG模式,如果不知道数据库的ID,可以通过CATALOG用户登陆到CATALOG数据库中进行查询:
$sqlplusrman/rman@testcen
SQL*Plus:
Release9.2.0.4.0-Productionon星期三6月2715:
36:
302007
Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.
Connectedto:
Oracle9iEnterpriseEditionRelease9.2.0.4.0-Production
WiththePartitioning,OLAPandOracleDataMiningoptions
JServerRelease9.2.0.4.0-Production
Sessionaltered.
SQL>selectdbidfromrc_databasewherename='TESTDATA';
DBID
----------
2270762593
恢复之后,重启数据库实例,使得SPFILE生效。
2RMAN备份恢复之SPFILE的恢复
(二)
缺少初始化文件,数据库是无法启动的。
如果通过RMAN备份了初始化参数,那么可以通过RMAN对初始化参数进行恢复。
这篇文章简单介绍NOCATALOG方式下初始化参数的恢复问题。
前面介绍了CATALOG方式下的SPFILE的恢复问题,这里讨论NOCATALOG的恢复方式。
对于NOCATALOG,如果开启了AUTOBACKUP,那么恢复数据库的SPFILE也是很简单的问题。
首先检查alert文件,确定最近的自动备份的名称。
$tail-200/opt/ora9/admin/testdata/bdump/alert_testdata.log|grepc-
handle'/data1/backup/testdata/c-2270762593-20070629-00'
根据得到的信息不但可以确定自动备份的名称和位置,还可以得到数据库的DBID,当前的例子中,2270762593就是数据库的DBID。
下面就可以利用RMAN进行恢复了,仍然必须SETDBID,然后利用RMAN的默认参数进行启动:
$rmantarget/
RecoveryManager:
Release9.2.0.4.0-Production
Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.
connectedtotargetdatabase(notstarted)
RMAN>setdbid2270762593
executingcommand:
SETDBID
RMAN>startupforcenomount
startupfailed:
ORA-01078:
failureinprocessingsystemparameters
LRM-00109:
couldnotopenparameterfile'/opt/ora9/product/9.2/dbs/inittestdata.ora'
tryingtostarttheOracleinstancewithoutparameterfiles...
Oracleinstancestarted
TotalSystemGlobalArea97588504bytes
FixedSize451864bytes
VariableSize46137344bytes
DatabaseBuffers50331648bytes
RedoBuffers667648bytes
RMAN>run
2>{
3>setcontrolfileautobackupformatfordevicetypediskto'/data1/backup/testdata/%F';
4>allocatechannelc1devicetypedisk;
5>restorespfilefromautobackup;
6>}
executingcommand:
SETCONTROLFILEAUTOBACKUPFORMAT
allocatedchannel:
c1
channelc1:
sid=9devtype=DISK
Startingrestoreat29-6月-07
channelc1:
lookingforautobackuponday:
20070629
channelc1:
autobackupfound:
/data1/backup/testdata/c-2270762593-20070629-00
channelc1:
SPFILErestorefromautobackupcomplete
Finishedrestoreat29-6月-07
releasedchannel:
c1
对于不存在autobackup的情况,问题就比较复杂了。
首先第一个问题就是要找到DBID,第二个还要确定目前的备份集中哪个是包含SPFILE的。
对于第一个问题,如果对数据文件的格式有一定了解的,可以直接从数据文件头中获取,这里就不介绍具体的方法了。
对于第二个问题,最差的方法不过是挨个尝试所有的备份集。
如果两个问题就可以解决,那么没有AUTOBACKUP,恢复SPFILE也是很容易的:
RMAN>restorespfilefrom'/data1/backup/testdata/2kilbkkg_1_1';
Startingrestoreat29-6月-07
allocatedchannel:
ORA_DISK_1
channelORA_DISK_1:
sid=9devtype=DISK
channelORA_DISK_1:
autobackupfound:
/data1/backup/testdata/2kilbkkg_1_1
channelORA_DISK_1:
SPFILErestorefromautobackupcomplete
Finishedrestoreat29-6月-07
3RMAN备份恢复之SPFILE的恢复(三)
缺少初始化文件,数据库是无法启动的。
如果通过RMAN备份了初始化参数,那么可以通过RMAN对初始化参数进行恢复。
RMAN备份恢复之SPFILE的恢复
(一):
基于UNIONALL的分页查询执行计划问题
(二):
这篇文章简单介绍NOCATALOG方式下另外一种恢复方法。
前面介绍对于不存在autobackup的情况,SPFILE的恢复问题比较复杂。
如果仅仅是SPFILE丢失,控制文件仍然存在的话,那么还有一种相对简单的恢复方法。
首先手工编辑一个初始化参数文件,指明数据库名称和控制文件位置。
相对于上一篇文章的DBID而言,这些信息是很容易得到的。
[oracle@demo2oracle]$viinit.ora
db_name=testdata
instance_name=testdata
control_files='/data/oradata/testdata/control01.ctl'
db_block_size=8192
注意,如果DB_BLOCK_SIZE的值可以通过alert文件中查到,如果alert文件丢失,可以尝试多次,当发现下面的错误时,关闭实例,重新修改INIT.ORA文件,再次启动。
RMAN>startupmountpfile=/home/oracle/init.ora
Oracleinstancestarted
RMAN-00571:
===========================================================
RMAN-00569:
===============ERRORMESSAGESTACKFOLLOWS===============
RMAN-00571:
===========================================================
RMAN-03002:
failureofstartupcommandat07/05/200720:
32:
11
ORA-00209:
controlfileblocksizemismatch,checkalertlogformoreinfo
下面用RMAN将数据库启动到MOUNT状态,就可以利用控制文件中保存的备份信息去恢复SPFILE了。
[oracle@demo2oracle]$rmantarget/
RecoveryManager:
Release9.2.0.4.0-Production
Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.
connectedtotargetdatabase(notstarted)
RMAN>startupmountpfile=/home/oracle/init.ora
Oracleinstancestarted
databasemounted
TotalSystemGlobalArea97588504bytes
FixedSize451864bytes
VariableSize46137344bytes
DatabaseBuffers50331648bytes
RedoBuffers667648bytes
RMAN>listbackupofspfile;
usingtargetdatabasecontrolfileinsteadofrecoverycatalog
ListofBackupSets
===================
BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime
-------------------------------------------------------------
1154Full0DISK00:
00:
0106-7月-07
BPKey:
2042Status:
AVAILABLETag:
TAG20070706T130211
PieceName:
/data1/backup/testdata/4dim5buh_1_1
SPFILEIncluded:
Modificationtime:
27-2月-07
BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime
-------------------------------------------------------------
1156Full0DISK00:
05:
0906-7月-07
BPKey:
2044Status:
AVAILABLETag:
TAG20070706T130423
PieceName:
/data1/backup/testdata/4jim5c2n_1_1
SPFILEIncluded:
Modificationtime:
27-2月-07
RMAN>restorespfile;
Startingrestoreat06-7月-07
allocatedchannel:
ORA_DISK_1
channelORA_DISK_1:
sid=9devtype=DISK
allocatedchannel:
ORA_DISK_2
channelORA_DISK_2:
sid=10devtype=DISK
channelORA_DISK_1:
startingdatafilebackupsetrestore
channelORA_DISK_1:
restoringSPFILE
outputfilename=/opt/ora9/product/9.2/dbs/spfiletestdata.ora
channelORA_DISK_1:
restoredbackuppiece1
piecehandle=/data1/backup/testdata/4jim5c2n_1_1tag=TAG20070706T130423params=NULL
channelORA_DISK_1:
restorecomplete
Finishedrestoreat06-7月-07
RMAN>startupforce;
Oracleinstancestarted
databasemounted
databaseopened
TotalSystemGlobalArea1175525576bytes
FixedSize452808bytes
VariableSize335544320bytes
DatabaseBuffers838860800bytes
RedoBuffers667648bytes
使用这种方式,只需要指定DBNAME,控制文件的位置,并确保控制文件没有丢失就可以了。
不再需要控制文件的AUTOBACKUP,以及DBID的值,也不需要挨个备份集尝试去恢复SPFILE。
4RMAN-6172错误RMAN从AUTOBACKUP中恢复SPFILE报
在使用RMAN从AUTOBACKUP中恢复SPFILE,可能会碰到这个错误,这里简单总结一下。
在RMAN恢复SPFILE过程中,可能遇到下面的错误:
RMAN>restorespfilefromautobackup;
Startingrestoreat27-6月-07
usingtargetdatabasecontrolfileinsteadofrecoverycatalog
allocatedchannel:
ORA_DISK_1
channelORA_DISK_1:
sid=9devtype=DISK
channelORA_DISK_1:
lookingforautobackuponday:
20070627
channelORA_DISK_1:
lookingforautobackuponday:
20070626
channelORA_DISK_1:
lookingforautobackuponday:
20070625
channelORA_DISK_1:
lookingforautobackuponday:
20070624
channelORA_DISK_1:
lookingforautobackuponday:
20070623
channelORA_DISK_1:
lookingforautoba
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RMAN 备份 恢复 SPFILE