Minimizing System Contention ( 11- Recovery Writer Waits )

Recovery Writer Waits

  - Veritabanınızdaki Oracle Flashback Database özelliğini açtınız. Şu anda yavaş bir RVWR (recovery writer) işlemi nedeniyle çok sayıda bekleme olayı görüyorsunuz. Recovery writer ın bekleyişlerini azaltmak istiyorsunuz.
 
  - Oracle değişen tüm blokları memoryden diskteki flashback loglarına yazar.Database flashback loglarına yazarken top event de "flashback buf free by RVWR wait event"  olayı ile karşılaşabilirsiniz.
  Bu recovery writer waits olayını azaltmak için  flash recovery area file system ve storage birimini "tune" etmemiz gerekir.
  Özellikle, aşağıdakileri yapmanız gerekir:
 
    Flashback logları oldukça büyük olma eğiliminde olduğundan, bu dosyalara yazarken veritabanınıza extra CPU yükü getirir.
   İlk akla gelen şeylerden biri, flash recovery area yı daha hızlı bir file sisteme taşımaktır. Ayrıca, Oracle, ASM'ye dayalı file sistemlerini kullanmanızı önerir; çünkü yavaşlatmaya sebep verebilecek I/O lar işletim sistemi file caching e tabi tutulmazlar.
  
   • Flaş kurtarma alanını depoladığınız file sistemi için birden çok disk ağı yapılandırarak disk verimliliğini artırın.Bu flashback loglarının yazımını hızlandıracaktır.
  
    Depolama hacimlerini ideal olarak küçük sınır boyutlarıyla (örneğin, 128 KB) sınırlandırın.
  
   • LOG_BUFFER başlatma parametresini minimum 8 MB değerine ayarlayın; flashback database loglarına yazma için ayrılan bellek, LOG_BUFFER parametresinin ayarına bağlıdır.
  
  Nasıl Çalışır:

  - Oracle, redolog buffer durumunun aksine,Oracle Flashback Database ek yükü düşük tutmak için, flashback loglarına düşük aralıklarla flashback bufferı yazar.
Flashback buf free by RVWR wait event, oturumlar RVWR işlemi üzerinde beklerken oluşur.
RVWR işlemi, flashback bufferların içeriğini disk üzerindeki flashback loglarına yazar.
Bu süreç sırasında RIVER geride kaldığında, Flashback buffer doludur ve boş arabellekler verileri DML işlemleri ile değiştiren oturumlar için kullanılamaz.
Oturumlar, RVWR'nin bufferı geri yükleyerek içeriğini flashback loglarına yazarak beklemeye devam edecektir.
Yüksek RVWR bekleyişleri, I/O sisteminizin, RVWR'nin flashback tamponlarını diskteki flashback loglarına götürmesi gereken hızı destekleyemediğini belirtir.

Constraint Disable-Enable

Disable Constraint BEGIN   FOR c IN   (SELECT c.owner, c.table_name, c.constraint_name    FROM user_constraints c, user_tables t    WHERE...