Resize datafile hit ORA-01237 ORA-27059 OSD-04005 O/S-Error: (OS 665) on windows 2008
今天群里有个同学遇到了这个问题在此记录一下。
查看alert log 发现多条错误是表空间不足,无法扩展
ORA-1653: unable to extend table RZRQHIS.SC_C09_2014_01 by 8192 in tablespace RZRQHIS
先是修改了数据文件为自动扩展尝试解决此问题
alter database datafile ‘D:\ORADATA_MAST\RZRQHIS.DBF’ autoextend on next 500m maxsize unlimited
尝试手动resize 数据文件
SQL> ALTER TABLESPACE RZRQHIS RESIZE 500G;
ALTER TABLESPACE RZRQHIS RESIZE 80G
*
ERROR at line 1:
ORA-01237: cannot extend datafile 6
ORA-01110: data file 6: ‘D:\ORADATA_MAST\RZRQHISxx.DBF’
ORA-27059: could not reduce file size
OSD-04005: SetFilePointer() failure, unable to read from file
O/S-Error: (OS 665) The requested operation could not be completed due to a
file system limitation
确定当前情况
select round(sum(bytes)/1024/1024/1024) from v$datafile f, v$tablespace ts where f.ts# = ts.ts# and ts.name = 'GLCOMM' / select BIGFILE from dba_tablespaces where tablespace_name='GLCOMM'; select * from v$version where rownum=1;
oracle 10.2.0.4 on windows 2008,当前datafile大小400G 的bigfile tablespace, 数据文件存放在NTFS 文件系统上.
Solution
===========================
根据 KB2002606记录根本原因是在 NTFS 文件系统卷中的碎片过多的文件不可能超出一定大小用于描述分配的结构中为实现限制所致,windows出了相关的补丁来解决此问题,对于windows 2k8 和windows 2k8 r2都有修改,修复时版本需要注意。官方文档参考 KB957065 和 KB967351
对不起,这篇文章暂时关闭评论。