問題:服務器出現TEMP表空間肆意擴大,達到極限,無法繼續擴展。
解決方法:
1、使用下面的語句查一下是誰在用臨時段
SELECT s.username, s.sid, s.serial#, s.sql_address,
s.machine, s.PRogram, su.tablespace, su.segtype, su.contents
FROM v$session s, v$sort_usage su
WHERE s.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,修改后就不會再出現以上問題了。
新聞熱點
疑難解答