Merhaba,

Bu yazımda Oracle Veritabanı mimarisini anlatmaya devam edeceğim. İlk yazıdan itibaren paylaştığım Oracle veritabanı mimarisinin şeklini aşağıda tekrar paylaşıyorum.

Oracle Database Architecture

SMON ( System Monitor ): Oracle Instance sını kurtarmakla görevli önemli bir process tir. Bu process çalışmıyorsa eğer veritabanı down olmuş demektir. Oracle veritabanı istenmedik bir şekilde tutarsız bir şekilde kapandığında bu process veritabanının açılışı sırasında online redo log dosyalarını kullanarak instance sın tutarlı bir şekilde açılmasını sağlar. Aniden öldürülen transaction ların kurtarılmasını da yine bu process sağlar. Bu process i işletim sistemi üzerinden aşağıdaki gibi görebiliriz.

bash-4.1$ ps -ef | grep smon
oracle    9055     1  0 13:38 ?        00:00:00 ora_smon_TESTDB
oracle    9250  8803  0 14:24 pts/0    00:00:00 grep smon
bash-4.1$

Bu process i işletim sistemi üzerinden öldürdüğümüz zaman aşağıdaki gibi veritabanı ani bir şekilde kapatılır.

bash-4.1$ ps -ef | grep smon
oracle    9055     1  0 13:38 ?        00:00:00 ora_smon_TESTDB
oracle    9258  8803  0 14:28 pts/0    00:00:00 grep smon
bash-4.1$ kill -9 9055
bash-4.1$ ps -ef | grep smon
oracle    9260  8803  0 14:29 pts/0    00:00:00 grep smon
bash-4.1$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 4 14:29:08 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to an idle instance.
SQL>

PMON ( Process Monitor ): Bu process te başarısız olan yada aniden sonlandırılan process lerin kullandığı sistem kaynaklarını serbest bırakıp sunucuya teslim eder. Ayrıca Oracle instance sının listener ile iletişim kurmasını sağlar. Bu process i işletim sistemi üzerinde aşağıdaki gibi görebiliriz.

bash-4.1$ ps -ef | grep pmon
oracle    9423     1  0 14:37 ?        00:00:00 ora_pmon_TESTDB
oracle    9559  8803  0 14:37 pts/0    00:00:00 grep pmon
bash-4.1$

RECO ( Recoverer Process ): Bu process veritabanında çeşitli sebeplerden dolayı yarım kalan işlemlerin tamamlanmasını sağlar.

DBWn ( Database Writer ): Yukardaki şekildeki bağlantıdan da anlaşılabileceği üzere DBW process i Datafile larla Database Buffer Cache arasında mekik dokuyan bir processdir. Yani Bir transaction başladığı zaman ilgili bloklar buffer cache de yok ise datafile lardan bu blokları Buffer cache e DBW processi taşır. Aynı şekilde Datafile lara yazılması gereken dirty blokların Buffer cache den Datafile lara yazılması görevinide bu process yürütür. Oracle veritabanı ilk kurulumda default olarak 1 tane db_writer_process i oluşturur ve bu parametrenin maksimum değeride 36 dır. Bu parametreyi aşağıdaki gibi sorgulayabilirsiniz.

bash-4.1$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 4 13:39:44 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved. 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter db_writer_process

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_writer_processes                  integer     1
SQL>

Bu process ler aşağıdaki olaylar gerçekleştiği zaman çalışır ve Buffer Cache deki değişen bloklar data file lara yazar.

  • Database buffer cache de alan dolduğu zaman en eski bloklardan başlanarak datafile lara yazma işlemi başlar.
  • Checkpoint process i tetiklendiği takdirde.
  • Bir tablespace read-only moduna getirildiği zaman.
  • Bir tablespace offline duruma getirildiği zaman.
  • Herhangi bir tablo drop yada truncate edildiği zaman.

Buffer cache deki verilerin datafile lara yazılmasını manuel olarak bizde aşağıdaki kod ile sağlayabiliriz.

SQL> Alter system checkpoint;

LGWR ( Log Writer Process ): Bu process te tıpkı DBW process i gibi tampon bellekteki verileri fiziksel dosyalara yazan bir process tir. Bu process Redo log buffer ile Online Redo log files ları arasında çalışır. Redo log buffer daki transaction bilgilerini sırasıyla Online redo log files lara yazar. LGWR process i aşağıdaki durumlar zuhur ettiğinde Redo log buffer daki verileri Online Redo log files lara yazar.

  • Kullanıcı bir transaction sonucunda Commit gerçekleştirdiğinde
  • Online Redo log grupları switch ettiği zaman (Log switch)
  • Her 3 saniyede 1
  • Ortalama 1 mb lık Redo log oluştuğu zaman
  • Redo log buffer alanının 3 te 1 i dolduğu zaman

CKPT ( Checkpoint Process ): Bu process tetiklendiği zaman Database Writer ( DBW ) processi, Database buffer cache de bulunan dirty bloklarını datafile lara yazar ve aynı zamanda da Datafile ların header bilgilerini de günceller. Bu process çok sık aralıklarla tetiklenirse eğer sürekli olarak diske yazma gerçekleşeceği için Veritabanında yavaşlamalar görülür, nadir olarak çalıştığı takdirdeyse değişen bloklar datafile lara yazılmadığı için ve değişen blok sayısı biriktiği için Oracle veritabanı instance sı ani bir şekilde crash olduğu zaman instance sı kurtarmak biraz zaman alacaktır. Bu process in tetiklenme sıklığını belirlemek yukardaki sebeplerden dolayı önemlidir.

ARCn ( Archiver process ): Bu process veritabanımız eğer Arşiv modundaysa aktifleşen bir processdir. Online Redo log grupları dolduğu zaman log switch işlemi sırasında dolan redo log dosyasının kopyasının arşiv dosyası olarak kopyalayan process tir. Bu process disaster recovery kurulumunda Disaster yada standby sunucusuna Redo log dosyalarının gönderilmesi işleminide sağlar.

Böylece Oracle Veritabanı Mimarisini anlattığım yazı serimi bu yazıyla birlikte tamamlıyorum şimdilik Esen Kalın.

Mehmet Salih Deveci

Oracle Veritabanı Yöneticisi

//

//

Reklamlar

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. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s