热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

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

控制文件丢失了,需要DBA处理。1,控制文件大小不对。将正常的cp给不正常的。指定正确的来运行。2,控制文件版本不对

控制文件丢失了,需要DBA处理。 1,控制文件大小不对。 将正常的cp给不正常的。指定正确的来运行。 2,控制文件版本不对

控制文件丢失了,需要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

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


推荐阅读
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • 在主从复制架构中,Bingo_MySQL 同步工具的应用与优化具有重要意义。为确保高效同步,建议使用相同或兼容的 MySQL 版本,并确保两台服务器位于同一局域网内,且网络连接畅通无阻。若无法 ping 通,请检查 IP 配置及防火墙设置,以保证网络连通性。此外,合理的配置参数和定期维护也是提升同步性能的关键因素。 ... [详细]
  • 掌握PHP框架开发与应用的核心知识点:构建高效PHP框架所需的技术与能力综述
    掌握PHP框架开发与应用的核心知识点对于构建高效PHP框架至关重要。本文综述了开发PHP框架所需的关键技术和能力,包括但不限于对PHP语言的深入理解、设计模式的应用、数据库操作、安全性措施以及性能优化等方面。对于初学者而言,熟悉主流框架如Laravel、Symfony等的实际应用场景,有助于更好地理解和掌握自定义框架开发的精髓。 ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
  • 本文深入探讨了数据库性能优化与管理策略,通过实例分析和理论研究,详细阐述了如何有效提升数据库系统的响应速度和处理能力。文章首先介绍了数据库性能优化的基本原则和常用技术,包括索引优化、查询优化和存储管理等。接着,结合实际应用场景,讨论了如何利用容器化技术(如Docker)来部署和管理数据库,以提高系统的可扩展性和稳定性。最后,文章还提供了具体的配置示例和最佳实践,帮助读者在实际工作中更好地应用这些策略。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 浅析PHP中$_SERVER[
    在PHP后端开发中,`$_SERVER["HTTP_REFERER"]` 是一个非常有用的超级全局变量,它可以获取用户访问当前页面之前的URL。本文将详细介绍该变量的使用方法及其在不同场景下的应用,如页面跳转跟踪、安全验证和用户行为分析等。通过实例解析,帮助开发者更好地理解和利用这一功能。 ... [详细]
  • 从用户转型为开发者:一场思维升级的旅程 | 专访 StarRocks Committer 周威
    从用户转变为开发者,不仅是一次角色的转换,更是一场深刻的思维升级之旅。本次专访中,StarRocks Committer 周威分享了他如何在这一过程中逐步提升技术能力与思维方式,为开源社区贡献自己的力量。 ... [详细]
  • 本课程详细介绍了如何使用Python Flask框架从零开始构建鱼书应用,涵盖高级编程技巧和实战项目。通过视频教学,学员将学习到Flask的高效用法,包括数据库事务处理和书籍交易模型的实现。特别感谢AI资源网提供的课程下载支持。 ... [详细]
  • 本文详细解析了 MySQL 5.7.20 版本中二进制日志(binlog)崩溃恢复机制的工作流程。假设使用 InnoDB 存储引擎,并且启用了 `sync_binlog=1` 配置,文章深入探讨了在系统崩溃后如何通过 binlog 进行数据恢复,确保数据的一致性和完整性。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • 获取贵州省毕节市高分辨率谷歌卫星影像图
    毕节市,作为贵州省西北部的重要地级市,地处乌蒙山脉核心区域,是连接四川、云南和贵州三省的关键节点。本研究旨在获取该地区的高分辨率谷歌卫星影像图,以全面展示其独特的地理特征和城市布局。通过这些高清影像,研究人员能够更深入地分析毕节市的自然环境、城市规划及发展状况。 ... [详细]
author-avatar
fangziqiang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有