sitemap

RSS地图

收藏本站

设为首页

Oracle研究中心

当前位置:Oracle研究中心 > 故障案例 >

【案例】Oracle ORA-27070 O/S-Error:(OS 23)数据错误的官方解决办法

时间:2016-11-12 20:45   来源:Oracle研究中心   作者:网络   点击:

天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库无法启动,启动时数据库报错ORA-27070 O/S-Error:(OS 23),结合MOS官方分析原因为坏块导致。
本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的Oracle技术博客
本文链接地址: win 环境 O/S-Error: (OS 23) 数据错误(循环冗余检查) —恢复

Oracle数据库遇到问题无法启动,分析原因为是盘出问题了。
错误如下:

Mon Jun 13 09:14:10 2011
Errors in file f:\oracle\admin\yydb\udump\yydb1_ora_3960.trc:
ORA-01110: 数据文件 11: 'F:\ORACLE\ORADATA\YYDB\NDNS001.ORA'
ORA-01115: 从文件 11 读取块时出现 IO 错误 (块 # 1)
ORA-27070: skgfdisp: 异步读取/写入失败
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 23) 数据错误(循环冗余检查)。
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'F:\ORACLE\ORADATA\YYDB\SYSTEM01.DBF'


损坏的文件是某个业务数据文件而非system文件,也是由于datafile header出现问题。虽然是windows环境,不过我仍然用dbv和dd进行了检查。

C:\>dbv file=D:\oracle\product\10.2.0\oradata\iom\TBS_IOM_PROD4 blocksize=8192
DBVERIFY: Release 10.2.0.1.0 - Production on 星期三 7月 13 15:24:20 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
DBV-00102: FILE (D:\oracle\product\10.2.0\oradata\iom\TBS_IOM_PROD4)

在 verification read 操作 (-2) 期间出现文件 I/O 错误
在用dbv检测的过程中,上面所报的DBV-00102错误,metalink 上提供了一个将datafile resize 变大一个block,
然后再resize回原状的方法来避免这个错误,但是在这里显然也是不能成功,因为这是物理损坏。

或许大家或许会跟那位网友有一样的疑问,我是如何知道是数据文件头坏了呢?很简单,下面我通过dd就能看出了,如下:

C:\>dd if=D:\oracle\product\10.2.0\oradata\iom\TBS_IOM_PROD4 of=D:\dd.dbf bs=8192 count=100

rawwrite dd for windows version 0.6beta3.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by terms of the GPL Version 2.

Error reading file: 23 数据错误(循环冗余检查)。
1+0 records in
1+0 records out

C:\>dd if=D:\oracle\product\10.2.0\oradata\iom\TBS_IOM_PROD4 of=D:\dd.dbf  skip=2 bs=8192 count=100

rawwrite dd for windows version 0.6beta3.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by terms of the GPL Version 2.

skip to 16384
100+0 records in
100+0 records out
由于这是一个非归档,无备份的环境(再次强调备份的重要性),用eygle的话说,只能通过bbed或其他极端手段来修复。
恢复方法是复制一个完整的file header block(用dd),然后再用bbed或UE去手工修改),当然这里建议使用bbed,用ue去修复
太困难,太麻烦了,反正我是看不明白,看起来就眼花。

这个较为极端的case,跟大家分享。

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【案例】Oracle ORA-27070 O/S-Error:(OS 23)数据错误的官方解决办法

本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/1247.html

Oracle研究中心

关键词:

ORA-27070

Oracle dbv使用案例

Oracle dbv检测时DBV-00102报错解决办法