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.

CORRUPTED Olmuş UNDO Tablespace’ ini Drop Etmek

Rollback Segmentlerini Undo Tablespace’ i otomatik kendisi manage eder. Kimi durumlarda rollback segmentleri corrupt olabiliyor. Böyle bir durum oluştuğunda klasik yollardan undoyu drop – create etmek işe yaramıyor. Üstelik undodaki bu problem den dolayıda sürekli çoğu transaction hata almaya başlıyor. Bu durumu  düzeltmek aşağıdaki gibi bir yöntem izlememiz gerekiyor.
Continue reading