22 Eylül 2010 Çarşamba

enq: CF - contention / log_archive_max_processes

Selamlar,

Bu aralar bekleme olayları (wait event) üzerinde duruyoruz madem, yine onlarla devam edelim.

Other statüsü içerisinde bulunan ve "enq: CF - contention" olarak adlandırılan bir bekleme olayı bulunmaktadır. Bu beklemelerin nedeni "Control File - contention" yani, kontrol dosyası üzerindeki çekişmelerdir. Kısaca kontrol dosyası bir türlü paylaşılamamaktadır! :)

Peki kontrol dosyasını kim, neden paylaşamaz? "Kontrol dosyasında da bekleme olayı olur mu?" diye sorduğunuzu duyar gibiyim, evet olabilir. Kontrol dosyasına paralel bir erişim sağlandığı zaman, kontrol dosyaları üzerinde beklemeler oluşabilmektedir. Kontrol dosyasının okunmasına ihtiyaç duyulduğu anlarda, örneğin; online redolog dosyalarının arşivlenmesi, online redolog geçişleri sırasında, yedekleme komutu gönderildiği zaman, gibi.

Oracle veritabanında "log_archive_max_processes" isimli bir parametre bulunmaktadır. Bu parametre çalıştırılacak paralel ARCn işlemlerinin adedini bildirmektedir. "Veritabanında çok fazla ARCn olsun, daha hızlı ve paralel yazarlar, herşey çok güzel olur" gibi bir yorumla geldiğiniz zaman ve bu log_archive_max_processes parametresini 30-50 gibi garip sayılara eşitlerseniz alabileceğiniz bekleme olayının adı "enq: CF - contention". Zaten 10'a kadar tanımlanabilen bir parametre olduğunu da söylemem gerekiyor. Bu parametre ile çok fazla oynamamanız ve varsayılan ile gitmeniz, Oracle tarafından tavsiye edilmektedir.

log_archive_max_processes parametresinin amacı arşivleyici görevin adedine belirlemektir. Bu parametrenin varsayılan değeri 2'dir. 1'den 30'a kadar değer alabilir ancak ARC0 - ARC9 arasında tanımlıdır. 10'den büyük bir değer girerseniz harflerle kodlamaya başlar ve ARC görev miktarı da artar. Bu parametrenin ARCn görevlerini üretmesi için LOG_ARCHIVE_START komutunu "TRUE" yapmanıza, Oracle'ın 10gR1 sürümünden sonra gerek olmadığını da eklemem gerekiyor. Versiyonunuz 10gR1'den önce ise LOG_ARCHIVE_START komutunu kullanabilirsiniz ancak 10gR1 ve sonrası ise bu parametere "deprecated" olmuştur, yani artık desteklenmemektedir ve kullanılmaması gerekmektedir. 10gR1 ve sonrası için bu parametreyi tanımlamak isterseniz veritabanının başlangıcında bilgilendirme mesajı alacaksınız (deprecated parametre tanımlandı).

enq: CF - contention bekleme olayının artmasındaki sebeplerden biri olan log_archive_max_processes parametresini dikkatli tanımlamak gerekmektedir. Aksi halde bir datafile küçültmek(shrink) etmek ya da veritabanına yeni bir redolog grubu eklemek istediğiniz zaman ciddi beklemeler yaşayabilirsiniz. Bir de redolog'larınız boyutu yüksek ise ve ARCn görevlerinin işini zorlaştırmış iseniz işiniz zor :)

İyi çalışmalar.

Ogan

Hiç yorum yok:

Takip et: @oganozdogan