rman catalog损坏从rman备份集中提取数据文件 ----------------------------
C:>rman target /



恢复管理器: Release 10.2.0.1.0 - Production on 星期三 1月 17 18:48:04 2007



Copyright (c) 1982, 2005, Oracle.  All rights reserved.



连接到目标数据库: UTF (DBID=1000919928)



RMAN> backup as compressed backupset full database format 'd:\sosdbcom_

full_%U';



启动 backup 于 17-1月 -07

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=274 devtype=DISK

通道 ORA_DISK_1: 启动压缩的全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

输入数据文件 fno=00001 name=E:\ORACLEPRODUCT10.2.0\ORADATA\UTFSYSTEM01.DBF

输入数据文件 fno=00003 name=E:\ORACLEPRODUCT10.2.0\ORADATA\UTFSYSAUX01.DBF

输入数据文件 fno=00002 name=E:\ORACLEPRODUCT10.2.0\ORADATA\UTFUNDOTBS01.DBF

输入数据文件 fno=00004 name=E:\ORACLEPRODUCT10.2.0\ORADATA\UTFUSERS01.DBF

输入数据文件 fno=00005 name=E:\ORACLEPRODUCT10.2.0\ORADATA\UTFTEST.DBF

输入数据文件 fno=00006 name=E:\ORACLEPRODUCT10.2.0\ORADATA\UTFTEST1.DBF

通道 ORA_DISK_1: 正在启动段 1 于 17-1月 -07

通道 ORA_DISK_1: 已完成段 1 于 17-1月 -07

段句柄=d:\sosdbcom_full_1JI7OIMI_1_1 标记=TAG20070117T184953 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:55

通道 ORA_DISK_1: 启动压缩的全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

备份集中包括当前控制文件

在备份集中包含当前的 SPFILE

通道 ORA_DISK_1: 正在启动段 1 于 17-1月 -07

通道 ORA_DISK_1: 已完成段 1 于 17-1月 -07

段句柄=d:\sosdbcom_full1KI7OIOA_1_1 标记=TAG20070117T184953 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05

完成 backup 于 17-1月 -07



--========================================================

删除controlfile , datafile , redo

--========================================================



C:>sqlplus /nolog



SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 1月 17 23:10:46 2007



Copyright (c) 1982, 2005, Oracle.  All rights reserved.



SQL> connect sys as sysdba

输入口令:

已连接。

SQL> DECLARE

  2  devtype varchar2(256);

  3  done boolean;

  4  BEGIN

  5  devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');

  6  sys.dbms_backup_restore.restoreSetDatafile;

  7  sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:\oracleproduct10.

2.0\oradata\UTFControl02.ctl');

  8  sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'d:\sosdbcom_

full_1KI7OIOA_1_1', params=>null);

  9  sys.dbms_backup_restore.deviceDeallocate;

 10  END;

 11  /



PL/SQL 过程已成功完成。



SQL> edit

已写入 file afiedt.buf



  1  DECLARE

  2  devtype varchar2(256);

  3  done boolean;

  4  BEGIN

  5  devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');

  6  sys.dbms_backup_restore.restoreSetDatafile;

  7  sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:\oracleproduct10.

2.0\oradata\UTFControl03.ctl');

  8  sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'d:\sosdbcom_

full_1KI7OIOA_1_1', params=>null);

  9  sys.dbms_backup_restore.deviceDeallocate;

 10* END;

SQL> /



PL/SQL 过程已成功完成。



SQL>

SQL> edit

已写入 file afiedt.buf



  1  DECLARE

  2  devtype varchar2(256);

  3  done boolean;

  4  BEGIN

  5  devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');

  6  sys.dbms_backup_restore.restoreSetDatafile;

  7  sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:\oracleproduct10.

2.0\oradata\UTFControl01.ctl');

  8  sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'d:\sosdbcom_

full_1KI7OIOA_1_1', params=>null);

  9  sys.dbms_backup_restore.deviceDeallocate;

 10* END;

SQL> /



PL/SQL 过程已成功完成。



SQL> alter database mount;



数据库已更改。



SQL> EDIT

已写入 file afiedt.buf



  1* alter database mount

SQL> DECLARE

  2  devtype varchar2(256);

  3  done boolean;

  4  BEGIN

  5  devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');

  6  sys.dbms_backup_restore.restoreSetDatafile;

  7  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'E:\ORACLEP

RODUCT10.2.0\ORADATA\UTFSYSTEM01.DBF');

  8  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'E:\ORACLEP

RODUCT10.2.0\ORADATA\UTFSYSAUX01.DBF');

  9  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'E:\ORACLEP

RODUCT10.2.0\ORADATA\UTFUNDOTBS01.DBF');

 10  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'E:\ORACLEP

RODUCT10.2.0\ORADATA\UTFUSERS01.DBF');

 11  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'E:\ORACLEP

RODUCT10.2.0\ORADATA\UTFTEST.DBF');

 12  sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'E:ORACLEP

RODUCT10.2.0ORADATAUTFTEST1.DBF');

 13  sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'d:\sosdbcom_

full_1JI7OIMI_1_1', params=>null);

 14  sys.dbms_backup_restore.deviceDeallocate;

 15  END;

 16  /



PL/SQL 过程已成功完成。



SQL> recover database;

ORA-00283: 恢复会话因错误而取消

ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成



SQL> recover database using backup controlfile;

ORA-00279: 更改 1007563 (在 01/17/2007 18:49:54 生成) 对于线程 1 是必需的

ORA-00289: 建议:

E:\ORACLEPRODUCT10.2.0\FLASH_RECOVERY_AREA\UTFARCHIVELOG2007_01_17O1_MF_1_9



7_%U_.ARC

ORA-00280: 更改 1007563 (用于线程 1) 在序列 #97 中





指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

cancel

介质恢复已取消。

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 1007563 (在 01/17/2007 18:49:54 生成) 对于线程 1 是必需的

ORA-00289: 建议:

E:\ORACLEPRODUCT10.2.0\FLASH_RECOVERY_AREA\UTFARCHIVELOG2007_01_17O1_MF_1_9



7_%U_.ARC

ORA-00280: 更改 1007563 (用于线程 1) 在序列 #97 中





指定日志: {<RET>=suggested | filename | AUTO | CANCEL}



ORA-00308: 无法打开归档日志

'E:\ORACLEPRODUCT10.2.0\FLASH_RECOVERY_AREA\UTFARCHIVELOG2007_01_17O1_MF_1_



97_%U_.ARC'

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。





SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项





SQL> alter database open resetlogs;



数据库已更改。



SQL>

/


[align=right][color=#000066][此贴子已经被作者于2007-7-20 13:22:48编辑过][/color][/align] ---------数据恢复 oracle数据库恢复专家 13352468096 QQ:9417901 网站:http://www.sosdb.com-----