如果全部控制文件丢失,但是包含以前控制文件的备份,这时可以利用备份的控制文件进行恢复,不过在恢复后需要以RESETLOGS方式打开数据库。

根据联机重做日志文件是否可用和数据文件是否是最新的可以分为四种不同情况,这篇文章描述的是,联机重做日志可用,且数据文件是最新的情况。

一般重做日志全部丢失的话,数据库肯定会马上关闭。本测试为了模拟联机日志中包含待恢复数据的情况,在后台运行存储过程插入数据时,在另外的session使用SHUTDOWN ABORT关闭数据库。

SQL> CONN /@TEST AS SYSDBA

已连接。

SQL> SHUTDOWN ABORT

ORACLE 例程已经关闭。

数据库关闭后删除所有控制文件。

SQL> HOST DEL F:ORACLEORADATATEST*.CTL

然后利用备份的控制文件进行恢复

SQL> HOST COPY F:ORACLEBACKUPTEST20060215*.CTL F:ORACLEORADATATEST

SQL> STARTUP MOUNT

ORACLE 例程已经启动。

Total System Global Area 76619308 bytes

Fixed Size 454188 bytes

Variable Size 50331648 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

数据库装载完毕。

利用备份的控制文件启动,需要使用USING BACKUP CONTROLFILE语句。

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL

ORA-00279: 更改 45609576 (在 02/15/2006 19:28:34 生成) 对于线程 1 是必需的

ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00059.001

ORA-00280: 更改 45609576 对于线程 1 是按序列 # 59 进行的

指定日志: {=suggested | filename | AUTO | CANCEL}

AUTO

ORA-00279: 更改 45610708 (在 02/16/2006 01:35:15 生成) 对于线程 1 是必需的

ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00060.001

ORA-00280: 更改 45610708 对于线程 1 是按序列 # 60 进行的

ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00059.001'

ORA-00279: 更改 45610901 (在 02/16/2006 01:36:55 生成) 对于线程 1 是必需的

ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00061.001

ORA-00280: 更改 45610901 对于线程 1 是按序列 # 61 进行的

ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00060.001'

ORA-00279: 更改 45612925 (在 02/16/2006 01:39:10 生成) 对于线程 1 是必需的

ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00062.001

ORA-00280: 更改 45612925 对于线程 1 是按序列 # 62 进行的

ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00061.001'

ORA-00308: 无法打开存档日志 'F:ORACLEORADATATESTARCHIVEARC00062.001'

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误

ORA-01194: 文件1需要更多的恢复来保持一致性

ORA-01110: 数据文件 1: 'F:ORACLEORADATATESTSYSTEM01.DBF'

最后出现的错误是由于SHUTDOWN ABORT后,使用备份的控制文件造成的。Oracle需要应用当前的重做日志文件来进行恢复,但是由于使用了备份的控制文件,备份之后的归档日志信息丢失,因此,这时需要手工输入需要恢复的联机重做日志文件。

其实这个时候是可以通过REDO的循环使用推断出最后需要使用的联机日志的。

SQL> SELECT GROUP#, SEQUENCE#, STATUS FROM V$LOG;

GROUP# SEQUENCE# STATUS

---------- ---------- ----------------

1 59 CURRENT

2 57 INACTIVE

3 58 INACTIVE

这时已经可以推断GROUP2将是60,GROUP3是61,而GROUP1则是62。不过在输入重做日志进行恢复时,即使输入错文件也没有关系,Oracle会提示错误。如果输入正确的重做日志,则Oracle会完成介质恢复。

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL

ORA-00279: 更改 45612925 (在 02/16/2006 01:39:10 生成) 对于线程 1 是必需的

ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00062.001

ORA-00280: 更改 45612925 对于线程 1 是按序列 # 62 进行的

指定日志: {=suggested | filename | AUTO | CANCEL}

F:ORACLEORADATATESTREDO03.LOG

ORA-00310: 存档日志包含序列 61;要求序列 62

ORA-00334: 归档日志: 'F:ORACLEORADATATESTREDO03.LOG'

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误

ORA-01194: 文件1需要更多的恢复来保持一致性

ORA-01110: 数据文件 1: 'F:ORACLEORADATATESTSYSTEM01.DBF'

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL

ORA-00279: 更改 45612925 (在 02/16/2006 01:39:10 生成) 对于线程 1 是必需的

ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00062.001

ORA-00280: 更改 45612925 对于线程 1 是按序列 # 62 进行的

指定日志: {=suggested | filename | AUTO | CANCEL}

F:ORACLEORADATATESTREDO01.LOG

已应用的日志。

完成介质恢复。

SQL> ALTER DATABASE OPEN RESETLOGS;

数据库已更改。

恢复到这里已经完成,现在需要做的是马上进行数据库的备份。

