最近在执行一个大数据量查询时报如下错误:
ORA-01114: IO error writing block to file 201 (block # 523913)
ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file
OSD-04026: Invalid parameter passed. (OS 523927)
ORA-01114: IO error writing block to file 201 (block # 523913)
经查询file 201是临时表空间的第一个文件,该文件初始大小为2GB,自动扩展,每次扩展640K,当到达4G时出现以上错误。后来又测试了一下,发现在跨越8G时也会出现以上错误:
SQL> select * from v_offtake_profit_inv_national;
ERROR:
ORA-01114: IO error writing block to file 201 (block # 1048178)
ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file
OSD-04026: Invalid parameter passed. (OS 1048192)
ORA-01114: IO error writing block to file 201 (block # 1048178)
ORA-27069: skgfdisp: attempt to do I/O beyond the range of the file
OSD-04026: Invalid parameter passed. (OS 1048192)
但是如果把每次扩展改成10M,则不会出现这个错误。
数据库版本: oracle 9.2.0.1 Enterprise Edtion
OS:Windows 2003 Enterprise SP1
文件系统:NTFS
在metalink上查找相关资料,发现是 oracle 的一个BUG,参考Notes:317174.1,内容如下:
———————————————————————————————————————
主题: DB <9.2.0.3 Cannot AUTOEXTEND to 4Gb boundary in NT
Applies to:
oracle Server - Enterprise Edition - Version: 9.2.0.1.0
Microsoft Windows (32-bit)
Symptoms
When a datafile has been configured such that it will autoextend onto a 4GB boundary, any attempt to autoextend the file causes the file the database to crash (when in noarchive log mode). If the database was in archive log mode,will be marked offline recover and access to the database continues.
The following error appears in the alert.log :
.
KCF: write/open error block=0×32002 online=1
file=11 ‘E:\ oracle \ORA92\BORG\MAXIMO.ORA’
error=27069 txt: ‘OSD-4026: Invalid parameter passed. (OS-204802)’
Automatic datafile offline due to write error on
file 11: ‘E:\ oracle \ORA92\BORG\MAXIMO.ORA’
.
Any attempt to online / recover this file results in :
.
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)
Cause
Its a Bug specific to NT platform only. Cannot AUTOEXTEND to 4Gb boundary
Solution
This bug is fixed in 9203. Upgrading the database to the latest relase followed by a recovery will solve this problem.
Here are the steps:
1.Do a clean shutdown of the database
2. Upgrade the database to the latest version ( greater than 9.2.0.3) as this bug is fixed in 9203.
If the database version is below 9i Rel 2(9.2.0.1) then first upgrade to 9iRel2 and then apply the latest available patchset.
Kindly check metalink for the latest patchset available
3.Mount the database
4.Do a COMPLTE recovery of the dataabse
5.Then start the database in migrate mode and upgrade the database. Refer Note 159657.1: Complete Upgrade Checklist for Manual Upgrades from 8.X / 9.0.1 to Oracle9i
6.Shutdown the database and then restart in normal mode.
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
References
Bug 1668488 - Unable To Recover Datafile That Has Auto Extended Onto A 4gb Boundary
Errors
ORA-1115 IO error reading block from file <name> block # <num>
ORA-1110 datafile <name>: <str>
ORA-283 recovery session canceled due to errors
OSD-4026 Invalid parameter passed.
ORA-27069 { Message text depends on version }
————————————————————————————————-
解决方法:
1。升级至9203以上
2。临时文件不设置自动扩展,把每个临时文件大小设置成<4GB,通过添加多个临时文件来扩展空间
No Comments
Be the first to comment on this entry.
Leave a comment
Fields in bold are required. Email addresses are never published or distributed.
Some HTML code is allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>URLs must be fully qualified (eg: http://www.dbifan.com),and all tags must be properly closed.
Line breaks and paragraphs are automatically converted.
Please keep comments relevant. Off-topic, offensive or inappropriate comments may be edited or removed.