處理TEMP表空間滿的問題

lilong發表於2006-05-08
伺服器出現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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章