Oracle Veritabanı Mimarisi

Bu makalemizde Oracle veritabanı mimarisi konusu anlatacağım. Veritabanı yönetiminde dünya genelinde büyük projelerde Oracle veritabanını görebilirsiniz. Oracle veritabanını öğrenmek için öncelikle mimariyi bilme ve iyi anlamak gerekmektedir. Sözü çok fazla uzatmadan mimariden basetmeye başlayalım.

Oracle veritabanı çalıştığı anda işletim sisteminde shared gloabal area (SGA) memory alanı oracle için ayrılır. Hem arkasından eş zamanlı olarak bazı processler veritabanına gelen istekleri karşılamak için başlatılır. Aşağıdaki resimde oracle veritabanı mimarisini görebilirsiniz. Şimdi bu mimarinin parçalarından kısaca bahsedelim.

oracle_vt_mimari

Control Files: Control File ctl uzantılı işletim sistemi üzerinde tutulan Oracle veritabanı için çok önemli bir dosyadır. Oracle veritabanı ilk başladığında SPFILE veya PFILE parametre dosyaları okunarak Control File dosyasının bulunduğu yer öğrenilir. Minimum 2 kopya tutulurken tavsiye edilen 3 aynı kopyayı farklı disklerde tutmaktır. Control File dosyasında ne gibi bilgiler var, bunları listeleyelim.

  • Veritabanı ismi (Instance veritabanı açılırken veritabanı ismini buradan öğrenir)
  • Veritabanı verilerinin tutulduğu Datafile dosyalarının yeri
  • Online Redo log ve Archive log dosyalarının yeri
  • RMAN ile alınan backup bilgileri
  • Checkpoint bilgisi
  • Veritabanı işlemlerinde kullanılan SCSN (System Change Number) numarasının güncel hali
  • Transactionların tutulduğu log dosyalarının sequence number bilgisi
  • Veritabanı oluşturulma tarihi

Data Files: Verilerin bulunduğu dbf uzantılı dosyalardır. Oracle veritabanı oluşturduğunuzda system, undo, sysaux,temp ve user datafile varsayılan olarak oluşturulur.

SGA: Sytem Global Area, oracle instance çalıştığında bellek üzerinde ayrılan alandır. Oracle instance kapatılana kadar bu alan kullanılır. SGA değerinin büyük olması performansı etkileyecektir. SGA değerinin büyük olması disk üzerinden yapılan I/O miktarını azaltacağından performansı etkileyecektir. SGA değerinin kurulum aşamasında veritabanını oluştururken belirleriz. Kısacası SGA değerini doğru bir şekilde ayarlanması önemlidir.

PGA: Program Global Area, Oracle instance ile ilgili bir process çalıştığında bellek üzerinden ayrılan alandır. Process sonlanınca bu alan bırakılır.

Shared Pool: Library cache ve Dictionary cache’den oluşmaktadır.

Library Cache, SQL statementlerin execution planları ve yol haritaları bulunur. Execution planlar, optimizer tarafından toplanan istatistiklere göre oluşturulur. Sorgu sonucunun daha hızlı çalışması için kullanılır.Database performansını ciddi ölçüde etkiler. Örneğin veritabanına bir sorgu geldiğinde ilk bu bölüme gelir, sorgu daha önce çalıştırılmışsa önceki execution plan kullanılır.

Data Dictionary cache ise o anda alınan SQL statement için yetki, rol, erişim izni, hangi indexi kullanacak gibi dataların kontrol edildiği yerdir.

Database Buffer Cache: Veritabanında güncel ve sık kullanılan verilerin tutulduğu alandır. Bir transaction’a ait datalar tutulur.

Redo Log Buffer: Veritabanında yapılan tüm değişiklikler redo log bufferda tutulur. örneğin siz bir insert işlemi yaptınız. yapılan değişiklik redolog buffer cache de tutulur. LGWR processini tetikleyen bir olay olduğunda redolog buffer kalıcı olarak redolog dosyalarına yazılır ve redolog buffer boşaltılır, yeni değişiklikleri yazmaya tekrar başlar. Redo loglar veritabanında base de bir recovery işleminde gerekli olan dosyalardır. Veritabanında önemli 3 dosyadan biridir.

Archive Log: Veritabanında yapılan değişiklikleri loglar. Archivelog mod’da olmayan bir veritabanında online olarak backup alınamamaz.Veritabanını kapatıp Cold backup almak zorunda kalırız.Bu da hizmet kesintisi dmektir.

SMON: System Monitor, görevi Oracle instance kurtarmaktır. Veritabanı beklenmedik bir şekilde kapandığında bu process, veritabanı açlırken online redo log dosyalarını kullanarak oracle instance açılmasını sağlar.

PMON: Process Monitor, başarısız veya birden sonlandırılan processlerin kullandığı kaynakların serbest kalıp sunumcuya iadesini sağlar. Oracle instance’ın listener ile iletişim kurmasını sağlar.

RECO: Recoverer Process, veritabanında çeşitli nedenlerden yarım kalan işlemleri tamamlanmasını sağlar.

DBWn: Database Writer, Datafile’lar ile Database Buffer Cache arasında çalışan bir processdir. Bu processin amacı eklenen,silinen veya degişiklik yapılan blokları database buffer cacheden alarak ilgili veri dosyalarına yazmaktır. Veriler üzerinde degişiklikler verilerin saklanmakta oldugu data file dosyalarına hemen işlenmezler. Gerçekleştirilen tüm degişikliklere ait değişim verileri (delta verisi) ilk olarak SGA içinde yer alan log buffer alanına ve ardından LGWR işlemiyle online redo log dosyalarına yazılır.Daha sonra DBWn degişmiş olan verileri data file dosyalarına kaydeder. DBWn en az erişilen ve en son erişilme zamanı üzerinden en fazla geçmiş olan blokları datafile dosyalarına yazmaya çalışır.Bunun sebebi de sık erişilip sık sık degiştirilen verileri her seferinde data file dosyalarına yazmayarak performans artırmaktır. DBWnprosesinin sonunda ki n harfi,birden çok Database Writer processe’in aynı anda çalışabilecegini gösterir. Proses isimleri n yerine 1-9 veya a-j arası karakterler gelir .(Örn.:DBW2,DBWb vb.)

LGWR: Log Writer Process, log buffer alanında bulunan verilerin disk üzerindeki redo log dosyalarına yazılmasından sorumludur.Redo log dosyasına yazılan veriler,veritabanında verinin kalıcı olmasını temin ettikleri için LGWR önemli bir prosesdir.

LGWR aşagıda ki durumlarda tetiklenir ve yazma işlemine başlar ;

  • COMMIT komutu çalıştırılır ise

  • Log buffer üçte bir oranında dolar ise

  • Her 3 saniyede bir

  • 1 megabayt redo kaydı olmus ise

  • DBWn datafile dosyalarına yazmaya başladıgı zaman

CKPT: Checkpoint Process, Instance arızası durumunda Instance kurtarma süresini azaltmak için yardımcı olur.Checkpoint olayı gerçekleştigi zaman DBW prosesi buffer cachedeki verileri datafile‘e yazar ve control file dosyasını günceller. Checkpoint olayı bir redolog geçişi sırasında tetiklenmekte ve çalışmaktadır.

ARCn: Archiver Process, Oracle Archive log modunda çalıştıgı zaman ,online redo log dosyalarının üzerine tekrar yazılmadan başka bir yere kopyalamasını yedeklemesini saglamaktadır.

Hakkında G. KELEŞ

Cevapla

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmelidir *

*

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.