Blog ' da Ara

Loading

25 Ağustos 2011

ORACLE UNDO DATA YÖNETİMİ

                                
                Oracle Undo Data Yönetimi hakkında yazımıza öncelikle Undo data nedir tarif ederek başlayabiliriz.Undo data ;
·         Orjinal, değişime uğramamış datanın kopyasıdır,
·         Her transaction (Dml işlemleride bir transcation gibi çalışırlar) sonrası değişen data,
·         En azınad transaction son buluna kadar tutulurlar,
·         Kullanıldığı alanlar;
o   Rollback operasyonları,
o   Read-consistent sorguları,
o   Flashback utility
o   Fail olan transactionların recover edilmesi

Transaction ve Undo Data Arasındaki ilişki

  Şekil 1 : Transaction ve Undo Data Arasındaki ilişki


        Şekjil 1 de Transaction ve Undo Data arasındaki ilişki sembolize edilmiştir.Her undo transaction yanlız bir adet undo segmente içerisinde tutulur ancak bir undo segment 1 den fazla transaction tutabilir.Bir transction başladığı zaman oracle tarafından undo segmente yönelendirilir.Eğer transaction life cycle içerisinde Data değişime uğrayacaksa, datanın orjinal hali undo segmente kopyalanır.Ayrıca paralel Dml operasyonlarıda birden fazla undo segment  de tutulurlar.Hangi transaction hangi undo segment  koplayalanmış V$TRANSACTION ve V$UNDOSTAT viewlarından öğrenebiliriz.
        Undo segmentler (özel bir segment tipdir) de UNDO TABLESPACE de tutulur.Bu tablespace veritabanı ile birlikte oluşturulan default bir tablespacedir.Aynı zamanda sadece 1 adet undo tablespace undo verilerinin yazılması için kullanılabilir.Undo tablespace sadece undo bilgilerini tutar ve özel recover tiplerine sahiptir.Undo Tablespace veritabanı tarafından yönetilir.Çünkü fail olan transactionların recover edilmesi için gereklidir.Bununla birlikte undo tablespace sadece database mount modda iken recover edilebilir.
       
  Şekil2: Undo data ve redo data

Şekil 2 de undo ile redo data arasındaki farklar tablo şeklinde verilmiştir.Bununla Birlikte Undo Yönetimindeki kritik noktaları vurgulamaya çalışalım.
        Undo tablespace deafult opsyion olarak 11g ile birlikte gelmiştir.Ve oracle undo tablespace in otomatik yönetimini tavsiye eder.Eğer flash back kullanımı yoğunsa space hatalarından kurtulmak için undo tablespace i fazla belirlemelisiniz.
        UNDO_RETENTION, undo bilgilerinin commit lendikten sonra undo segmentlerde nekadar tutulacağını belirten saniye cinsinden parametredir.Eğer UNDO tablespace Auto extend (Otomatik olarak genişleyen) modda ise , Eğer retention parametresini LOB (Large Object) lar için set edecekseniz ve commitlendikten sonra belli bir süre undo bilgilerini garanti etmek istiyorsanız bu parametreyi set etmeniz gerekir.
        Retention paramteresini set etmek bu noktada önem arzeder çünkü, eğer bu süre çok uzun verilerse undo kısa sürede boşaltılamayacak demektir.Flashback yapabileceğiniz süre uzayabilir.Ancak Eğer bir transaction var olan boş undo alnından fazla undo veri üretirse fail olur.Dolayısıyla bu süreyi db ihtiyaçlarına göre ayarlamak gereklidir.Transactionların çok yoğun olduğu db lerde undo tablespace ne kadar büyük verilebiliyorsa , buna göre ortalama transaction  yoğunluğu undo veri üretimi göz önüne alınarak optimüm sürede undo_retention süresi belirlemek doğru bir yaklaşım olacaktır.Ayrıca ilgil task için UNDO Advisor da kullanılarak fikir edinebilinir.
        Undo advisor verilen bir Retention süresine karşılık ne kadar undo tablespace belirlenilmesi gerektiğini hesaplama yapabilmektedir.
        Oracle default olarak commitlenen verilerin üzerine yeni undo veriler yazar. Bu opsiyon aşağıdaki sql ile değiştirilebilri ancak bu durumda transactionların fail olması bahasına retention granti alınmış olur.
ALTER TABLESPACE UNDOTBS RETENTION GUARANTEE;
Tekrar default garanti ayarını sağlamak içinse
ALTER TABLESPACE UNDOTBS RETENTION NOGUARANTEE;
Retention guarantee opsyonu sadece undo tablespace için uygulanabilir.
Bir dba bu konuda yapması gereken undo retention süresi iiçn gereken undo tablespace size hesaplamak ve hesaplamak için belirlenen periyoddaki system activity grafiklerinden de aşağıdaki parametreleri takip ederek verdiği kararı hem test etmek hemde db ye tanımaktır.
·         Undo Tablespace usage : Undo Tablespace size in MB by days of month,
·         Undo retention Auto-Tuning : Visualizes the tuned undo retention in minutes by days of month,
·         Undo generation Rates :Displays the undo generation in Kb/sec. by days of month

2 yorum:

"Sorularınız ve Eleştirileriniz Değerlidir"