http://www.ixdba.net/article/f9/277.html
现场情况:
    1、数据库没有作归档,
    2、数据都存放在system表空间
    3、没有备份
状况:
    操作系统由于磁盘原因出现宕机,用户强行按电源关闭系统,数据库无法启动。
处理:

SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-12801: error signaled in parallel query server P002
ORA-10562: Error occurred while applying redo to data block (file# 1, block#4568)
ORA-10564: tablespace SYSTEM
ORA-01110: data file 1: '/opt/oracle/oradata/orcl/system01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 576
ORA-00600: internal error code, arguments: [6101]

检查日志信息如下:

Mon Nov 19 15:38:50 2007
ALTER DATABASE RECOVER  database
Mon Nov 19 15:38:50 2007
Media Recovery Start
parallel recovery started with 3 processes
Mon Nov 19 15:38:50 2007
Recovery of Online Redo Log: Thread 1 Group 3 Seq 16 Reading mem 0
Mem# 0 errs 0: /opt/oracle/oradata/orcl/redo03.log
Mon Nov 19 15:38:50 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p002_7917.trc:
ORA-00600: internal error code, arguments: [6101], [0], [17], [0], [], [], [], []
Mon Nov 19 15:38:50 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p000_7913.trc:
ORA-00600: internal error code, arguments: [3020], [2], [882], [8389490], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 2, block# 882)
ORA-10564: tablespace UNDOTBS1
ORA-01110: data file 2: '/opt/oracle/oradata/orcl/undotbs01.dbf'
ORA-10560: block type 'KTU UNDO BLOCK'
Mon Nov 19 15:38:51 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p000_7913.trc:
ORA-00600: internal error code, arguments: [3020], [2], [882], [8389490], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 2, block# 882)
ORA-10564: tablespace UNDOTBS1
ORA-01110: data file 2: '/opt/oracle/oradata/orcl/undotbs01.dbf'
ORA-10560: block type 'KTU UNDO BLOCK'
Mon Nov 19 15:38:51 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p002_7917.trc:
ORA-10562: Error occurred while applying redo to data block (file# 1, block# 4568)
ORA-10564: tablespace SYSTEM
ORA-01110: data file 1: '/opt/oracle/oradata/orcl/system01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 576
ORA-00600: internal error code, arguments: [6101], [0], [17], [0], [], [], [], []
Mon Nov 19 15:38:54 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p001_7915.trc:
ORA-00600: internal error code, arguments: [kddummy_blkchk], [1], [1658], [6101], [], [], [], []
Mon Nov 19 15:38:54 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p001_7915.trc:
ORA-10562: Error occurred while applying redo to data block (file# 1, block# 1658)
ORA-10564: tablespace SYSTEM
ORA-01110: data file 1: '/opt/oracle/oradata/orcl/system01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 237
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kddummy_blkchk], [1], [1658], [6101], [], [], [], []
Mon Nov 19 15:38:54 2007
Media Recovery failed with error 12801
ORA-283 signalled during: ALTER DATABASE RECOVER  database  ...

从上面信息中抓取了一个信息:

ORA-10562: Error occurred while applying redo to data block (file# 1, block# 1658)

针对这个错误解决如下:

ORA-10562: Error occurred while applying redo to data block (file# string, block# string)
Cause: See other errors on error stack.
Action: Investigate why the error occurred and how important is the data block. Media and standby database recovery usually can continue if user allows recovery to corrupt this data block。

从日志信息可以基本判断问题如下:
当前在线日志损坏,导致undo回滚段出现问题,又由于系统突然掉电,系统表空间在重启实例后要进行实例恢复,当前在线日志损坏,系统表空间无法进行recover,因而出现了上面的错误。
找到了问题,解决访问就有了。
由于没有备份,数据库也运行在非归档模式下,所以恢复如下步骤:

SQL>startup mount
SQL>recover database using backup controlfile until cancel;
SQL>alter database open resetlogs;
SQL> startup mount
SQL> alter system set “_allow_resetlogs_corruption”=true scope=spfile;
SQL>shutdown immediate
SQL> startup mount
SQL> alter database open resetlogs;
SQL> startup

基本恢复步骤:

SQL>startup mount
SQL>recover database using backup controlfile until cancel;
Cancel
SQL>alter database open resetlogs;
#此时会提示system表空间需要恢复,但是由于当前日志损坏,无法进行恢复,所以需要加入#隐含参数,oracle才不会监测scn的一致性,才能打开数据库。
#重启数据库加入隐含参数
SQL> startup mount
SQL> alter system set “_allow_resetlogs_corruption”=true scope=spfile;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
#不管这些,再次登录sqlplus起动数据库
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 16 08:03:43 2007
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>startup

数据库正常打开,exp备份需要的数据,然后重新建库,导入数据。
----------------------------------------------------------------------
    通过这次操作,我得到一个经验,在处理Oracle问题时,切忌慌乱,对于出现的问题,通过看Oracle的alert.log以及trace文件,分析出现问题的错误,逐步定位,然后就是在网上搜索或者请教高人。

oracle 数据文件损坏修复 --转帖相关推荐

  1. Oracle数据文件损坏无法正常修复问题

    如果Oracle数据库中,某个数据文件损坏,有冷备,但是归档日志文件缺失,导致数据文件无法恢复到一致性状态. 这种情况下如果没有其他恢复介质,可以接受数据丢失的话,可以通过修改数据文件头的SCN号,使 ...

  2. MongoDB 数据文件损坏修复救命repair与致命危险

    最近,一客户单实例mongodb数据库,没有备份的情况下遇到了断电导致的数据文件损坏,由于客户业务需要 及数据的不敏感性,要求尽快恢复业务,使用了Mongdb的自动修复repair命令进行修复.可喜的 ...

  3. [原]Oracle数据文件损坏的模拟和修复(一) |ORA-01578 data block corrupted|

    造成数据块损坏的原因通常是由于开启了异步I/O或者增加了写进程,还有可能是硬件引起的,今天模拟一下该问题的发生及修复方法.由于水平有限,那面疏漏,欢迎大家指正. 创建测试环境 建立测试表空间: cre ...

  4. oracle数据块损坏后的修复方法

    关于oracle数据块损坏的解决方法,相关链接网址在: http://blog.csdn.net/dlinger/archive/2004/08/24/83911.aspx http://www.it ...

  5. oracle的控制文件和数据文件损坏

    控制文件损坏 一.使用trace文件恢复 SQL> alter database backup controlfile to trace; --将控制文件备份到trace文件 Database ...

  6. 数据库oracle文件怎么打开,Oracle某个数据文件损坏,如何打开数据库-数据库专栏,ORACLE...

    某个数据文件损坏,如何打开数据库? 系统环境: 1.操作系统:windows 2000 server,机器内存128m 2.数据库: oracle 8i r2 (8.1.6) for nt 企业版 3 ...

  7. oracle undo数据文件坏,oracle undo数据文件损坏故障处理案例

    oracleundo数据文件损坏故障处理案例 大家都知道Oracle的数据都存储在数据文件中,undo表空间存储的数据是某些变更操作的前镜像以及一致性读数据,而且undo表空间是循环利用的,一段时间后 ...

  8. oracle datafile损坏,Oracle某个数据文件损坏,如何打开数据_oracle

    某个数据文件损坏,如何打开数据库? 系统环境: 1.操作系统:Windows 2000 Server,机器内存128M 2.数据库: oracle 8i R2 (8.1.6) for NT 企业版 3 ...

  9. oracle数据文件被误删或损坏故障处理

    oracle数据文件被删或损坏故障描述: 数据库数据文件由于误操作被删除掉或由于磁盘坏掉导致数据文件损坏,数据库每十分钟读取损坏数据库文件失败后会提示: ORA-01116: 打开数据库文件 78 时 ...

最新文章

  1. 华为云力推“普惠AI”,EI智能体正在落地行业
  2. JavaScript的使用
  3. android IPC 进程间通讯
  4. rm 空间不释放_rm删除文件之后,空间就被释放了吗?
  5. 爬取京东商品分类和链接
  6. [BT5]信息收集1-2 Dnsmap
  7. asp.net mvc 自定义全局过滤器 验证用户是否登录
  8. 为企业搭建Gitlab软件版本管理服务器
  9. 程序员必备的css工具,8个提高效率的CSS实用工具
  10. css html设计网页完整代码,htmlcss完整的网页代码
  11. 2022-08-26 Unity视频播放3——VideoPlayer
  12. 常用音频接口简介(PDM/PCM/IIS/SLIMBUS)
  13. c语言 判断互质,[经典算法] 找出某数以内与其互质的数
  14. 知名的网址导航网站及好用的网址导航分享
  15. Shell 掐头去尾法
  16. 合同和协议的区别_合同和协议有什么区别?
  17. 手机控制NodeMCU实现远程电脑开关机
  18. 文本分词并统计出现次数最高的几个词Python
  19. C语言中pthread或Windows API在多线程编程中的基本应用
  20. 用CSS实现圆环倒计时

热门文章

  1. DM数据库基本操作命令
  2. SOMEIP传输层协议 TCP UDP协议选择
  3. micropython图形化编程基于esp8266_esp8266物联网开发一:MicroPython初战江湖
  4. 3.函数、结构体、包
  5. 虚拟光驱 daemon tools lite 4.4 下载 2011最新版
  6. 计算机网络:PPP协议与HDLC协议
  7. 矩阵的初等变换和等价
  8. 计算机服务 无法保存,无法保存打印机设置0x000006d9?详细教您怎么办
  9. Teminator 终端终结者
  10. 初链-解读初链黄皮书