C:\Documents and Settings\gao>rman
恢复管理器: Release 10.2.0.1.0 - Production on 星期二 4月 20 16:08:40 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect target sys/oracle;
启动失败: ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file 'D:\oracle\product\10.2.0\db_1/dbs/spfilete
st.ora'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
在没有参数文件的情况下启动 Oracle 实例以检索 spfile
Oracle 实例已启动
Fixed Size 1247828 字节
Variable Size 58721708 字节
Database Buffers 92274688 字节
Redo Buffers 7139328 字节
RMAN> list backupset;
与上次看到的是一样的。
RMAN> restore spfile from 'e:\orabackup\CTL_DB_TEST_C-2013144988-20100420-01';
启动 restore 于 2010-04-20 16:14:07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=36 devtype=DISK
通道 ORA_DISK_1: 已找到的自动备份: e:\orabackup\CTL_DB_TEST_C-2013144988-2010042
0-01
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 2010-04-20 16:14:09
RMAN> restore controlfile from 'e:\orabackup\CTL_DB_TEST_C-2013144988-20100420-01';
启动 restore 于 2010-04-20 16:17:10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
输出文件名=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\CTL1TEST.ORA
完成 restore 于 2010-04-20 16:17:12
把 D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\CTL1TEST.ORA 拷贝到
D:\oracle\product\10.2.0\oradata\test 目录下,并修改为CONTROL01.ORA,CONTROL02.ORA,CONTROL03.ORA 。
SQL> startup nomount;
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> alter database mount;
alter database mount
*
第 1 行出现错误:
ORA-01103: 控制文件中的数据库名 ''TEST'' 不是 ''DUMMY''
SQL> startup nomount force;
ORACLE 例程已经启动。
Total System Global Area 281018368 bytes
Fixed Size 1248528 bytes
Variable Size 92275440 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 bytes
SQL> show parameter control
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
control_file_record_keep_time integer
7
control_files string
D:\ORACLE\PRODUCT\10.2.0\ORADA
TA\TEST\CONTROL01.CTL, D:\ORAC
LE\PRODUCT\10.2.0\ORADATA\TEST
\CONTROL02.CTL, D:\ORACLE\PROD
UCT\10.2.0\ORADATA\TEST\CONTRO
L03.CTL
SQL> alter database mount;
alter database mount
*
第 1 行出现错误:
ORA-00205: ?????????, ??????, ??????? “ORA-00205: error in identifying control file, check alert log for more info”
经检查,发现之前做的控制文件的名字搞错了,要修改为.CTL扩展名的才可以。
把 D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\CTL1TEST.ORA 拷贝到
D:\oracle\product\10.2.0\oradata\test 目录下,并修改为CONTROL01.CTL,CONTROL02.CTL,CONTROL03.CTL 。
RMAN> list backup of database;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ -------------------
96 Incr 0 678.05M DISK 00:02:17 2010-04-20 16:03:15
BP 关键字: 96 状态: AVAILABLE 已压缩: YES 标记: TAG20100420T160058
段名:E:\ORABACKUP\TEST_DB_TEST_99_1_1_716832058.DBF
备份集 96 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ------------------- ----
1 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\SYSTEM01.DBF
2 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\UNDOTBS01.DBF
3 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\SYSAUX01.DBF
4 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\USERS01.DBF
5 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\EXAMPLE01.DBF
6 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\TEST01_01.DBF
7 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\TEST02_01.DBF
8 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\RMAN01_01.DBF
9 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\JNDATATBS01.DBF
10 0 Incr 1837605254 2010-04-20 16:00:58 D:\ORACLE\PRODUCT\10.2.0\ORADATA\T
EST\TEST10_01.DBF
启动 restore 于 2010-04-20 16:42:42
启动 implicit crosscheck backup 于 2010-04-20 16:42:42
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
已交叉检验的 21 对象
完成 implicit crosscheck backup 于 2010-04-20 16:42:43
启动 implicit crosscheck copy 于 2010-04-20 16:42:43
使用通道 ORA_DISK_1
已交叉检验的 2 对象
完成 implicit crosscheck copy 于 2010-04-20 16:42:44
搜索恢复区域中的所有文件
正在编制文件目录...
没有为文件编制目录
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\USERS01.DBF
正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\EXAMPLE01.DBF
正将数据文件00006恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST01_01.DBF
正将数据文件00007恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST02_01.DBF
正将数据文件00008恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\RMAN01_01.DBF
正将数据文件00009恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\JNDATATBS01.DBF
正将数据文件00010恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST10_01.DBF
通道 ORA_DISK_1: 正在读取备份段 E:\ORABACKUP\TEST_DB_TEST_99_1_1_716832058.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:\ORABACKUP\TEST_DB_TEST_99_1_1_716832058.DBF 标记 = TAG20100420T16005
8
通道 ORA_DISK_1: 恢复完成, 用时: 00:02:35
完成 restore 于 2010-04-20 16:45:20
此时可以在$ORACLE_BASE/oradata/test/下看到期望已久的datafile了.
不过此时还没有完哈,需要在接在励.
由于没有redo log日志文件所以我们不应用日志恢复:
RMAN> recover database noredo;
启动 recover 于 2010-04-20 16:47:41
使用通道 ORA_DISK_1
完成 recover 于 2010-04-20 16:47:42
下面需要大家坚持不懈的完成最后一个工作了.
那就是通过已经恢复的controlfile and datafile 来演算出redo log file了.
C:\Documents and Settings\gao>sqlplus sys/oracle as sysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 4月 20 16:50:41 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> startup force mount;
ORACLE 例程已经启动。
Total System Global Area 281018368 bytes
Fixed Size 1248528 bytes
Variable Size 92275440 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> alter system set "_allow_resetlogs_corruption"=true scope=both;
alter system set "_allow_resetlogs_corruption"=true scope=both
*
第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数
SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
SQL> startup force mount;
ORACLE 例程已经启动。
Total System Global Area 281018368 bytes
Fixed Size 1248528 bytes
Variable Size 92275440 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open resetlogs;
查看D:\oracle\product\10.2.0\oradata\test 目录下,已经有了REDO 文件了。
好了到这里,非常高兴了,你已经成功的从只有rman备份文件中恢复了参数文件,控制文件,所有数据文件,日志文件了.
通常到这里还需要你全备数据库的哈,别忘了!
本文转自 gjm008 51CTO博客,原文链接:http://blog.51cto.com/gaoshan/301529,如需转载请自行联系原作者