Database and Database Instance
1.1 Database: Disk
üzerine konumlandırılan dosyalar
kümesidir. Veriyi depolar. Disk üzerindeki dosyalar, bir database
instance’ından bağımsız olarak oluşurlar.
1.2 Database Instance:Veritabanı dosyalarını yöneten bellek yapıları(SGA, PGA) kümesidir. Instance’lar SGA olarak adlandırılan paylaşılmış bellek alanlarından ve background process’lerden oluşurlar. Bir Instance, veritabanı dosyalarından bağımsız olarak oluşabilir. Database instance start edildiğinde SGA olarak adlandırılan bir bellek alanı ayırır. Bir user database instance üzerinden database'e erişebilir.
Database Instance aşağıda belirlilen birbirinden ayrı 2 yapıda yapılandırılabilir.
- Single Instance Configuration:
Database ve database instance arasında bire bir ilişkiyi ifade eder.
- Oracle Real Application Cluster
Database ve database instance arasında bire n ilişkiyi ifade eder.
SGA(System Global Area): Bir Oracle Instance'a atanan paylaşılmış bellek alanı grubudur. Tüm oracle process'leri bilgileri tutmak için SGA'yı kullanır. SGA, database'den gelen verileri ve database'in ihtiyaç duyulan internal kontrol bilgilerini depolamak için kullanılır. SGA'da bulunan veriler tüm database kullanıcılarının paylaşımına açıktır. Bazı oracle initialization parametreleri(db_cache_size, shared_pool_size,log_buffer) ayarlanarak SGA'ya ayrılacak(allocated) bellek miktarı kontrol edilebilir.
- Disk'ten okunan data block'larını cache'ler.
- Sql Execution Plan'larını depolar.
- Redo data'larını, online redo log file'lara yazmadan önce ara belleğe alır.
- Aynı anda bir çok process ve threat'ler tarafından erişilen internal verileri maintain eder.
SGA Üzerinde Bulunan Componentler
- Database Buffer Cache(Buffer Cache):Sql işlemlerini gerçekleştirmek için data file'lardan okunan data ve index block'larının copy'lerini depolayan bellek alanlarıdır. Böylece data'lara daha hızlı erişim sağlanır. Buffer cache'deki bir block aşağıda belirtilen 3 durumdan biri olabilir.
Free Block:Şuanda hiç bir durum için kullanılmayan block
Pinned Block:Şuanda erişilen block
Dirty Block:Değiştirilmiş ama henüz disk'e yazılmayan block
- Redo Log Buffer:Instance'ın database'de yaptığı değişikliklerin kaydedildiği alandır. Gerektiğinde recovery işlemlerinde kullanılmak üzere bu bilgiler belirli aralıkta background process olan LGWR tarafından disk üzerindeki online redo log file'lara aktarılır.
- Shared Pool:SGA üzerinde, database buffer cache'ten sonra en önemli componenttir. Shared Pool, library cache, dictionary cache ve result cache'i içerir
Dictionary cache:En son kullanılan veri tanımlamaları depolamak için kullanılır. Bu veri tanımlamaları, database files, table, index,priviliges, users hakkında verileri içerir. Bellekte bu bilgiyi cache'lemek özellikle query ve update için performansı artırır.
Result cache:Sql sorgu sonuçlarını ve plsql sorgu sonuçlarını cache'ler.
- Large Pool:Backup/Recovery işlemleri ve I/O işlemleri gibi bazı büyük işlemler için büyük miktarda bellek tahsisi gerektiğinde kullanılan bellek alanıdır.
- Java Pool:Java Sanal Makines(JVM) tarafında kullanılan tüm oturum-bazlı java kodu verisini saklar.
- Stream Pool:Capture ve apply işlemleri için gerekli olan bilgileri saklamak için oracle stream tarafından kullanılır.
Database Instance'nına her bir kullanıcı bağlantısı için client process uygulama çalıştırır. Her bir client process kendi server process'i ile ilişkilidir. Server process, Program Global Area(PGA) olarak bilinen kendine özel bir session memory'e sahiptir.
Program Global Area(PGA): Bellekteki server process için veri ve kontrol bilgilerini içeren bellek alanıdır.
PGA aşağıdaki bilgileri içerir.
Sort Area: Sql process ile gerekli herhangi bir sort için kullanılır.
Session Information: Kullanıcı yetkilerini içerir.
Curse State: Sql process aşamasını belirtir.
Stack Space:Session variable'larını içerir.
0 yorum:
Yorum Gönder