ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-1652 unable to extend temp segment

ORA-1652 unable to extend temp segment

原创 Linux操作系统 作者:飞鱼ch 时间:2011-09-04 22:56:34 0 删除 编辑

2011年8月24日
检查警告日志文件发现如下错误信息:
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。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26137921/viewspace-706633/,如需转载,请注明出处,否则将追究法律责任。

下一篇: DB2存储过程入门
请登录后发表评论 登录
全部评论

注册时间:2011-08-05

  • 博文量
    3
  • 访问量
    3105