问题描述
今天有朋友问到如下一则案例,ORA-01114,ORA-27067以及OSD-04026错误同时出现:
*** ACTION NAME:() 2009-04-01 09:31:00.762 *** MODULE NAME:(JDBC Thin Client) 2009-04-01 09:31:00.762 *** SERVICE NAME:(SYS$USERS) 2009-04-01 09:31:00.762 *** SESSION ID:(145.9) 2009-04-01 09:31:00.762 *** 2009-04-01 09:31:00.762 ksedmp: internal or fatal error ORA-01114: 将块写入文件 201 时出现 IO 错误 (块 # 492) ORA-27067: I/O 缓冲区的大小无效 OSD-04026: Invalid parameter passed. (OS 1318912) ORA-01114: 将块写入文件 201 时出现 IO 错误 (块 # 492) ORA-27067: I/O 缓冲区的大小无效 OSD-04026: Invalid parameter passed. (OS 1318912) ORA-01114: 将块写入文件 201 时出现 IO 错误 (块 # 492) ORA-27067: I/O 缓冲区的大小无效 OSD-04026: Invalid parameter passed. (OS 1318912) ORA-01114: 将块写入文件 201 时出现 IO 错误 (块 # 9) ORA-27067: I/O 缓冲区的大小无效 OSD-04026: Invalid parameter passed. (OS 1318912) No current SQL statement being executed.
专家解答
这个错误在9i的某些版本中,是因为文件大小超越了OS的限制时会出现的一个问题,多数出现在Windows平台上。
Metalink上的Notes:317174.1,记录了一个类似的问题,这是Oracle Server - Enterprise Edition - Version: 9.2.0.1.0 Microsoft Windows (32-bit)上的一个Bug:
Its a Bug specific to NT platform only. Cannot AUTOEXTEND to 4Gb boundary,This bug is fixed in 9203.
317174.1 记录的错误信息如下:
ORA-283: recovery session canceled due to errors ORA-1115: IO error reading block from file 11 (block # 204802) ORA-1110: data file 11: 'E:\ORACLE\ORA92\BORG\MAXIMO.ORA' ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file OSD-4026: Invalid parameter passed. (OS-204802)
但是这个数据库是64位Windows上的10.2.0.4,问题出现在临时表空间文件上。
查询过几个相关的问题原因都是类似的:CTAS处理大批量的数据导致异常。
这个问题的CTAS SQL有600多个Case When判断,SQL文本有47K,强烈用户建议改写SQL。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。