Oracle 11g 使用shrink來自動縮小Temporary Tablespace的空間

在Oracle 9i時,要縮小Temporary Tablespace的空間時,都是新增一個新的Temporary Datafile,
再將原有的Temporary Datafile離線後刪除,但是現在資料庫已經更新到11gR2的版本。

藉著這次RMAN異機還原的測試,順便測試shrink的功能。

由下列的檢查發現大約25GB的Temporary,只有使用了約600MB的大小。
SQL> select * from dba_temp_free_space;

TABLESPACE_NAME      TABLESPACE_SIZE   ALLOCATED_SPACE   FREE_SPACE
------------------   ---------------   ---------------   ----------
TEMP02               2.5801E+10        616562688         2.5795E+10

直接執行下列的SQL
SQL> alter tablespace temp02 shrink space;

Tablespace altered.

重新查詢,發現Tablespace_size已經變成12MB,使用率在重整後實際只有使用6MB
SQL> select * from dba_temp_free_space;

TABLESPACE_NAME        TABLESPACE_SIZE  ALLOCATED_SPACE  FREE_SPACE
--------------------   ---------------  ---------------  ----------
TEMP02                 12533760         6242304          6291456


雖然Temporary Tablespace只有12MB,但是加大空間比縮小簡單多了,
不過有了shrink,縮小Temporary Tablespaces也就變得簡單,也不必重開資料庫。