只有rman的备份文件恢复过程
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;
已连接到目标数据库 (未启动)
RMAN> list backup;
使用目标数据库控制文件替代恢复目录
RMAN> startup nomount;
启动失败: 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) ??????????????????????
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 实例已启动
Oracle 实例已启动
系统全局区域总计 159383552 字节
Fixed Size 1247828 字节
Variable Size 58721708 字节
Database Buffers 92274688 字节
Redo Buffers 7139328 字节
Variable Size 58721708 字节
Database Buffers 92274688 字节
Redo Buffers 7139328 字节
RMAN>
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
通道 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
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: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
输出文件名=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\CTL1TEST.ORA
完成 restore 于 2010-04-20 16:17:12
通道 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
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
------------------------------------ ----------------------
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 。
D:\oracle\product\10.2.0\oradata\test 目录下,并修改为CONTROL01.CTL,CONTROL02.CTL,CONTROL03.CTL 。
重新进入RMAN ,就可以看到之前的备份信息了。
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
------- ---- -- ---------- ----------- ------------ -------------------
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
RMAN> restore database;
启动 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 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
已交叉检验的 2 对象
完成 implicit crosscheck copy 于 2010-04-20 16:42:44
搜索恢复区域中的所有文件
正在编制文件目录...
没有为文件编制目录
正在编制文件目录...
没有为文件编制目录
使用通道 ORA_DISK_1
通道 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
通道 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日志文件所以我们不应用日志恢复:
由于没有redo log日志文件所以我们不应用日志恢复:
RMAN> recover database noredo;
启动 recover 于 2010-04-20 16:47:41
使用通道 ORA_DISK_1
完成 recover 于 2010-04-20 16:47:42
使用通道 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 例程已经启动。
ORACLE 例程已经启动。
Total System Global Area 281018368 bytes
Fixed Size 1248528 bytes
Variable Size 92275440 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 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 例程已经启动。
ORACLE 例程已经启动。
Total System Global Area 281018368 bytes
Fixed Size 1248528 bytes
Variable Size 92275440 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 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,如需转载请自行联系原作者