ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 删掉spfile在没有自动备份控制文件下从以前的rman备份中恢复数据库

删掉spfile在没有自动备份控制文件下从以前的rman备份中恢复数据库

原创 Linux操作系统 作者:xz831009 时间:2009-03-18 15:41:01 0 删除 编辑

1.首先要有一个包含spfile备份的rman备份:

run

{

allocate channel c1 device type disk;

allocate channel c2 device type disk;

backup database format 'f:\backup\%U.dbf';

backup current controlfile format 'f:\backup\%U.ctl' ;

backup archivelog all format 'f:\backup\%U.log' delete input ;

release channel c1;

release channel c2;

}

得到:

RMAN> list backup;

备份集列表

===================

 

BS关键字 类型LV大小      设备类型经过时间完成时间

------- ---- -- ---------- ----------- ------------ ----------

48     Full   1M        DISK       00:00:02    10-2-09

BP关键字: 55  状态: AVAILABLE  标记:TAG20090210T113440

段名:F:\BACKUP\2BK70P6G_1_1.CTL

 控制文件包括: Ckp SCN: 9008404539762  Ckp时间:10-2-09

 

BS关键字 类型LV大小      设备类型经过时间完成时间

------- ---- -- ---------- ----------- ------------ ----------

49     Full   120M      DISK       00:01:00    10-2-09

BP关键字: 56  状态: AVAILABLE  标记:TAG20090210T113544

段名:F:\BACKUP\2DK70P8G_1_1.DBF

 备份集49中的数据文件列表

 文件LV类型Ckp SCN   Ckp时间  名称

 ---- -- ---- ---------- ---------- ----

 2      Full 9008404539854 10-2-09 D:\ORACLE\ORADATA\WASD\UNDOTBS01.DBF

 3      Full 9008404539854 10-2-09 D:\ORACLE\ORADATA\WASD\RMAN01.DBF

 4      Full 9008404539854 10-2-09 D:\ORACLE\ORADATA\WASD\STATSPACK_01.DBF

 6      Full 9008404539854 10-2-09 D:\ORACLE\ORADATA\WASD\INDX01.DBF

 

BS关键字 类型LV大小      设备类型经过时间完成时间

------- ---- -- ---------- ----------- ------------ ----------

50     Full   352M      DISK       00:02:02    10-2-09

BP关键字: 57  状态: AVAILABLE  标记:TAG20090210T113544

段名:F:\BACKUP\2CK70P8G_1_1.DBF

 包含的SPFILE:修改时间: 10-2-09

 备份集50中的数据文件列表

 文件LV类型Ckp SCN   Ckp时间  名称

 ---- -- ---- ---------- ---------- ----

 1      Full 9008404539859 10-2-09 D:\ORACLE\ORADATA\WASD\SYSTEM01.DBF

 5      Full 9008404539859 10-2-09 D:\ORACLE\ORADATA\WASD\STATSPACK_02.DBF

 8      Full 9008404539859 10-2-09 D:\ORACLE\ORADATA\WASD\TOOLS01.DBF

 9      Full 9008404539859 10-2-09 D:\ORACLE\ORADATA\WASD\USERS01.DBF

 

BS关键字 类型LV大小      设备类型经过时间完成时间

------- ---- -- ---------- ----------- ------------ ----------

51     Full   1M        DISK       00:00:02    10-2-09

BP关键字: 58  状态: AVAILABLE  标记:TAG20090210T113751

段名:F:\BACKUP\2EK70PCF_1_1.CTL

 控制文件包括: Ckp SCN: 9008404539963  Ckp时间:10-2-09

 

BS关键字 大小      设备类型占用时间完成时间

------- ---------- ----------- ------------ ----------

52     12M       DISK       00:00:04    10-2-09

BP关键字: 59  状态: AVAILABLE  标记:TAG20090210T113756

