1. 程式人生 > 其它 >刪除臨時表空間

刪除臨時表空間

問題描述:進行資料庫的資料清理,已經清理了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 from
v$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