臨時表空間爆滿問題

2021-10-23 02:55:35 字數 2510 閱讀 6026

參考:

--檢視臨時表空間

select temp_used.tablespace_name,

total - used as "free",

total as "total",

round(nvl(total - used, 0) * 100 / total,3) "free percent"

from (select tablespace_name, sum(bytes_used)/ 1024 / 1024 used

from **$temp_space_header

group by tablespace_name) temp_used,

(select tablespace_name, sum(bytes) / 1024/ 1024 total

from dba_temp_files

group by tablespace_name) temp_total

where temp_used.tablespace_name = temp_total.tablespace_name;

--檢視使用者臨時表空間

select d.username, t.file_name, d.temporary_tablespace from

dba_temp_files t,dba_users d where t.tablespace_name = d.temporary_tablespace

--修改使用者的臨時表空間

alter user *** temporary tablespace data_temp;
--查詢原先的資料檔案做個記錄

select *  from  dba_temp_files
--事務在表空間下面的段狀態,必須等待臨時表空間下的所有段狀態變成offline才能drop

select segment_name,tablespace_name ,r.status

,(initial_extent/1024) initialextent,(next_extent/1024) nextextent,

max_extents,v.curext curextent from dba_rollback_segs r

,v$rollstat v where r.segment_id=v.usn(+) order by segment_name

--刪除原來的臨時表空間

drop tablespace pdm_temp including contents and datafiles;
--如果一直刪不掉,檢視是那些使用者仍在使用原先的臨時表空間 

select to_char( b.sql_fulltext),(select osuser from v$session v where v.saddr=session_addr ),

(select sid from v$session v where v.saddr=session_addr )

, (select serial# from v$session v where v.saddr=session_addr ),

tablespace,a.*  from  v$tempseg_usage a,v$sql b where a.sql_id=b.sql_id

--alter system kill session '428,24107'

--建立新的臨時表空間 

create temporary tablespace pdm_temp

tempfile '/data/pdm/data/pdm_temp01.dbf' size 30g ,

'/data/pdm/data/pdm_temp02.dbf' size 30g,

'/data/pdm/data/pdm_temp03.dbf' size 30g,

'/data/pdm/data/pdm_temp04.dbf' size 30g,

'/data/pdm/data/pdm_temp05.dbf' size 30g

autoextend off;

--檢視使用者臨時表空間

select d.username, t.file_name, d.temporary_tablespace from dba_temp_files t

,dba_users d where t.tablespace_name = d.temporary_tablespace

--切換為原先的臨時表空間

alter user *** temporary tablespace pdm_temp;
--刪掉臨時用來切換的表空間

drop tablespace data_temp including contents and datafiles;

臨時表空間爆滿的處理辦法

1這個是檢視當前占用臨時表空間的sql select se.username,se.sid,su.extents,su.blocks to number rtrim p.value as space,tablespace,segtype,sql text from v sort usage su,v...

臨時表空間不足問題

今晚開發臨時拉我去定位乙個資料庫問題,是臨時表空間不足的問題,主要是他們的sql存在clob大字段排序把臨時表空間佔滿了且不釋放。這種問題解決的最好辦法就是優化sql,能把臨時表空間耗盡的sql明顯是存在很大的問題的。但目前臨時表空間不足已經影響到其他應用,所以恢復臨時表空間是當務之急。治標不治本的...

臨時表空間

臨時表空間 1.什麼是臨時表空間 在oracle資料庫中進行排序 分組彙總 索引等到作時,會產生很多的臨時資料。如有一張員工資訊表,資料庫中是安裝記錄建立的時間來儲存的。如果使用者查詢時,使用order by排序語句指定按員工編號來排序,那麼排序後產生的所有記錄就是臨時資料。對於這些臨時資料,ora...