TEMP Tablespace’ ini Drop Etmek

Bir önceki yazımda undo tablespace’ ini recreate etmek den bahsetmiştim. Aslında aynı mantık Temp tablespace’ i içinde geçerli diyebiliriz. Temp tablespace’ inide zaman zaman drop-create etmemiz gerekebiliyor. Burda da benzer bir yöntem uyguluyoruz.

— 1. önce baska bir temporary tablespace yarat

–2 Yeni oluşturduğun temp tablespace’ ini Default olarak işaretle,

–2. sonra oncekini drop et

CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE’C:\ORACLE\10.2\ORADATA\PROD\temp2_01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 256K

MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP2;

DROP TABLESPACE temp INCLUDING CONTENTS AND datafiles

UNDO Tablespace’ ini Drop Etmek

Zaman içerisinde undo tablespace’ i çok büyüdüğünde ve resize edilemediği durumlarda drop-create etmek en kolay çözüm olmakta, aşağıda bu işlemin nasıl yapılabileceğini özetlemeye çalıştım. 
var olan undotbs tablespace’ ini ilk olarak drop etmeye çalışırsan; 

DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND datafiles 
— bu hatayi verdi ./* ORA-30013: undo tablespace ‘UNDOTBS1′ is currently in use */ 

Çünkü her database mutlaka bir tane undo tbs’ ine sahip olmalı, şu anda bizde var olan o bir tane undo tbs’ ini drop etmeye çalıştığımızdan hata alıyoruz. 

— önce başka bir undo tablespace yaratmamız lazım; 

CREATE UNDO TABLESPACE “UNDOTBS2″ DATAFILE’C:\ORACLE\10.2\ORADATA\PROD\UNDOTBS2_01.dbf’ SIZE 100M 
AUTOEXTEND ON NEXT 256K MAXSIZE 5000M RETENTION NOGUARANTEE ; 

— sonra tekrar drop etmeyi deneyelim; 

DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND datafiles; 
— ayni hatyi tekrar aldim. /* ORA-30013: undo tablespace ‘UNDOTBS1′ is currently in use */ 

Çünkü henüz systeme yeni tanıttığımız undo tbs’ ini tanıtmadık, yani undo_tbs2 ile varolan undotbs’ yi switch etmedik. 

ALTER SYSTEM SET Undo_Tablespace=UNDOTBS2 scope=BOTH

— tekrar drop etmeyi deneyelim,

DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND datafiles
Tablespace dropped.