Perşembe , 2 Temmuz 2015
Anasayfa / MAKALELER / Veri Tabanı / Oracle Veritabanı Mimarisi -3

Oracle Veritabanı Mimarisi -3

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.

 

oracleveritabani

 

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

Etiketler->Aşağıdaki gibidir.

oracle, oracle mimarisi, oracle veritabanı, oracle veritabanı mimarisi, oracle ın iç yapısı, oracle database architecture, database architecture, Oracle memory yapısı,Oracle bellek yapısı

Mehmet Salih Deveci

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği bölümünden 2011 yılında mezun oldu. C#, ASP.NET ve Oracle, SQL Server Veritabanları Teknolojileri Alanlarında Çalışmalarını Sürdürmektedir. Şuan Türk Telekom A.Ş de Veritabanı Yöneticisi olarak Kariyerini Sürdürmektedir.

Latest posts by Mehmet Salih Deveci (see all)

Powered by Starbox

Hakkında Mehmet Salih Deveci

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği bölümünden 2011 yılında mezun oldu. C#, ASP.NET ve Oracle, SQL Server Veritabanları Teknolojileri Alanlarında Çalışmalarını Sürdürmektedir. Şuan Türk Telekom A.Ş de Veritabanı Yöneticisi olarak Kariyerini Sürdürmektedir.

Bir yorum

  1. Hocam eline, emeğine sağlık.
    Benim için oldukça yararlı bir seri oldu.

Cevapla

E-posta adresiniz yayınlanmayacak. Required fields are marked *

*


Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>