Anasayfa » ORACLE Veri Tabanı Mimarisi ve Temel Kavramlar
ORACLE Veri Tabanı Mimarisi ve Temel Kavramlar

Oracle Instance: Oracle veri tabanı sunucusunun çalışmasını ve fiziksel disklerdeki veri dosyalarına erişimi sağlayan yapıya INSTANCE denir. INSTANCE, System Global Area(SGA) ve çeşitli Background Process’lerinden(DBWn,LGWR,CKPT vb.) oluşur.
Sistem Global Alanı(System Global Area-SGA): SGA, Oracle INSTANCE’ın önemli bileşenlerinden biridir ve veri tabanına bağlanan tüm oturumların ortak kullandığı alandır. Bu yüzden paylaşımlı bellek alanı olarak da bilinir. Her veri tabanının kendine ait bir Sistem Global Alanı vardır. SGA, DB Buffer Cache, Redo Log Buffer, Library Cache, Data Dictionary Cache, Shared Pool, Java Pool vb. birçok bileşen içermektedir.
Database Buffer Cache: Veri tabanı kullanıcıları tarafından sık okunan veri bloklarının bulunduğu tampon belleğidir. Sorgulanan veri fiziksel disk alanındaki veri dosyalarından önce Database Buffer Cache kısmında aranır. Sorgulanan veri daha önce başka bir kullanıcı tarafından aranmışsa, veri bu tampon alanından kullanıcıya iletilir. Böylece fiziksel disklere gidilmeden veriye ulaşıldığı için sonuçlara daha hızlı erişim sağlanır. Ayrıca, kullanıcıların yapmış olduğu DML işlemleri fiziksel disklerdeki veri dosyalarına yazılmadan önce Database Buffer Cache’e yazılır. Değişen bu verilerin kullanılabilmesi için Checkpoint ile işaretlenmesi gerekir. Checkpoint ile işaretlenen bu veri blokları DBWn arka plan işlemiyle fiziksel alandaki veri dosyalarına yazılır.
Redo Log Buffer: Veri tabanında çalıştırılan DML(insert, update, delete) ve DDL(create, alter vb.) işlemlerinin kaydını tutar. LGWR arka plan işlemiyle bu kayıtlar ardışık şekilde Online Redo Log dosyalarına yazılır.
Shared Pool: Veri tabanında daha önceden çalıştırılmış olan sorguların çalışma planlarının(execution plan) tutulduğu alandır.
Library Cache: Daha önceden çalıştırılmış unique(benzersiz) SQL kodlarının tutulduğu alandır. Veri tabanında bir sorgu çalıştırıldığında, bu sorgunun daha önceden çalıştırılıp çalıştırılmadığına bu alanı kontrol ederek karar verir. Eğer sorgu daha önceden çalıştırılmışsa bu sorgu kullanılır. Çalıştırılmamışsa, sorgu parse edilir ve burada kaydedilir.
Data Dictionary Cache: Veri tabanında yer alan nesnelerin bilgisinin tutulduğu alandır. Örneğin bir tablonun; kolonları, adı, oluşturulma zamanı vb. bilgilerin tamamı burada saklanır.
ORACLE INSTANCE’ın ikinci temel bileşeni Arka Plan İşlemleridir(Background Process). Bunlar temel olarak, DBWn, LGWR, CKPT, ARCn,SMON, PMON, RECO şeklinde sayılabilir.
DBWn(Database Writer Process): Veri tabanı yazıcı işlemi, DML cümlecikleri ile değiştirilen veri bloklarını Database Buffer Cache’ten alarak veri dosyalarına yazar. Aynı zamanda bir veriye erişmek istendiğinde, veri tampon bellekte yer almıyorsa veriyi fiziksel diskteki veri dosyalarından tampon belleğe taşıma işlemini gerçekleştirir.
LGWR(Log Writer Process): Redo Log Buffer’ın veri tabanında gerçekleşen her DML ve DDL işleminin kaydını tuttuğunu daha önce belirtmiştik. LGWR, Redo Log tampon alanındaki verileri Online Redo Log dosyalarına taşıyan bir arka plan işlemidir. Ancak verilerin Online Redo Log dosyalarına yazılması için birkaç temel durumdan herhangi birinin gerçekleşmesi gerekmektedir. Bu işlemler aşağıdaki gibidir.
- Her 3 saniyede bir
- Redo Log Buffer’ın 1/3’ü dolduğunda
- Her commit işlemi gerçekleştiğinde
- 1 MB redo kaydı oluştuğunda
- Redo Log dosyalarının birinden diğerine geçtiğinde
CKPT(Checkpoint Process): Veri tabanı tutarsız bir şekilde kapandığında, SMON işlemi, redo log dosyalarını kullanarak veri tabanını kurtarma işlemini gerçekleştirir. Yapılan bu işlem veri tabanı açılış süresini etkileyeceğinden CKPT işlemi bu süreyi minimuma indirgemekle görevlidir.
ARC(n)(Archive Process): Arşiv modun açık olması halinde çalışan bir işlemdir. Online redo log dosyalarından biri dolup diğer redo log dosyasına geçtiğinde(switch işlemi) dolan redo log dosyasının yedeğini alır.
SMON(System Monitor): Veri tabanı tutarsız kapandığında(örneğin shutdown abort) Oracle Instance’ı kurtarmakla görevlidir. Bu işlemi veri tabanı başlatılırken nomount adımında online redo log dosyalarını kullanarak gerçekleştirir. Bununla beraber geçici segmentleri temizlemekle de görevlidir.
PMON(Process Monitor): Ani bir şekilde sonlandırılan kullanıcı işlemlerinin(user process) kurtarma görevini üstlenir. Aynı zamanda başarısız olan kullanıcı işlemlerinin kullandığı kaynakları işletim sistemine geri kazandırma işlemini gerçekleştirir.
RECO(Recoverer Process): Dağıtılmış veri tabanı işlemlerini ve tamamlanmayan işlemleri, uzaktaki veri tabanına bağlanarak tamamlamaya çalışır.
Program Global Alanı(Program Global Area-PGA): Sunucu ve arka plan işlemlerinin bilgisini tutar. Sistem Global Alanı’ndan farklı olarak paylaşılmamış bellek alanıdır. Bir sunucu veya arka plan işlemi başlatıldığı zaman PGA bellek alanı ayrılır. İşlem bittikten sonra bu alan serbest bırakılır.