刪除臨時表空間
阿新 • • 發佈:2021-07-07
問題描述:進行資料庫的資料清理,已經清理了4.6T的一個表空間,下邊的大物件還有一個將近兩個T的臨時表空間需要清理。臨時表空間的使用率並不高,當時被建到了兩個T也不得而知,首先要先將使用者的預設臨時表空間切換到新的,然後將老的刪除掉
1.當前RAC的資料盤free_mb 大概為5T,資料冗餘型別是HIGH,三分冗餘,後邊清掉了一個4.6T的表空間,清理空間為15T,然後在清理一個使用者下的臨時表空間,2T左右。
2.檢視臨時表空間的使用率
select c.tablespace_name, to_char(c.bytes/1024/1024/1024,'99,999.999') total_gb, to_char( (c.bytes-d.bytes_used)/1024/1024/1024,'99,999.999') free_gb, to_char(d.bytes_used/1024/1024/1024,'99,999.999') use_gb, to_char(d.bytes_used*100/c.bytes,'99.99') || '%'use from (select tablespace_name,sum(bytes) bytes from dba_temp_files GROUP by tablespace_name) c, (select tablespace_name,sum(bytes_cached) bytes_used fromv$temp_extent_pool GROUP by tablespace_name) d where c.tablespace_name = d.tablespace_name;
3.建立臨時表空間,為了切換
4.檢視此時使用者的預設臨時表空間,此時已經切換回來了,如果出現預設的臨時表空間為兩個的話,可能是還有操作在舊的臨時表空間中工作
select username,default_tablespace,temporary_tablespace from dba_users where username='GDM'
5. 檢視臨時表空間的連線會話,發現已經沒有了舊的連線表空間的會話了
select inst_id,username,session_num,sql_id,tablespace,segtype,sum(blocks)*8/1024/1024 size_in_gb from gV$TEMPSEG_USAGE group by inst_id,username,session_num,sql_id,tablespace,segtype
6.刪除舊的臨時表空間
drop tablespace GDM_TEMP including contents and datafiles cascade constraint;
7.刪除完檢視空間的釋放情況,釋放空間到了20T