oracle 数据文件损坏修复 --转帖
现场情况:
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 数据文件损坏修复 --转帖相关推荐
- Oracle数据文件损坏无法正常修复问题
如果Oracle数据库中,某个数据文件损坏,有冷备,但是归档日志文件缺失,导致数据文件无法恢复到一致性状态. 这种情况下如果没有其他恢复介质,可以接受数据丢失的话,可以通过修改数据文件头的SCN号,使 ...
- MongoDB 数据文件损坏修复救命repair与致命危险
最近,一客户单实例mongodb数据库,没有备份的情况下遇到了断电导致的数据文件损坏,由于客户业务需要 及数据的不敏感性,要求尽快恢复业务,使用了Mongdb的自动修复repair命令进行修复.可喜的 ...
- [原]Oracle数据文件损坏的模拟和修复(一) |ORA-01578 data block corrupted|
造成数据块损坏的原因通常是由于开启了异步I/O或者增加了写进程,还有可能是硬件引起的,今天模拟一下该问题的发生及修复方法.由于水平有限,那面疏漏,欢迎大家指正. 创建测试环境 建立测试表空间: cre ...
- oracle数据块损坏后的修复方法
关于oracle数据块损坏的解决方法,相关链接网址在: http://blog.csdn.net/dlinger/archive/2004/08/24/83911.aspx http://www.it ...
- oracle的控制文件和数据文件损坏
控制文件损坏 一.使用trace文件恢复 SQL> alter database backup controlfile to trace; --将控制文件备份到trace文件 Database ...
- 数据库oracle文件怎么打开,Oracle某个数据文件损坏,如何打开数据库-数据库专栏,ORACLE...
某个数据文件损坏,如何打开数据库? 系统环境: 1.操作系统:windows 2000 server,机器内存128m 2.数据库: oracle 8i r2 (8.1.6) for nt 企业版 3 ...
- oracle undo数据文件坏,oracle undo数据文件损坏故障处理案例
oracleundo数据文件损坏故障处理案例 大家都知道Oracle的数据都存储在数据文件中,undo表空间存储的数据是某些变更操作的前镜像以及一致性读数据,而且undo表空间是循环利用的,一段时间后 ...
- oracle datafile损坏,Oracle某个数据文件损坏,如何打开数据_oracle
某个数据文件损坏,如何打开数据库? 系统环境: 1.操作系统:Windows 2000 Server,机器内存128M 2.数据库: oracle 8i R2 (8.1.6) for NT 企业版 3 ...
- oracle数据文件被误删或损坏故障处理
oracle数据文件被删或损坏故障描述: 数据库数据文件由于误操作被删除掉或由于磁盘坏掉导致数据文件损坏,数据库每十分钟读取损坏数据库文件失败后会提示: ORA-01116: 打开数据库文件 78 时 ...
最新文章
- 华为云力推“普惠AI”,EI智能体正在落地行业
- JavaScript的使用
- android IPC 进程间通讯
- rm 空间不释放_rm删除文件之后,空间就被释放了吗?
- 爬取京东商品分类和链接
- [BT5]信息收集1-2 Dnsmap
- asp.net mvc 自定义全局过滤器 验证用户是否登录
- 为企业搭建Gitlab软件版本管理服务器
- 程序员必备的css工具,8个提高效率的CSS实用工具
- css html设计网页完整代码,htmlcss完整的网页代码
- 2022-08-26 Unity视频播放3——VideoPlayer
- 常用音频接口简介(PDM/PCM/IIS/SLIMBUS)
- c语言 判断互质,[经典算法] 找出某数以内与其互质的数
- 知名的网址导航网站及好用的网址导航分享
- Shell 掐头去尾法
- 合同和协议的区别_合同和协议有什么区别?
- 手机控制NodeMCU实现远程电脑开关机
- 文本分词并统计出现次数最高的几个词Python
- C语言中pthread或Windows API在多线程编程中的基本应用
- 用CSS实现圆环倒计时