实验环境是在归档模式下,并且日志文件都在。

步骤:1. 全备数据库

2. 利用备份的控制文件进行恢复

实验就把第一步省略了,直接开始第二步。

首先,先打开数据库到归档模式下:

SQL> startup mount
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1339796 bytes
Variable Size             599789164 bytes
Database Buffers          239075328 bytes
Redo Buffers                5144576 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> select open_mode,log_mode from v$database;
OPEN_MODE                                LOG_MODE
---------------------------------------- ------------------------
READ WRITE                               ARCHIVELOG
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oracle/product/11.2.0/db_1/ora_log
Oldest online log sequence     1
Next log sequence to archive   2
Current log sequence           2

开始备份控制文件:

SQL> alter database backup controlfile to '/tmp/controlfile.bak';
Database altered.

把原来的控制文件都删除,有几个删除几个,可以show parameter control_files查看,再次启动数据库:

SQL> startup
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1339796 bytes
Variable Size             599789164 bytes
Database Buffers          239075328 bytes
Redo Buffers                5144576 bytes
ORA-00205: error in identifying control file, check alert log for more info

控制文件丢失,启动报错了,拷贝控制文件到原来的地方,有几个拷贝几个

cp /tmp/controlfile.bak $ORACLE_BASE/oradata/$ORACLE_SID/control01.ctl

再次启动数据库

SQL> startup
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1339796 bytes
Variable Size             599789164 bytes
Database Buffers          239075328 bytes
Redo Buffers                5144576 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

数据库已经挂载,但是没有打开,接下来按提示操作:

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/u01/app/oracle/oradata/myorcl/system01.dbf'
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
SQL> recover database using backup controlfile;
ORA-00279: change 1298791 generated at 01/09/2014 05:50:43 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/product/11.2.0/db_1/ora_log/1_25_835925739.dbf
ORA-00280: change 1298791 for thread 1 is in sequence #25
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/myorcl/redo01.log
Log applied.
Media recovery complete.

到这里,数据库已经提示恢复完成了,可以打开数据库了

SQL> alter database open resetlogs;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
----------------------------------------
READ WRITE

转载于:https://blog.51cto.com/svenman/1349938

oracle之控制文件恢复相关推荐

  1. oracle 重建控制文件 恢复数据库

    C盘不小心被格式化了,Oracle在D盘,重装系统后,需要把数据库恢复起来 1.无法打开数据库,需要重建控制文件. SQL> shutdown abort; ORACLE 例程已经关闭. SQL ...

  2. Oracle控制文件恢复

    我近日遇到一例因控制文件损坏导致ORACLE数据库不能启动的例子,完成数据库修复后我把恢复过程总结如下: 客户的计算机ORACLE应用程序不能启动,提示一个ORACLE错误,打开系统查看Oracle的 ...

  3. 通过历史控制文件恢复Oracle数据库,只需这10步

    墨墨导读:通过历史控制文件恢复数据库,只需这10步. 1. 记录控制文件.数据文件头的scn SYS@enmo>select checkpoint_change# from v$database ...

  4. oracle的rac控制文件备份,RAC控制文件恢复(三种不同情况)

    RAC控制文件恢复(三种不同情况) 测试环境: 系统:LINUX-64 数据库:10.2.0.1 二节点的RAC(RACDB1,RACDB2),存储用的ASM 有备份情况下,丢失控制文件,我们改如何恢 ...

  5. oracle恢复主键丢失,案例:Oracle重建控制文件丢失undo异常恢复 ORA-01173模拟与恢复...

    天萃荷净 重建控制文件丢失undo异常恢复 ORA-01173模拟与恢复 数据库异常关闭,使用resetlogs方式重建控制文件,不包含undo表空间相关数据库,然后尝试resetlogs打开数据库, ...

  6. oracle不用密码备份,oracle用备份的控制文件恢复后不用resetlogs打开方式的恢复

    在一般恢复备份 的控制文件,打开数据库 都要 用resetlogs 重置日志这种方式, 这是因为备份的控制文件恢复后,没有最新的当前在线日志信息 ,而重建控制文件 就 可以用 NORESETLOGS  ...

  7. Oracle的控制文件

    一.控制文件 oracle的控制文件是极其重要的文件,它是一个较小的二进制文件. 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等  在参数文件中描述其位置, ...

  8. oracle重建控制文件流程,ORACLE之重建控制文件

    当这些信息更改或者变动时,oracle数据库会自动把最新信息更新到controlfile文件里面. 启动数据库时,Oracle从初始化参数文件(pfile/spfile)中获得控制文件的名字及位置,打 ...

  9. oracle重新生成控制文件,Oracle重建控制文件的语法

    Oracle在控制文件丢失的情况下,有时我们只能重建控制文件,具体语法例如: CREATE CONTROLFILE REUSE DATABASE "SQUAN" NORESETLO ...

最新文章

  1. SQL同时删除两张表中的数据
  2. 颈部有细纹怎么缓解?
  3. 电脑连接电视方法详解_HDMI高清线如何连接电脑与电视,简单安装步骤,真是太有用了...
  4. linux文件属性权限相关
  5. Git使用命令行回退版本git reset --hard
  6. GoCart 分类和产品 测试二
  7. 打地鼠java的实验报告_java实验报告18-“打地鼠”游戏程序设计.doc
  8. Excel去除中文,只留英文和数字
  9. DuckDuckGo
  10. Python数据有效性DataValidation模块
  11. SMILES, a Chemical Language and Information System.【SMILES, 一种化学语言和信息系统。】
  12. 2020Android不死我不倒,作为一个程序员,你觉得最大的悲哀是什么
  13. r7 5800x配什么主板和显卡
  14. linux系统 服务器 安装,服务器上怎么安装linux系统
  15. arcgis for Android 100.4 面积测量
  16. Bootstrap的iCheck插件checkbox和radio
  17. 传统责任链模式和变种责任链模式
  18. excel中如何将数字转换成文本
  19. 华硕B85M-V PLUS 刷NVME协议BIOS
  20. 【分享】AspxZip v2.0 在线压缩解压ZIP文档

热门文章

  1. delphi中关于时间差的实例
  2. 知识产权基础(上、下)
  3. Linux下 制作本地yum安装源 openssl离线安装 gcc-c++离线安装
  4. 小白学python系列-(3)基础数量类型
  5. Spring Cloud Edgware新特性之一:解决Eureka中Jersey 1.x版本过旧的问题-不使用Jersey
  6. ehcache + spring 整合以及配置说明 ,附带整合问题 (已解决)
  7. 一点历史--Python
  8. JS正则表达式验证数字
  9. GRUB引导菜单加密
  10. 热烈庆祝 ubuntu10.10发布