阅读更多
检查警告日志文件发现如下错误信息:
Wed Aug 24 08:26:52 2011
ORA-1652: unable to extend temp segment by 64 in tablespace TEMP
不能扩展临时并表空间,之前收到这样的短信提示。查看Support中心的建议是给表空间增加数据文件或者在另一表空间创建该对象。
在RAC环境中,有两种可能情形引发ORA-1652的错误:
1.临时表空间完全用完;
2.由于其他实例在使用临时表空间,导致本地临时表空间无法扩展。
运行以下查询确定是哪一种情形:
select sum(free_blocks) from gv$sort_segment where tablespace_name='TEMP';
查询结果显示判断:如果free blocks是0,则是由于第一种情况引起,否则就是第二种情况;
查看临时表空间分配给所有实例的情况:
select inst_id,tablespace_name,total_blocks,used_blocks,free_blocks from gv$sort_segment;
说明:
total_blocks:指每个实例可用的临时段空间;
used_blocks:指已经使用的的空间值;
free_blocks:指可被分配是段空间。
如果在一个实例上发生ORA-1652错误,会发现used_block=total_blocks和free_blocks=0,在警告日志文件中会
会发现以下重复的错误信息:
Sun Aug 1 08:12:41 2004
ORA-1652: unable to extend temp segment by 2048 in tablespace TEMP
Sun Aug 1 08:12:51 2004
ORA-1652: unable to extend temp segment by 2048 in tablespace TEMP
Sun Aug 1 08:16:37 2004
ORA-1652: unable to extend temp segment by 2048 in tablespace TEMP
如果发生了,建议另一个实例释放空间。如果在多个实例之间发生争用,导致系统变慢,可通过以下方案解决:
————增加临时表空间的大小;
————在RAC中不要使用默认的TEMP表空间;
————增加sort_area_size或者pga_aggregate_target,也可以同时增加。
最严重的情况是,由于排序段忙于其他任务,导致SMON不能处理排序段请求,通过以下步骤诊断:
1.在问题发生期间周期性查看一下输出:
select inst_id,tablespace_name,total_blocks,used_blocks,free_blocks from gv$sort_segment;
2.Troubleshooting a hung database。
转自:http://blog.itpub.net/26121829/viewspace-1054290/
可参考:http://blog.chinaunix.net/uid-22741583-id-85041.html
http://bbs.csdn.net/topics/110093328
http://bbs.51cto.com/thread-653543-1.html