Undo tablo alanının kontrolü

18 Mar by Ahmet Duruöz

Undo tablo alanının kontrolü

Undo tablo alanı yoğun zamanlarda oldukça fazla kullanılmaktadır. Kontrolsüz gidildiğinde bazı işlemlerin kesilme ihtimali vardır. Düzenli olarak da undo tablo alanı kontrol edilmelidir.

Genel olarak kullanım durumunun kontrolü için aşağıdaki sorguyu kullanabilirsiniz.

SQL> column tablespace format a20;
SQL> column sum_in_mb format 999999.99;
SQL> select tablespace_name tablespace, status, sum(bytes)/1024/1024 sum_in_mb, count(*) counts from dba_undo_extents group by tablespace_name, status order by 1,2;

TABLESPACE	     STATUS	SUM_IN_MB     COUNTS
-------------------- --------- ---------- ----------
UNDOTBS1	     ACTIVE	     1.00	   1
UNDOTBS1	     EXPIRED	   212.44	 504
UNDOTBS1	     UNEXPIRED	   120.00	 361
UNDOTBS2	     EXPIRED	   123.63	 343
UNDOTBS2	     UNEXPIRED	    84.63	 289

Yukarıdaki sorgudaki durum kolonundaki bilgiler , ilgili undo bilgisinin ezilip ezilmeyeceğini de göstermektedir.

Eğer durumu ACTIVE ise bu undo , aktif olan bir işlemde kullanılıyor ve hiç bir şekilde ezilmeyeceğini gösterir.

Eğer durumu UNEXPIRED ise bu undo bilgisi tamamlanmış bir işleme ait olup ,henüz undo_retention ile belirtilen süreyi aşmadığını gösterir. Zorunlu kalındığında ezilebilir.

Eğer durumu EXPIRED ise bu undo bilgisi tamamlanmış bir işleme ait olup undo_retention ile belirtilen süreyi aştığını gösterir. İlk öncelikli ezilecek undo bilgisi bu durumda olandır.

Kullanıcı bazlı undo kullanımının kontrolü için aşağıdaki sorguyu kullanabilirsiniz.

SQL> column tablespace format a20;
SQL> column username format a20;
SQL> column status format a10;
SQL> column sum_in_mb format 999999.99;
SQL> select u.tablespace_name tablespace, s.username, u.status, sum(u.bytes)/1024/1024 sum_in_mb, count(u.segment_name) seg_cnts from dba_undo_extents u left join v$transaction t on u.segment_name = '_SYSSMU' || t.xidusn || '$' left join v$session s on t.addr = s.taddr group by u.tablespace_name, s.username, u.status order by 1,2,3

TABLESPACE	     	 USERNAME		      STATUS      SUM_IN_MB   SEG_CNTS
-------------------- -------------------- ---------- ---------- ----------
UNDOTBS1			AHMET	  			  ACTIVE	   1.00 	 	1
UNDOTBS1			AHMET	  		 	  EXPIRED	 181.06        467
UNDOTBS1			AHMET	  			  UNEXPIRED	 172.38        433
UNDOTBS2			TESTUSER	  		  EXPIRED	  91.00        301
UNDOTBS2			TESTUSER	  		  UNEXPIRED	 144.25        358

Çok fazla undo tüketen kullanıcılardan , yaptıkları işlemlerde daha sık commit ya da rollback yapmaları istenebilir. Bu sayede uzun süre aktif undo kullanımı olmayacaktır.

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir