Oracle 11g Background Processes

Selamlar,

bu yazımda oracle veritabanındaki background process’lere bakıcaz. Background process’leri temelde 2’ye ayırabiliriz; olmazsa olmaz process’ler ve isteğe bağlı process’ler. Background process’ler oracle veritabanının düzgün bir şekilde çalışabilmesi için arkaplanda çalışan işlemlerdir. Bu process’leri görev adamları gibi düşünebiliriz. Oracle her bir process’e bir veya birden fazla görev vermiştir ve bu process’ler görevlerini yerine getirmeye çalışan işçilere benzetilebilir.

Background process’leri listelemek için ‘v$bgprocess’ dinamik performans view’i kullanılabilir. Benim sistemimde ASM kurulu ve ‘select count(*) from v$bgprocess’ sorgusunu çalıştırdığımda 295 tane process gözüküyor. Tabi bu sayı 295 farklı process olduğunu göstermiyor. Bazı process’lerden database’de 1’den fazla olabilir. ASM kurulu olmayan sistemlerde bu sayı değişebilir. Ancak bu process’lerin çoğu idle durumdadır (yani çalışmıyor). Database’deki çalışan background process’leri listelemek için aşağıdaki sorgu çalıştırılır.

SELECT NAME, DESCRIPTION FROM V$BGPROCESS
WHERE PADDR != '00';

bgprocess1

Önemli process’leri listelemek istersek;

  1. DBWn (Database Writer Process)*
  2. LGWR (Log Writer Process)*
  3. CKPT (Checkpoint Process)*
  4. PMON (Process Monitor)*
  5. SMON (System Monitor Process)*
  6. ARCn(Archiver Process)
  7. MMON (Manageability Monitor Process)
  8. MMAN (Memory Manager Process)

bgprocess5

1. DBWn (Database Writer Process)

Database buffer cache alanındaki değişmiş (dirty hale gelmiş) blokları ilgili datafile’lara yazar. Bu yazma işlemi asenkron olarak gerçekleşir yani her blok değişikliğinde datafile’lara yazma işlemi gerçekleşmez. Çünkü amacımız bu dataları uzun süre buffer cache (memory) alanında tutmaktır. Bu process’den database’de 1’den fazla olabilir (maksimum 36 adet). Aşağıdaki işlemler olduğu zaman bu process tetiklenir;

  • Server process buffer cache alanında boş yer bulamaz ise,
  • Checkpoint geldiği zaman,
  • Database kapatıldığı zaman (shutdown abort dışında),
  • Zaman aşımına uğradığında,
  • Herhangi bir tablespace backup moduna alındığında,
  • Herhangi bir tablespace offline’a alındığında ya da read only moda alındığında.

bgprocess2

2. LGWR (Log Writer Process)

Bu process redo log buffer alanındaki log’ları sırası gelen redo log dosyasına yazar. Amacımız bu log bilgilerini en az süre redo log buffer alanında (memory’de) tutmaktır. Herhangi bir failure anında logları kaybetmek istemeyiz. Bu yüzden LGWR process’i neredeyse her an redo log dosyalarına logları yazma işlemini gerçekleştirir. Aşağıdaki olaylar olduğu zaman bu process tetiklenir;

  • Her 3 saniyede bir,
  • Her commit geldiğinde,
  • Log buffer cache alanının 1/3’ü dolduğunda,
  • Log buffer cache alanında 1 mb’lik log bilgisi oluştuğunda,
  • DBWn yazma işlemini gerçekleştirmeden hemen önce.

bgprocess3

3. CKPT (Checkpoint Process)

Checkpoint process’i olmazsa olmaz process’lerden biridir. Database’de checkpoint attığı zaman bu process Control File ile Data File’ın başlıklarını günceller. En güncel SCN bu başlıklara (header) yazılır. Yani bu process’in görevi tutarlılığı sağlamaktır.  Ayrıca database checkpoint attığı zaman DBWn process’i tetiklenir.

bgprocess4

4. PMON (Process Monitor)

Bu process’in bir çok farklı görevi var. Bunlar genelde user process’ler ile ilgili. User process fail olduğu zaman bu process’e ait kaynakları serbest bırakır ve database buffer cache alanını temizler. Örneğin bu session’ın lock’a düşürdüğü tabloları serbest bırakır, kill olan process’in ID’sini active process’lerden siler. Ayrıca user process fail olduktan sonra bu session’da rollback mi yoksa commit mi yapılacak ona karar verir.
Sessionları izleyerek idle kalan sessionları tespit edip belli bir timeout sonrasında kill edebilir.
Ek olarak listener’ın dinamik olarak ayarlanmasından sorumludur.

5. SMON (System Monitor Process)

SMON process’i database instance çalışmaya başladığı an devreye girer. SMON’un asıl görevi instance recovery işlemini gerçekleştirmektir. Yani database’i tutarlı hale getirir. Oracle 11g database’in açılabilmesi için tüm datafile’ların başlık (header) kısmında en güncel SCN’nin yazıyor olması gerekmektedir. Database için olmazsa olmaz process’lerden biridir.

6. ARCn(Archiver Process)

Default olarak bu process çalışır durumda değildir ancak bu process için de olmazsa olmaz denebilir. Database archivelog mod’a alındığı zaman bu process çalışmaya başlar. Görevi ise dolan redo log dosyalarını arşivlemesidir. Herhangi bir failure durumunda bu arşivlenmiş redo log’lar kullanılarak recovery işlemi gerçekleştirilir.  Database’i archivelog mod’da çalıştırmak Oracle tarafından best practice olarak önerilir. Eğer database bu modda değilse backup işlemleri gerçekleştirilemez.

7. MMON (Manageability Monitor Process)

MMON process’i her saati başı alınan AWR raporları için database’in istatistiklerini toplar. Ayrıca her AWR raporundan sonra ADDM’i (Automatic Database Diagnostic Monitor) tetikler.

8. MMAN (Memory Manager Process)

MMAN SGA’daki memory parçalarının iş yüküne göre dinamik olarak değiştirilmesinden sorumludur. İlk olarak Oracle 10g versiyonu ile tanıtılmıştır.

 

Kolay gelsin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s