控制文件丢失了,需要DBA处理。

1,控制文件大小不对。  将正常的cp给不正常的。指定正确的来运行。

2,控制文件版本不对   千万要记住要先cp全部的控制文件备份后在来cp

3,控制文件某个丢失,至少存在一个

4,控制文件都丢失,

5,有但是很old

1,控制文件大小不对。

下面我们修给一个控制文件的内容使大小不一样。

[oracle@huang ~]$ vim /sof/oracle/oradata/orcl/control01.ctl

SQL> shutdown immediate;

ORA-00227: corrupt block detected in control file: (block 1, # blocks 1)

ORA-00202: control file: '/sof/oracle/oradata/orcl/control01.ctl'

SQL> shutdown abort;

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

ORA-00205: error in identifying control file, check alert log for more info

这里提示了控制文件有错误。

SQL> show parameter control_f

NAME                                 TYPE        VALUE

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

control_file_record_keep_time        integer     7

control_files                        string      /sof/oracle/oradata/orcl/contr

ol01.ctl, /sof/oracle/oradata/

orcl/control02.ctl, /sof/oracl

e/oradata/orcl/control03.ctl

SQL> ho ls -l /sof/oracle/oradata/orcl/  这里我们查看到日志文件中,有两个大小一样,说明这两个是正常的。

total 1536352

-rw------- 1 oracle oinstall   7110639 Jan  4 16:00 control01.ctl

-rw------- 1 oracle oinstall   7389184 Jan  4 16:01 control02.ctl

-rw------- 1 oracle oinstall   7389184 Jan  4 16:01 control03.ctl

SQL> ho cp /sof/oracle/oradata/orcl/control01.ctl /sof/oracle/oradata/orcl/control01.ct.bak

SQL> ho cp /sof/oracle/oradata/orcl/control02.ctl /sof/oracle/oradata/orcl/control01.ctl

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

Database mounted.

Database opened.

现在数据库就能正常的运行了。

2,控制文件版本不对

SQL> startup

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

Database mounted.

Database opened.

SQL> alter system set control_files='/sof/oracle/oradata/orcl/control02.ctl' scope=spfile;

System altered.

Database opened.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

Database mounted.

Database opened.

SQL> show parameter control_f

NAME                                 TYPE        VALUE

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

control_file_record_keep_time        integer     7

control_files                        string      /sof/oracle/oradata/orcl/contr

ol02.ctl

SQL> alter system set control_files='/sof/oracle/oradata/orcl/control02.ctl','/sof/oracle/oradata/orcl/control01.ctl','/sof/oracle/oradata/orcl/control03.ctl'  scope=spfile;

System altered.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

ORA-00214: control file '/sof/oracle/oradata/orcl/control02.ctl' version 1036

inconsistent with file '/sof/oracle/oradata/orcl/control01.ctl' version 1020

现在就提示了控制文件的版本好不一致的问题。注意提示的版本号那个更高。

SQL> ho cp /sof/oracle/oradata/orcl/control01.ctl /sof/oracle/oradata/orcl/control01.ctl.bak

SQL> ho cp /sof/oracle/oradata/orcl/control02.ctl /sof/oracle/oradata/orcl/control01.ctl

SQL> startup

ORA-01081: cannot start already-running ORACLE - shut it down first

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

ORA-00214: control file '/sof/oracle/oradata/orcl/control02.ctl' version 1036

inconsistent with file '/sof/oracle/oradata/orcl/control03.ctl' version 1020

SQL> ho cp /sof/oracle/oradata/orcl/control03.ctl /sof/oracle/oradata/orcl/control03.ctl.bak

SQL> ho cp /sof/oracle/oradata/orcl/control02.ctl /sof/oracle/oradata/orcl/control03.ctl

SQL> startup

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

Database mounted.

Database opened.

上面就说明成了。

4,控制文件都丢失,

5,有但是很old

SQL> alter database backup controlfile to trace as '/tmp/luo.txt'

2  ;

Database altered.

得到建立日志文件的脚本,以后我们数据库建好后就要做。

下面就是重建控制文件。

千万记住下面这个命令。

如果控制文件全部丢失,版本过老,在我们重建控制文件之前需要备份故障的状态。

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

[oracle@huang ~]$ cp /sof/oracle/oradata/orcl/ /sof/oracle/oradata/orcl.bak -rf

[oracle@huang ~]$ rm /sof/oracle/oradata/orcl/control0* -rf

[oracle@huang ~]$ ls /sof/oracle/oradata/orcl

orcl/     orcl.bak/

[oracle@huang ~]$ ls /sof/oracle/oradata/orcl

orcl/     orcl.bak/

[oracle@huang ~]$ ls /sof/oracle/oradata/orcl/

example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf     users01.dbf

redo01.log     redo03.log  system01.dbf  undotbs01.dbf

[oracle@huang ~]$ sqlplus / as sysdba

[uniread] Loaded history (945 lines)

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jan 4 16:57:00 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

ORA-00205: error in identifying control file, check alert log for more info

去除所有的--和空格行,和开头的空格。

[oracle@huang ~]$ grep -v ^-- /tmp/luo.txt|grep -v ^$ >/tmp/luo1.txt

[oracle@huang ~]$ vim /tmp/luo1.txt

[oracle@huang ~]$ sed -n '1,23'p /tmp/luo1.txt >/tmp/luo2.txt

截取下面两行和之间的内容。注意是下面行是第一次出现的时候

STARTUP NOMOUNT

..................

SIZE 30408704  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

[oracle@huang ~]$ sed -i 's/^ //' /tmp/luo2.txt

[oracle@huang ~]$ sed -i 's/^ //' /tmp/luo2.txt

[oracle@huang ~]$ sed -i 's/^ //' /tmp/luo2.txt

[oracle@huang ~]$ sed -i 's/^ //' /tmp/luo2.txt

[oracle@huang ~]$ sed -i 's/^ //' /tmp/luo2.txt

[oracle@huang ~]$ vim /tmp/luo2.txt

确定时候空格和--开头的行就删除了。

SQL> shutdown abort;

ORACLE instance shut down.

SQL> @/tmp/luo2.txt 我们运行刚才的那个脚本就可以重新的建立起控制文件

ORACLE instance started.

Total System Global Area 1090519040 bytes

Fixed Size                  1267020 bytes

Variable Size             704645812 bytes

Database Buffers          369098752 bytes

Redo Buffers               15507456 bytes

Control file created.

Media recovery complete.

Database altered.

Tablespace altered.

SQL> ho ls /sof/oracle/oradata/orcl/

control01.ctl  example01.dbf  redo03.log     temp01.dbf

control02.ctl  redo01.log     sysaux01.dbf   undotbs01.dbf

control03.ctl  redo02.log     system01.dbf   users01.dbf

上面就是控制文件的几种恢复方法。

oracle控制文件修复,oracle控制文件的损坏或完全丢失的恢复办法相关推荐

  1. oracle控制文件的损坏或完全丢失的恢复办法

    控制文件丢失了,需要DBA处理.     1,控制文件大小不对.  将正常的cp给不正常的.指定正确的来运行.     2,控制文件版本不对   千万要记住要先cp全部的控制文件备份后在来cp    ...

  2. mysql库文件修复_mysql数据库文件修复

    多数情况下,数据库被破坏只是指索引文件受到了破坏,真正的数据被破坏掉的情况非常少.大多数形式的数据库破坏的的修复相当简单. 和前面的校验一样,修复的方式也有三种. 下面讲的方法只对MyISAM格式的表 ...

  3. 索尼RSV视频修复方法论视频文件修复时样本文件的三同

    索尼RSV类的文件修复案例有很多,程序操作也很简单没什么可说的,这次这个索尼ILCE-7SM3的案例就是为了让大家更好的认识视频修复中我称之为"三同"的重要性,想要恢复的效果好必须 ...

  4. aul软件oracle,AUL/MyDUL修复Oracle

    AUL恢复软件是针对无备份的oracle数据库受损后的终极恢复 下载地址 用oracle用户下载解压 SQL> col name format a40 SQL> select file#, ...

  5. Rm –rf误删除了一个数据文件,而备份集恰好损坏,请写出恢复步骤

    Oracle用户下: rm -rf /u01/app/oracle/oradata/vastdb/users01.dbf ps -ef | grep ora_lgwr ps命令将某个进程显示出来 gr ...

  6. word无法保存html文件,【修复】Word“文件发生错误”,无法保存文件

    Haley 于 2020/07/23更新 数据恢复 摘要 Word文件发生错误,无法保存?了解怎么删除normal.dot文件修复Microsoft Word文件错误并执行易我数据恢复救回丢失的Wor ...

  7. PDF Fixer Pro(pdf文件修复工具)官方中文版V1.3 | 修PDF什么软件最好用? | pdf文件损坏了怎么修复?

    众所周知PDF文档是大家工作学习中非常常用的一种文档格式,pdf文件是通过虚拟打印各种文件生成的二进制编码格式,由于大部分PDF数据是经过压缩的,使用文本编辑器编辑PDF文件会导致文件损坏或数据偏移, ...

  8. tar.gz文件修复

    tar.gz文件修复 tar.gz 文件坏了,崩溃了,有恢复办法的 1)首先需要安装 gzrt yum list | grep gzrt yum install gzrt.x86_64 2)运行cpi ...

  9. linux自动挂载文件修复,Linux文件系统管理 开机自动挂载及fstab文件修复

    概述 开机自动挂载及fstab文件修复 开机自动挂载 实现开机后自动挂载,就需要修改系统的自动挂载文件 /etc/fstab.因为系统就是依赖这个文件决定启动时加载的文件系统的. 通过vi 打开/et ...

