当前位置: 首页 > news >正文

只有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,如需转载请自行联系原作者

相关文章:

  • Perl脚本学习笔记(一)
  • func 安装之艰辛历程
  • SoapUI实践:自动化测试、压力测试、持续集成
  • linux命令之wget
  • 关于同一线程两次调用EnterCriticalSection的测试
  • 顶级MySQL主从复制企业应用
  • Struts2利用拦截器实现权限控制
  • kvm虚拟化学习笔记(十三)之kvm虚拟机磁盘文件读取小结
  • Python回顾与整理4:序列1—字符串
  • python小代码之阶乘求和
  • ibatis动态生成列时的列名无效
  • 通过构造函数来创建新对象
  • Python字符串、列表、元组、集合、字典方法
  • 【MongoDB学习笔记32】MongoDB修改副本集配置
  • iptables防火墙 --Linux详解
  • [case10]使用RSQL实现端到端的动态查询
  • 5、React组件事件详解
  • classpath对获取配置文件的影响
  • Docker容器管理
  • go append函数以及写入
  • javascript 哈希表
  • javascript 总结(常用工具类的封装)
  • quasar-framework cnodejs社区
  • React+TypeScript入门
  • Solarized Scheme
  • spring boot下thymeleaf全局静态变量配置
  • Terraform入门 - 3. 变更基础设施
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 关于springcloud Gateway中的限流
  • 诡异!React stopPropagation失灵
  • 聚类分析——Kmeans
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 《码出高效》学习笔记与书中错误记录
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $refs 、$nextTic、动态组件、name的使用
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (力扣题库)跳跃游戏II(c++)
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)3D模板阴影原理
  • (转)EOS中账户、钱包和密钥的关系
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .Net 8.0 新的变化
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .net6+aspose.words导出word并转pdf
  • .NET的数据绑定