由于大量的排序操作造成服务器上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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/18966/viewspace-833601/