一台数据服务器A,配置TEMP表空间初始为9G,并且为自动扩展,但设定上限为65535MB,数据库所在分区D盘有剩余空间20G。
这台服务器CPU和内存配置都还行,Xeon E7330,4G内存。
运行一段Procedure,4小时后报错:ORA-01652:unable to extend temp segment by 64 in tablespace TEMP ORA-27059: could not reduce file size
此时发现D盘剩余空间全部被那个TEMP表空间文件占满,同时在DatabaseConsole中发觉TEMP表空间被自动设成了30G另一台数据库服务器B,配置与上面相仿,内存大些,8G。导入了上面相同的数据库。TEMP表空间初始为9G,自动扩展,设定上限为65535MB,不过数据库所在分区D盘有剩余空间60G。
运行同一段Procedure,30分钟完成。
运行过程中使终在监视TEMP表空间文件的大小,以及D盘的剩余空间,一直没有变动。第三台数据库服务器C,配置为个人电脑,内存2G什么的。导入相同的数据库,TEMP表空间初始为1G,自动扩展,设定上限为65535MB,数据库所在分区D盘剩余空间仅为12G。
运行同一段Procedure,约30分钟完成。
运行过程中使终在监视TEMP表空间文件的大小,以及D盘的剩余空间,一直没有变动。
请问数据服务器A出错的原因是什么?是不是Oracle另有什么关于TEMP表的配置不正确?
急问,谢谢!
这台服务器CPU和内存配置都还行,Xeon E7330,4G内存。
运行一段Procedure,4小时后报错:ORA-01652:unable to extend temp segment by 64 in tablespace TEMP ORA-27059: could not reduce file size
此时发现D盘剩余空间全部被那个TEMP表空间文件占满,同时在DatabaseConsole中发觉TEMP表空间被自动设成了30G另一台数据库服务器B,配置与上面相仿,内存大些,8G。导入了上面相同的数据库。TEMP表空间初始为9G,自动扩展,设定上限为65535MB,不过数据库所在分区D盘有剩余空间60G。
运行同一段Procedure,30分钟完成。
运行过程中使终在监视TEMP表空间文件的大小,以及D盘的剩余空间,一直没有变动。第三台数据库服务器C,配置为个人电脑,内存2G什么的。导入相同的数据库,TEMP表空间初始为1G,自动扩展,设定上限为65535MB,数据库所在分区D盘剩余空间仅为12G。
运行同一段Procedure,约30分钟完成。
运行过程中使终在监视TEMP表空间文件的大小,以及D盘的剩余空间,一直没有变动。
请问数据服务器A出错的原因是什么?是不是Oracle另有什么关于TEMP表的配置不正确?
急问,谢谢!
OK谢谢,我去试试。
但是在其它两台服务器上,同样的数据,同样一段Procedure,只花30分钟就能跑完。
这也是这个问题奇怪的地方。
试过了,新建了一个TEMP表空间,把旧的删了,问题依旧
结果昨天去A服务器上新建了一个Instance,参数配置设得跟之前出错的那个Instance一样,把数据库也导进去,然后在新的Instance中跑Procedure,居然就这么OK了!!
不知道原来的Instance中的数据库文件碰到了什么问题,水平有限,查不出什么原因。有可能重启一下服务器也可以解决,但客户那边不允许
现在就把应用切换至新的Instance,把老的出错的那个删了。虽没找到根本原因,但先解决了再说
这样的问题实在是第一次碰到,呵呵,谢谢大家的帮助。