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 'E:trans_tbsbakutf_
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.0ORADATAUTFSYSTEM01.DBF
输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATAUTFTEST.DBF
输入数据文件 fno=00006 name=E:ORACLEPRODUCT10.2.0ORADATAUTFTEST1.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-1月 -07
通道 ORA_DISK_1: 已完成段 1 于 17-1月 -07
段句柄=E:TRANS_TBSBAKUTF_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
段句柄=E:TRANS_TBSBAKUTF_FULL_1KI7OIOA_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.0oradataUTFControl02.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_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.0oradataUTFControl03.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_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.0oradataUTFControl01.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10* END;
SQL> /
PL/SQL 过程已成功完成。
controlfile一旦恢复成功既可以通过dbms_backup_restore来恢复数据文件也可以通过rman来恢复!
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.0ORADATAUTFSYSTEM01.DBF');
8 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFSYSAUX01.DBF');
9 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFUNDOTBS01.DBF');
10 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFUSERS01.DBF');
11 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFTEST.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=>'E:trans_tbs
bakUTF_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.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_01_17O1_MF_1_9
7_%U_.ARC
ORA-00280: 更改 1007563 (用于线程 1) 在序列 #97 中
指定日志: {=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.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_01_17O1_MF_1_9
7_%U_.ARC
ORA-00280: 更改 1007563 (用于线程 1) 在序列 #97 中
指定日志: {=suggested | filename | AUTO | CANCEL}
ORA-00308: 无法打开归档日志
'E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_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>
--=======================================
恢复spfile and pfile的语法如下
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.restoreSPFILETO(sfname=>'E:oracleproduct10.2.0d
b_2databaseSPFILEUTF.ORA');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /
PL/SQL 过程已成功完成。
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.restoreSPFILETO(Pfname=>'E:oracleproduct10.2.0a
dminUTFpfileINIT2.ORA');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /
PL/SQL 过程已成功完成。
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-61725/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/19602/viewspace-61725/