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.
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
Latest posts by Mehmet Salih Deveci (see all)
- Oracle Data Guard Mimarisi - Şub 19, 2014
- Oracle RMAN ( Recovery Manager ) -4 - Şub 15, 2014
- Oracle RMAN ( Recovery Manager ) -3 - Şub 12, 2014
Hocam eline, emeğine sağlık.
Benim için oldukça yararlı bir seri oldu.