基于取消的不完全恢复是指数据库恢复到特定日志序列号之前的状态。当因丢失归档日志或重做日志完全恢复失败时,可以使用这种方法。

在做这个实验时我是将序列号位 23的日志文件删除了。实验表t1;

SQL> select * from t1;

NUM                                                                     
----------                                                                     
         1                                                                     
         2                                                                     
         3                                                                     
         4                                                                     
         5                                                                     
         6

已选择6行。

模拟实验环境,删除t1表所在的数据文件 test.dbf

1)关闭数据库,将数据打开至加载状态。执行不完全恢复时数据库必须在mount状态。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  535662592 bytes                                      
Fixed Size                  1334380 bytes                                      
Variable Size             142607252 bytes                                      
Database Buffers          385875968 bytes                                      
Redo Buffers                5844992 bytes                                      
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'F:\APP\YANG\ORADATA\ORACL\TEST.DBF'

2)  复制所有数据文件备份。

SQL> @f:\sql\recover.sql
SQL> select file#,change# from v$recover_file;

FILE#    CHANGE#                                                          
---------- ----------                                                          
         1    2558251                                                          
         2    2558251                                                          
         3    2558251                                                          
         4    2558251                                                          
         5    2558251                                                          
         6    2558251

已选择6行。

----当复制数据文件备份时,必须确保备份文件的scn值小于要恢复到的scn值。

2558251     !

SQL> select max(first_change#) fchange from v$log_history where sequence#=23;

FCHANGE                                                                     
----------                                                                     
   2559954

3)执行  recover database until cancel 命令。

