Oracle控制文件恢复案例(二)

2014-11-24 13:06:28 · 作者: · 浏览: 1
制文件恢复(这里的备份控制文件是老的,缺失一些tablespace信息)
1.首先备份一个控制文件

alter database backup controlfileto '/backup/siqianctl.bak';

2.创建一个新的表空间,使备份的控制文件变老

create tablespace bak_cont_ts datafile'/u01/oradata/siqian11g/bak_cont_ts01.dbf' size 10m;

3.关闭数据库并删除当前所有的控制文件

shutdown immediate

[oracle@siqian siqian11g]$ rm-f control0*

4.启动数据库

startup

ORA-00205: errorin identifying controlfile,check alert logfor more info

5.还原备份控制文件

cp /backup/siqianctl.bak/u01/oradata/siqian11g/control01.ctl

cp /backup/siqianctl.bak/u01/oradata/siqian11g/control02.ctl

cp /backup/siqianctl.bak/u01/oradata/siqian11g/control03.ctl

6.把数据库启到mount状态

alter database mount;

7.查询控制文件中的相关信息

select file#,checkpoint_change#,namefrom v$datafile;

     FILE# CHECKPOINT_CHANGE# NAME

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

         1            2251199 /u01/oradata/siqian11g/system01.dbf

         2            2251199 /u01/oradata/siqian11g/sysaux01.dbf

         3            2251199 /u01/oradata/siqian11g/undotbs1.dbf

         4            2251199 /u01/oradata/siqian11g/users01.dbf

         5            2251199 /u01/oradata/siqian11g/example01.dbf

         6            2251199 /u01/oradata/siqian11g/test01.dbf

         7            2249435 /u01/oradata/siqian11g/new_ts01.dbf



7 rows selected.

可见里面没有刚才创建的bak_cont_ts01.bak文件。

8.使用备份的控制文件恢复数据库

recover database using backup controlfile;

ORA-00279: change2249435 generated at06/29/201322:17:58 neededfor thread 1

ORA-00289: suggestion: /backup/arch/arch_1_819402844_11.log

ORA-00280: change2249435 for thread1 is in sequence #11

Specify log:{
=suggested| filename | AUTO| CANCEL}... 一路回车下去恢复 到这里出错: Specify log:{=suggested| filename | AUTO| CANCEL} ORA-00279: change2251199 generated at06/29/201322:45:23 neededfor thread 1 ORA-00289: suggestion: /backup/arch/arch_1_819402844_14.log ORA-00280: change2251199 for thread1 is in sequence #14 ORA-00278:log file'/backup/arch/arch_1_819402844_13.log' no longer neededfor this recovery Specify log:{=suggested| filename | AUTO| CANCEL} ORA-00308: cannotopen archived log'/backup/arch/arch_1_819402844_14.log' ORA-27037: unableto obtain file status Linux Error: 2: No suchfile or directory Additional information:3 查了一下,只有到序列13的归档日志。 下面怎么办呢?看来得用在线日志做恢复。查看下当前日志 sys@SIQIAN11>selectgroup#,sequence#,statusfrom v$log; GROUP# SEQUENCE# STATUS -------------------- ---------------- 1 13 INACTIVE 3 12 INACTIVE 2 14 CURRENT 看下当前14序列的日志在哪个路径 select memeber from v$logfile; MEMBER ---------------------------------------- /u01/oradata/siqian11g/redo01.log /u01/oradata/siqian11g/redo03.log /u01/oradata/siqian11g/redo02.log 再一次用备份控制文件恢复数据库 sys@SIQIAN11>recover databaseusing backup controlfile; ORA-00279: change2251640 generated at06/29/201322:56:56 neededfor thread 1 ORA-00289: suggestion: /backup/arch/arch_1_819402844_14.log ORA-00280: change2251640 for thread1 is in sequence #14 Specify log:{=suggested| filename | AUTO| CANCEL} /u01/oradata/siqian11g/redo02.log Log applied. Media recovery complete. 9.用resetlogs打开数据库 alter database open resetlogs; 10.做数据库全备