ITPub博客

首页 > 数据库 > 数据库开发技术 > 处理TEMP表空间满的问题

处理TEMP表空间满的问题

原创 数据库开发技术 作者:lilong 时间:2006-05-08 21:44:05 0 删除 编辑
服务器出现TEMP表空间疯狂扩大,达到上限,无法扩展。 [@more@]

由于大量的排序操作造成服务器上Oracle数据库的TEMP表空间疯狂增长,数据库无法运行,做什么都超级慢,重新启动也无法解决!同样利用网络找到了解决方法:

1、 使用如下语句查看一下认谁在用临时段
SELECT username,sid,serial#,sql_address,machine,program,tablespace,segtype,contents FROM v$session se,v$sort_usage su
WHERE se.saddr=su.session_addr
2、 那些正在使用临时段的进程
SQL>Alter system kill session 'sid,serial#';
3、把TEMP表空间回缩一下
SQL>Alter tablespace TEMP coalesce;

但这种方法并不一定起作用,所以还需要下面这种方法辅助。

1、 确定TEMP表空间的ts#
SQL>select ts#, name from sys.ts$ ;

TS# NAME
-----------------------
0 SYSYEM
1 RBS
2 USERS
3* TEMP
4 TOOLS
5 INDX
6 DRSYS

2、 执行清理操作
SQL>alter session set events 'immediate trace name DROP_SEGMENTS level 4' ;
说明:
temp表空间的TS# 为 3*, So TS#+ 1= 4

TEMP清理以后,感觉是TEMP表空间的存储参数有问题,

因此将每次扩展64K改为640K,修改后系统不再出现上述问题。

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

请登录后发表评论 登录
全部评论
  • 博文量
    50
  • 访问量
    904342