oracle备份信息在控制文件丢失,恢复之利用备份在所有控制文件丢失情况下恢复(一)...相关推荐

  1. undo表空间文件丢失恢复(4)--无备份无recover的情况下恢复

    undo表空间的数据文件丢失,如果没有备份的情况下,而且丢失的undo文件可以置为offline状态后(注意是offline不是recover状态),则可以如下恢复,下边给出一个例子. undo表空间 ...

  2. undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复

    undo表空间的数据文件丢失,如果没有备份的情况下,而且redo也不可用,这个时候就要采用隐藏参数来恢复,下边给出一个例子. undo表空间文件丢失恢复(1)--有备份的情况下恢复:http://bl ...

  3. undo表空间文件丢失恢复(2)--无备份有redo的情况下恢复

    undo表空间的数据文件丢失,如果没有备份的情况下,但是redo完好,这个时候可以这样恢复,下边给出一个例子. undo表空间文件丢失恢复(1)--有备份的情况下恢复:http://blog.itpu ...

  4. oracle自动恢复数据库文件,只有数据文件情况下恢复Oracle数据库

    只有数据文件情况下恢复数据库 1,创建几个表,进行 log switch SQL> create table t9 as select * from dba_tables; Table crea ...

  5. c语言创建excel文件6,怎么利用c语言创建excel文件

    怎么利用c语言创建excel文件 想要利用c语言创建excel文件再把它导入excel其实很简单,如果数据简单的话,可以使用CSV(逗号分隔值)格式的文件.CSV格式的文件可以用OfficeExcel ...

  6. 计算机重镜像网络文件夹位置,利用备份的Win10映像系统文件还原win10的教程

    利用备份的win10映像系统文件还原win10的教程.在前面的教程中,我们讲解了<win10系统镜像怎么备份>,相信很多的小伙伴们都会了.刚好现在有网友就遇到了win10系统故障需要还原的 ...

  7. 无备份情况下恢复MySQL误删的表,这样做再也不用怕误删了

    中国统计网 2017-09-25 20:28 小编寄语 想必大家都知道,Oracle ACE李真旭(Roger)是国内最专业的Oracle 数据库恢复专家.但知识都是触类旁通,真正的专家,从来不会局限 ...

  8. python写安卓app控制蓝牙_Python脚本利用adb进行手机控制的方法

    一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...

  9. 拷贝文件不移动_在不使用 mv 命令的情况下移动文件

    有时当你需要移动一个文件时,mv 命令似乎不是最佳选项,那么你会如何做呢? -- Seth Kenlon(作者) 不起眼的 mv 命令是在你见过的每个 POSIX 系统中都能找到的有用工具之一.它的作 ...

最新文章

  1. VCSA 6.5 HA 配置之五:故障转移测试
  2. ie对java的设置字体,css3文字特效和浏览器兼容性
  3. 限制鼠标在窗体中的移动
  4. Jakarta EE 8状态
  5. rm linux 复制目录,linux学习(四)复制(cp)移动(mv)删除(rm)查找(find)文件、文件夹操作、软硬链接的区别...
  6. Windows 下修改 MySQL 编码为 utf8
  7. Unity安卓开发环境搭建
  8. steam服务器102修复,分享steam错误代码102的解决方法
  9. gimp中文版下载 | GIMP(专业图像处理软件)官方中文版V2.10.30 | GIMP图片编辑器中文版下载
  10. 国内云服务器提供商排名(仅供参考)
  11. 【数理方程】傅里叶级数
  12. 项目开发流程_以房地产项目总的视角,谈谈项目开发流程
  13. 电脑root,360超级ROOT
  14. [Ansible系列⑦]ansible fact变量
  15. WORD/WPS打印目录或输出输出PDF时,目录显示“错误未定义标签”,且无法正常跳转的解决方法
  16. Work20230330
  17. PS、Excel快捷键桌面壁纸
  18. 怎么进入BAT的研发部门?
  19. 联想服务器TS130主板芯片组,【ThinkServer TS130配置】ThinkServer TS130塔式服务器配置-ZOL中关村在线...
  20. MySQL的启动与简单命令_002

热门文章

  1. 详解JavaScript变量类型判断及domReady原理 写得很好
  2. 今天的快乐从何而来的飞鸽传书
  3. 【再来一套网站程序】kfguan网整站程序下载
  4. 圳不完全启示录之初来乍到----2
  5. 女程序员 一直从事着软件研发的工作
  6. 统一归档助企业撑起信息的保护伞
  7. 王建宙:中国移动还未与苹果就iPhone达成协议
  8. CCleaner 2.11.636 - 系统优化和隐私保护工具
  9. 如何“干净地”终止 Win32 中的应用程序
  10. 代码的简单就在于——直接能看懂