ORA-27069和OSD-4026错误引起数据库CRASH [转帖]_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4550 | 回复: 0   主题: ORA-27069和OSD-4026错误引起数据库CRASH [转帖]        下一篇 
wayne
注册用户
等级:中校
经验:1690
发帖:221
精华:0
注册:2011-7-21
状态:离线
发送短消息息给wayne 加好友    发送短消息息给wayne 发消息
发表于: IP:您无权察看 2011-9-15 10:19:14 | [全部帖] [楼主帖] 楼主

在一个客户的9201 for Windows数据库中发现了这个错误。

客户的数据库经常出现CRASH的问题,检查后发现,在出现CRASH之前,ALERT中记录了下面的错误:

Fri Jan 28 15:13:58 2011
KCF: write/open error block=0x300019 online=1
file=9 D:ORACLEORADATASXNCSWUSERS01.DBF


error=27069 txt: 'OSD-04026: 传递的参数无效。 (OS 3145753)'

Fri Jan 28 15:13:58 2011
Errors in file d:oracleadminsxncswbdumpsxncsw_dbw0_1504.trc:
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode
ORA-01114: IO error writing block to file 9 (block # 3145753)
ORA-01110: data file 9: 'D:ORACLEORADATASXNCSWUSERS01.DBF'
ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file


OSD-04026: 传递的参数无效。 (OS 3145753)

DBW0: terminating instance due to error 1242
Fri Jan 28 15:14:00 2011
Errors in file d:oracleadminsxncswbdumpsxncsw_pmon_1480.trc:
ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode
Instance terminated by DBW0, pid = 1504
Dump file d:oracleadminsxncswbdumpalert_sxncsw.log


从ORA-27069错误和OSD-4026错误的信息不难看出,这些错误一般和操作系统命令有关,最后出现了ORA-1242错误,且数据库出现了CRASH。

查询metalink发现,这是Windows环境下Oracle9i的一个bug:1668488。这个bug影响NT环境9.2.0.3以前版本的数据库,当数据文件大小超过4G并尝试扩展,就可能导致这个文件的读写错误,对于ARCHIVELOG模式可能导致数据文件需要恢复,而对于NOARCHIVELOG模式,则会导致CRASH。

而客户的Windows是2000,数据库版本是9.2.0.1,检查发现这个USERS表空间的大小已经达到了31G,难怪频繁出现CRASH的问题。

SQL> SELECT A.TABLESPACE_NAME, TOTAL, FREE, FREE/TOTAL*100 PCT_FREE
2 FROM (SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 TOTAL FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A,
3 (SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 FREE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) B
4 WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+);
TABLESPACE_NAME TOTAL FREE PCT_FREE
------------------------------ ---------- ---------- ----------
CWMLITE .01953125 .010375977 53.125
DATA 29.296875 27.2373657 92.9702083
DRSYS .01953125 .010070801 51.5625
EXAMPLE .145874023 .000488281 .334728033
INDX 2.9296875 2.92962646 99.9979167
ODM .01953125 .010375977 53.125
PERFSTAT 2 1.88787842 94.3939209
SYSTEM .439453125 .006530762 1.48611111
TOOLS .009765625 .003845215 39.375
UNDOTBS1 2.97851563 .035827637 1.20286885
USERS 31.4990234 1.23046875 3.90637111
XDB .037231445 .000183105 .491803279


已选择12行。

除了升级操作系统和数据库版本外,解决这个问题的最简单的办法就是多建立几个数据文件,来避免单个文件超过4G的情况。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论