缺少初始化文件,数据库是无法启动的。如果通过RMAN备份了初始化参数,那么可以通过RMAN对初始化参数进行恢复。
RMAN备份恢复之SPFILE的恢复(一):http://yangtingkun.itpub.net/post/468/300061
基于UNION ALL的分页查询执行计划问题(二):http://yangtingkun.itpub.net/post/468/303523
这篇文章简单介绍NOCATALOG方式下另外一种恢复方法。
前面介绍对于不存在autobackup的情况,SPFILE的恢复问题比较复杂。
如果仅仅是SPFILE丢失,控制文件仍然存在的话,那么还有一种相对简单的恢复方法。首先手工编辑一个初始化参数文件,指明数据库名称和控制文件位置。相对于上一篇文章的DBID而言,这些信息是很容易得到的。
[oracle@demo2 oracle]$ vi init.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> startup mount pfile=/home/oracle/init.ora
Oracle instance started
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 07/05/2007 20:32:11
ORA-00209: control file blocksize mismatch, check alert log for more info
下面用RMAN将数据库启动到MOUNT状态,就可以利用控制文件中保存的备份信息去恢复SPFILE了。
[oracle@demo2 oracle]$ rman target /
Recovery Manager: Release 9.2.0.4.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
connected to target database (not started)
RMAN> startup mount pfile=/home/oracle/init.ora
Oracle instance started
database mounted
Total System Global Area 97588504 bytes
Fixed Size 451864 bytes
Variable Size 46137344 bytes
Database Buffers 50331648 bytes
www.ixdba.net
Redo Buffers 667648 bytes
RMAN> list backup of spfile;
using target database controlfile instead of recovery catalog
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1154 Full 0 DISK 00:00:01 06-7月 -07
BP Key: 2042 Status: AVAILABLE Tag: TAG20070706T130211
Piece Name: /data1/backup/testdata/4dim5buh_1_1
SPFILE Included: Modification time: 27-2月 -07
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1156 Full 0 DISK 00:05:09 06-7月 -07
BP Key: 2044 Status: AVAILABLE Tag: TAG20070706T130423
Piece Name: /data1/backup/testdata/4jim5c2n_1_1
SPFILE Included: Modification time: 27-2月 -07
RMAN> restore spfile;
Starting restore at 06-7月 -07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=9 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=10 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: restoring SPFILE
output filename=/opt/ora9/product/9.2/dbs/spfiletestdata.ora
channel ORA_DISK_1: restored backup piece 1
piece handle=/data1/backup/testdata/4jim5c2n_1_1 tag=TAG20070706T130423 params=NULL
channel ORA_DISK_1: restore complete
Finished restore at 06-7