段名:F:\BACKUP\2FK70PCK_1_1.LOG

 

 备份集52中的已存档日志列表

 Thrd Seq    SCN   短时间    下一个SCN  下一次

 ---- ------- ---------- ---------- ---------- ---------

 1   76     9008404445122 08-2-09 9008404466404 08-2-09

 1   77     9008404466404 08-2-09 9008404525427 09-2-09

 

BS关键字 大小      设备类型占用时间完成时间

------- ---------- ----------- ------------ ----------

53     4M        DISK       00:00:05    10-2-09

BP关键字: 60  状态: AVAILABLE  标记:TAG20090210T113756

段名:F:\BACKUP\2GK70PCK_1_1.LOG

 

 备份集53中的已存档日志列表

 Thrd Seq    SCN   短时间    下一个SCN  下一次

 ---- ------- ---------- ---------- ---------- ---------

 1   78     9008404525427 09-2-09 9008404538974 10-2-09

 1   79     9008404538974 10-2-09 9008404539065 10-2-09

 1   80     9008404539065 10-2-09 9008404539194 10-2-09

 

BS关键字 大小      设备类型占用时间完成时间

------- ---------- ----------- ------------ ----------

54     307K      DISK       00:00:02    10-2-09

BP关键字: 61  状态: AVAILABLE  标记:TAG20090210T113756

段名:F:\BACKUP\2HK70PCQ_1_1.LOG

 

 备份集54中的已存档日志列表

 Thrd Seq    SCN   短时间    下一个SCN  下一次

 ---- ------- ---------- ---------- ---------- ---------

 1   81     9008404539194 10-2-09 9008404539971 10-2-09

 

2.删除spfile文件

WASD (DBID=3036526324)

SQL>shutdown immediate;

SQL> host;

Microsoft Windows XP [版本5.1.2600]

(C)版权所有1985-2001 Microsoft Corp.

 

C:\Documents and Settings\wasd>

C:\Documents and Settings\wasd>delD:\oracle\ora92\database\SPFILEWASD.ORA;

这个时间已经是rman备份做过半天以后了。

 

此时的数据库已经打不开了:

SQL> startup;

ORA-01078: failure in processing system parameters

LRM-00109: N^7(4r?*2NJ}ND<~ 'D:\ORACLE\ORA92\DATABASE\INITWASD.ORA'

SQL>

 

3. RMAN进行恢复;

C:\Documents and Settings\wasd>rman target/

RMAN> set dbid=3036526324

 

正在执行命令: SET DBID

RMAN> startup nomount;

 

启动失败: ORA-01078: failure in processing system parameters

LRM-00109: N^7(4r?*2NJ}ND<~ 'D:\ORACLE\ORA92\DATABASE\INITWASD.ORA'

 

正在尝试在没有参数文件的情况下启动Oracle例程...

 

RMAN>RESTORE SPFILE FROM AUTOBACKUP;

发现无法从自动备份里面找到合适的spfile

 

此时怎么办呢??可以尝试从以前rman备份中恢复spfile,接着上面继续;

 

RMAN> restore spfile from 'F:\backup\2CK70P8G_1_1.DBF';

 

启动restore10-2-09

 

使用通道ORA_DISK_1

通道ORA_DISK_1:已找到的自动备份: F:\backup\2CK70P8G_1_1.DBF

通道ORA_DISK_1:从自动备份复原SPFILE已完成

完成restore10-2-09

 

RMAN> shutdown immediate;

 

Oracle例程已关闭

 

RMAN>

 

RMAN>

 

RMAN> startup;

 

已连接到目标数据库(未启动)

Oracle例程已启动

数据库已加载

数据库已打开

总结:

这个是我在做RMAN练习的时候,有个例子说是可以在非catalog模式恢复被误删的spfile,但是没注意其前提:有自动的控制文件备份!

于是发生了上面一幕,在当时的情况下,rman无法连接到目标数据库,目标数据库只能启动到nomountrman里面连list backup都不能使用,更无法restore database了,呵呵。

rman一定要有完整的备份,另外呢,dbid也要经常记录。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9719235/viewspace-571435/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-12-20

  • 博文量
    13
  • 访问量
    17177