最新文章

  1. 新网杯top1方案:手把手构建中文语音合成模型!
  2. 使用镜像加速 Rtools 下载与安装
  3. java递归获取文件名_递归打印文件名
  4. SciencePlots科研绘图
  5. [剑指offer]面试题第[6]题[JAVA][旋转数组的最小数字][二分法]
  6. Android fb0 截屏实现
  7. Android测试提升效率批处理脚本
  8. 计算机组成原理的实验节拍,一种计算机组成原理的实验装置
  9. LBP(Local Binary Patterns)局部二进制模式
  10. 递归大总结之台阶问题
  11. mysqldump使用详解
  12. 没有ajax以前的隐藏 iframe 技术
  13. Springboot2.X + screw数据库快速开发文档
  14. php poedit怎么debug,php – 使用Poedit与XAMPP
  15. 幻灯片转换html动画,html5 css3仿ppt幻灯片播放动画效果
  16. LA 4490 Help Bubu (状压DP)
  17. Codelf 命名神器
  18. 本科计算机专业是机试,华东师大计算机专业复试上机复习攻略+机试技巧
  19. java拼图游戏系统总体方案_基于JAVA的拼图游戏的设计与实现(含录像)
  20. Dreamweaver CC 2018使用(个人使用总结)

热门文章

  1. windows重绘机制原理
  2. 一个按键控制数码管的开和关_基于FPGA的数字电路实验3:点亮数码管
  3. vue脚手架依赖包安装不成功_Windows下vue-cli的搭建
  4. 如何证明服从卡方分布_概率论中的谁会证明(n-1)s^2/σ^2服从卡方分布
  5. xuniji查看php.ini,虚拟机 phpstorm xdebug配置
  6. jvm虚拟机_JVM虚拟机五连问,能过并不是只靠运气
  7. 锁定计算机的mad命令,本次操作由于这台计算机的限制而被取消
  8. Ajax POST请求获取后台返回的数据
  9. NSOperationQueue线程队列完毕finished状态检测
  10. 【译】Bootstrap基本理念