問題:服務器出現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,修改後就不會再出現以上問題了.