昨天同事在执行一个存储过程时报如下错误:
ERROR at line 1: ORA-06502: PL/SQL: numeric or value error ORA-06512: at “D_INSIGHT.CREATE_EXTEND_TABLE”, line 53
ORA-01653: unable to extend table D_INSIGHT.DMS_DSR_MAIN by 128 in tablespace USERS ORA-27059: skgfrsz: could not reduce file size
OSD-04005: SetFilePointer() failure, unable to read from file O/S-Error: (OS 112) There is not enough space on the disk.
ORA-06512: at line 1
查看了一下该表对应的表空间(该表空间为LMT,段空间管理为自动),发现文件使用率已经达到99.92%,文件大小为4G,但检查该表空间的数据文件,发现已经设置为自动扩展,文件大小限制为32767MB,再检查硬盘分区,还有4GB的空间,那就奇怪了,按道理 oracle 会自动扩展文件大小来增加空间…再看一下错误信息:OSD-04005: SetFilePointer() failure, unable to read from file O/S-Error: (OS 112) There is not enough space on the disk.
而数据文件大小刚好为4G,会不会是受OS文件大小的限制呢?赶紧检查该文件对应的磁盘分区,晕,是FAT32!!!我们知道Windows中FAT32文件格式支持的最大文件大小为4G,所以 oracle 没办法自动扩展了,也就认为磁盘空间不够了。
原因找到了,解决起来就容易了:
方法一:增加数据文件
方法二:将该分区转化为NTFS格式
This is a terrific web site, might you be involved in doing an interview regarding just how you created it? If so e-mail me!
Admin - could you use help with your website? Through our site you can find Outsourced Workers starting at $1/hour. They speak English, work flexible hours, and pride themselves on doing a quality job. There are Article Writers, Web Designers, Virtual Assistants, Email Response Handling, SEO Workers, & more. If interested we invite you to check out OutsourcedWorker.com . Thanks