SQL> recover database until cancel;
ORA-00279: 更改 2558251 (在 05/14/2010 12:33:26 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\13_1_718839060.LOG
ORA-00280: 更改 2558251 (用于线程 1) 在序列 #13 中

指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01195: 文件 1 的联机备份需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF'

ORA-01112: 未启动介质恢复

SQL> recover database until cancel;
ORA-00279: 更改 2558251 (在 05/14/2010 12:33:26 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\13_1_718839060.LOG
ORA-00280: 更改 2558251 (用于线程 1) 在序列 #13 中

指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 2558455 (在 05/14/2010 12:38:45 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\14_1_718839060.LOG
ORA-00280: 更改 2558455 (用于线程 1) 在序列 #14 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\13_1_718839060.LOG'

ORA-00279: 更改 2558787 (在 05/14/2010 12:45:57 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\15_1_718839060.LOG
ORA-00280: 更改 2558787 (用于线程 1) 在序列 #15 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\14_1_718839060.LOG'

ORA-00279: 更改 2558793 (在 05/14/2010 12:46:07 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\16_1_718839060.LOG
ORA-00280: 更改 2558793 (用于线程 1) 在序列 #16 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\15_1_718839060.LOG'

ORA-00279: 更改 2558799 (在 05/14/2010 12:46:18 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\17_1_718839060.LOG
ORA-00280: 更改 2558799 (用于线程 1) 在序列 #17 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\16_1_718839060.LOG'

ORA-00279: 更改 2558818 (在 05/14/2010 12:46:33 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\18_1_718839060.LOG
ORA-00280: 更改 2558818 (用于线程 1) 在序列 #18 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\17_1_718839060.LOG'

ORA-00279: 更改 2559925 (在 05/14/2010 13:14:21 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\19_1_718839060.LOG
ORA-00280: 更改 2559925 (用于线程 1) 在序列 #19 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\18_1_718839060.LOG'

ORA-00279: 更改 2559934 (在 05/14/2010 13:14:41 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\20_1_718839060.LOG
ORA-00280: 更改 2559934 (用于线程 1) 在序列 #20 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\19_1_718839060.LOG'

ORA-00279: 更改 2559942 (在 05/14/2010 13:14:57 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\21_1_718839060.LOG
ORA-00280: 更改 2559942 (用于线程 1) 在序列 #21 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\20_1_718839060.LOG'

ORA-00279: 更改 2559948 (在 05/14/2010 13:15:06 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\22_1_718839060.LOG
ORA-00280: 更改 2559948 (用于线程 1) 在序列 #22 中
ORA-00278: 此恢复不再需要日志文件 'F:\APP\YANG\ARCHIVE2\21_1_718839060.LOG'

ORA-00308: 无法打开归档日志 'F:\APP\YANG\ARCHIVE2\22_1_718839060.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

SQL> recover database until cancel;
ORA-00279: 更改 2559948 (在 05/14/2010 13:15:06 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\22_1_718839060.LOG
ORA-00280: 更改 2559948 (用于线程 1) 在序列 #22 中

4)alter database open resetlogs,查看恢复是否成功。。
SQL> alter database open resetlogs;
数据库已更改。

SQL> select * from t1;

NUM                                                                     
----------                                                                     
         1                                                                     
         2                                                                     
         3                                                                     
         4

数据库的不完全恢复 成功。。。。。

5)执行了resetlogs之后,建议进行数据库的全备份。

SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\app\yang\archive2
最早的联机日志序列     1
下一个存档日志序列   1
当前日志序列           1
SQL> alter database begin backup;
数据库已更改。
SQL> @f:\sql\hotbak.sql
SQL> alter database end backup;
数据库已更改。
SQL> alter database backup controlfile
  2  to 'f:\lib\control.ctl' reuse;
数据库已更改。
SQL> alter system archive log current;
系统已更改。

结束语: 做这个实验做了好几次都没成功,当执行第三步时,先输入cancel 提示,取消介质恢复。输入auto后,数据库才利用归档日志进行恢复。关于这一点,我有点不清楚了,既然是基于cancel的,为什么还要输入auto呢?请哪位看官给个解答。谢谢了

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-662786/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22664653/viewspace-662786/

基于取消的不完全恢复相关推荐

  1. 不完全恢复分类与命令

    不完全恢复 A.        分类: 1. 基于时间恢复: 将数据库恢复到备份点与失败点之间某个特定时间点的状态.主要适用于以下情况: a)         误删表 b)         误截断表 ...

  2. [转]Oracle DB 执行用户管理的备份和恢复

    • 说明用户管理的备份和恢复与服务器管理的备份和恢复之间的差异 • 执行用户管理的数据库完全恢复 • 执行用户管理的数据库不完全恢复 备份和恢复的使用类型 数据库备份和恢复的类型包括: • 用户管理的 ...

  3. oracle配置控制文件快照的位置以及名称为,oracle的备份与恢复

    第一部分(基础知识及参考命令) 在开始进行备份和恢复工作之关必須先明白一些基础知识,请一定要先认真阅读下面的知识,他是你进行成功操作的先决条件. 1.数据库的启动和关闭 1.1 打开数据库 .未加载( ...

  4. 一看就会一做就废系列:说说 RECOVER UNTIL CANCEL

    这里是:一看就会,一做就废系列 数据库演示版本为 19.3 (12.2.0.3) 该系列涉及恢复过程中使用的 5 个语句: 1. recover database 2. recover databas ...

  5. 执行用户管理(不依赖于RMAN)的备份和恢复_执行用户管理的数据库闪回和恢复

    本章描述在用户管理的备份和恢复策略中如何还原和恢复数据库和使用Oracle数据库的闪回特性.用户管理的备份和还原策略意味着不依赖RMAN的方法. 1.使用SQL*Plus执行闪回数据库 可以在非CDB ...

  6. oracle之三手工不完全恢复

    手工不完全恢复 4.1 不完全恢复的特点: 1)让整个database 回到过去某个时间点,不能避免数据丢失. 2)想跳过坏日志而继续恢复所有其他工作是不可能的,前滚没有这个功能(考点). 3)必须以 ...

  7. 一个不完全恢复的疑惑?

    最近讨论恢复的贴子好多,所以我也拿个出来讨论讨论,恢复的场景是:误操作删除表,并且控制文件也被损坏了,讨论只是为了彻底搞懂内部原量,避免下次犯同样的错误! 下面是我详细的实验步骤: 第一步:恢复过程通 ...

  8. Oracle 基于用户管理恢复的处理

    -- Oracle 基于用户管理恢复的处理 --================================ Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整.除了使用R ...

  9. RMAN完全恢复与不完全恢复测试

    RMAN完全恢复与不完全恢复测试 一.完全恢复 二.不完全恢复 2.1 基于时间点 2.2 基于日志序列号 2.3 基于SCN 恢复 2.4 通过INCARNATION不完全恢复 2.5 基于表空间时 ...

最新文章

  1. usaco Overfencing 穿越栅栏(BFS)
  2. 基于zookeeper的高可用集群
  3. linux sqlserver_SQLServer和Oracle数据库相比谁更强?
  4. 成功解决Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问
  5. 【模拟】签订协议(nowcoder 217601)
  6. linux流式访问日志,流式实时日志分析系统的实现原理
  7. 中国碳酸锰(CAS+598-62-9)市场趋势报告、技术动态创新及市场预测
  8. OpenCV-图像处理(18、Laplance算子)
  9. 华为NP课程笔记19-镜像技术
  10. 2019年保研夏令营复试经验分享(浙大软件/南大软件/南航计算机)
  11. NODE.JS对接验证码短信接口DEMO示例
  12. Android类似暗黑的游戏,像暗黑2一样的手游 类似暗黑2的手游盘点
  13. 图解路由器:这玩意儿能连接全世界的网络?
  14. 【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩 纹理映射技术 一
  15. 计算机仿真和vr的区别,扫盲科普:今天才知道VR和AR的区别
  16. 计算机基础作业2答案,《计算机基础》作业答案 (2)
  17. AI智能润色改写,伪原创写作工具,毕业论文必备工具
  18. 超简单详细小白双系统安装教程Win10+deepin
  19. 利用python编写爬虫程序,从招聘网站上爬取数据,将数据存入到MongoDB数据库中,将存入的数据作一定的数据清洗后做数据分析,最后将分析的结果做数据可视化
  20. Kafka 生产者数据安全(ACK机制,ACK时机,ACK应答机制,故障处理,Exactly Once)

热门文章

  1. 2021CVPR 弱/暗光《Seeing in Extra Darkness Using a Deep-Red Flash》
  2. quartus ii 9.0 安装教程
  3. 一文读懂BP算法,BP算法通俗解析
  4. patelinux是什么
  5. jshint和jslint的区别
  6. 腾然教育MCN覃小龙公子:覃宣量2022年2岁10个月亲子照
  7. 不为情怀,忠于技术!
  8. 惠普z6计算机进不去桌面,神舟Z6再降300大洋,气哭惠普暗影精灵
  9. 《100个最具前景的职业》试读:网页设计师
  10. mysql5.6 匿名用户登录