只有rman的备份文件恢复过程

简介:
只有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) ??????????????????????
在没有参数文件的情况下启动 Oracle 实例以检索 spfile
Oracle 实例已启动
系统全局区域总计     159383552 字节
Fixed Size                     1247828 字节
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: 已找到的自动备份: 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 ,就可以看到之前的备份信息了。
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
 
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 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: 正在开始恢复数据文件备份集
通道 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,如需转载请自行联系原作者
相关文章
RMAN备份及恢复归档日志的语法
RMAN备份及恢复归档日志的语法
1022 0
|
SQL Oracle 关系型数据库
3、控制文件的备份与恢复
控制文件的备份与恢复
137 0
|
JSON NoSQL 关系型数据库
备份与还原
备份与还原
81 0
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库 数据库
oracle数据库控制文件的备份和恢复之三RMAN自动备份和恢复
使用RMAN自动备份的控制文件向数据库中恢复控制文件
380 0
|
SQL Oracle 关系型数据库
|
SQL Oracle 关系型数据库
|
SQL 监控 Oracle
|
SQL Oracle 关系型数据库