Temp tablo alanının yeniden oluşturulması

Temp tablespace , bazen kontrolsüz büyüdüğünde , küçültme ihtiyacı duyulabilir. Bunun için temp tablo alanının daha küçük boyutlarda yeniden oluşturulması gerekmektedir. Bu işlemi online olarak yapabiliriz.

Öncelikle yeni bir temp tablo alanı oluşturalım. Mevcut temp tablo alanının TEMP isimli olduğunu düşünelim. Geçici TEMP1 isimli yeni bir temp tablo alanı oluştuyoruz.

CREATE TEMPORARY TABLESPACE TEMP1 TEMPFILE 
  '+DATA' SIZE 10G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
TABLESPACE GROUP ''
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

Sistemin varsayılan temp tablo alanını yeni temp tablo alanı olarak ayarlıyoruz. 

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;

Varolan temp tablo alanını kullanan herhangi bir oturum kalmadığında mevcut alanı drop ediyoruz. Temp tablo alanı kullanımı aşağıdaki sorgu ile bulabiliriz. RAC veritatabanı ise tüm node’larda kontrol etmek gerekiyor.

select  tu.tablespace,tu.username,s.sid,s.serial# from v$tempseg_usage tu, v$session s
where tu.session_addr=s.saddr;

Fazla zamanımız yoksa , aşağıdaki komut ile ilgili oturumları kill edebiliriz . Fazla sabredenlerdenseniz bekleyebilirsiniz. IMMEDIATE ile kill için işaretlenmesin hemen kill edilsin diyoruz. Fazla zamanımız yok 🙂

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE 

Eski temp tablo alanını kullanan oturumlar temizlendiğinde aşağıdaki komut ile drop ediyoruz.

DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

Yeniden eski isimle aynı olan temp tablo alanı oluşturuyoruz.

CREATE TEMPORARY TABLESPACE TEMP TEMPFILE 
  '+DATA' SIZE 30G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
TABLESPACE GROUP ''
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

Yeni temp tablo alanımızı varsayılan yapıyoruz.

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

Daha önce TEMP1 için yaptıklarımızı tekrarlıyoruz.

TEMP1 tablo alanını kullanan tüm oturumlar bittiğinde drop ediyoruz. Oturum varken drop denerseniz oturum kapanana kadar beklersiniz. 

DROP TABLESPACE TEMP1 INCLUDING CONTENTS AND DATAFILES;

Artık TEMP isimli tablo alanımızı, istediğimiz boyutta yada istediğimiz disk grubunda oluşturmuş olduk.

Loading

Leave Your Comment