Haziran 15, 2010

Oracle 10g Mimarisi

Konuya giriş yapmadan önce kısaca VTYS(Veritabanı Yönetim Sistemi) değineyim.
VTYS büyük verilerin toplanması ve yönetilmesi için geliştirilmiş bir yazılımdır.Veri bağımsızlığı,veri bütünlüğü,veri güvenliği,veri yönetimi,verilere erişim,arıza giderme,uygulama geliştirme süresinin azalması..v.b. konularında uygulama geliştirenlere kolaylık sağlar.

Oracle  ilişkisel bir veritabanıdır.(Veritabanı modelleri:İlişkisel Model,Ağ Modeli,Hiyerarşik Model) İlişkisel veritabanı kavramı 1970'te IBM tarafından tanımlanmıştır.80'li  yılların başlarında Oracle  kullanılmaya başlanmıştır.80'li yıllarda 30 farklı platformda çalışan Oracle,günümüzde 70'ten fazla platformda çalışmaktadır.


Oracle 10g Mimarisi

 

Oracle'ı tam anlamıyla anlamak için işlerin arkasında yatan mimariyi ve işleyen mekanizmayı anlamak gerekir.I/O işlemlerini,bellek yapısını,arkaplandaki işlemleri öğrenmek Oracle'ı daha kolay yönetebilmemize büyük katkı sağlar.
Mimariyi iki temel açıdan ele alabiliriz;

Instance:Bellek yapısı ve arkaplan işlemleri
Veritabanı:Veri saklamak için kullanılan dosyalar (datafiles,control files)

Veritabanı için en az bir tane Instance bulunmalıdır.Aynı veritabanına birden fazla Instance ile erişilebilir(RAC).

Veritabanı Mantıksal ve Fiziksel olarak ikiye ayrılır.
Mantıksal yapı;tablolar,indexler,görüntüler v.b.
Fiziksel yapı ise işletim sistemi dosyalarını ifade eder.
Oracle mantıksal ve fiziksel yapıyı birbirinden ayrı olarak yönetir.

Mantıksal Yapı

  • Tabloaralığı
  • Segment (Veri, İndeks, Geçici, Gerialma segmenti.)
  • Extent
  • Blok
Bloklar extentleri,extentler segmentleri,segmentler tabloaralığını oluşturur.Blok büyüklüğü Oracle init.ora parametre dosyasındaki DB_BLOCK_SIZE değerine bağlıdır.Bu değer veritabanı oluşturulduktan sonra değiştiriliemez.Oracle'da okuma yazma blok bazında gerçekleştirilir.Segment tabloları,indeksleri v.b. oluşturan mantıksal yapıdır.Tabloaralığı en üst seviyedeki mantıksal yapıdır.

Fiziksel Yapı

 

Fiziksel yapı oracle bellek yapısı ve 3 çeşit işletim sistemi dosyasından oluşur.
  • Veri Dosyaları (Tüm verilerin saklandığı dosyadır. Bir VT'de en az bir tane olmalıdır.Her bir veri dosyası sadece bir tabloaralığı ile ilişkilendirilebilir.)
  • Redo Log Dosyaları (Verilere yapılan değişikliklerin kaydedildiği dosyalardır. Veritabanında en az iki adet Redo Log dosyası olmak zorundadır. Kritik bir öneme sahiptir.)
  • Kontrol Dosyaları (Her oracle Veritabanında en az bir tane vardır.Fiziksel yapı ile ilgili bilgiler tutulur.VT ismi,VT oluşturulduğu tarih,redo log isimleri,datafile isimleri v.b.)

Oracle Bellek Yapısı

Bellek yapısını VT'den çekilen verileri, veri sözlüğü bilgilerini v.b. tutmak için kullanılır.Sık kullanılan verilerin bellekte yer tutulması onlara erişimi çok hızlandırır.Sıklıkla kullanılan SQL ve PL/SQL kodları da bellekte tutulur.Bellek yapısı oracle çalıştırıldığı zaman ilgili makinenin belleğinden alınır,oracle başka  programların bu bellek yapısı için ayrılan alanı kullanmasına izin vermez.Bellek yapısı iki parçadan oluşur;

 i - Sistem Global Alanı (SGA - Paylaşılmış Bellek Alanı)
ii - Program Global Alanı(PGA - Paylaşılmamış)

I - SGA
Tüm kullanıcılar bu ortak belleği kullanır.Oracle arkaplan prosesleri ve SGA Oracle Instance olarak adlandırılır.Instance çalıştırıldığında makinenin belleğinden init.ora dosyasında tanımlanan değerler kadar bellek SGA olarak ayrılır.Instance kapatılana kadar bu bellek tutulur.Toplam SGA büyüklüğü init.ora SGA_MAX_SIZE değerinden fazla olamaz.
SGA'yı oluşturan yapılar;
Shared Pool(SQL cümleleri burda saklanır), VT Ön Arabelleği(En çok kullanılan veriler burda), Redo Log Ön Arabelleği(İşlem hareketleri ile ilgili geri alma kayıtları),Java Pool(En çok kullanılan java nesneleri),Large Pool(Büyük işlemler için kullanılan bellek),Streams Pool(Advance Queuing seçeneği kullanılırsa mesaj istekleri ile ilgili veriler tutulur)

II - PGA
Burada bir işlemle ilgili veri ve işlem bilgisi tutulur.Bellek bir işlem başladığı zaman alınır,işlem bittiğinde bırakılır.PGA sunucu prosesi için aşağıdaki bölümlerden oluşur;
  • Sıralama Alanı
  • Oturum Bilgisi
  • Yığın alanı
  • Cursor Bilgisi
Yazının sonuna geldik ancak konumuz henüz bitmedi. Bu konuların sıkıcı olduğunun farkındayım.Ancak Oracle'ı daha iyi anlamak ve yönetebilmek için bu konuların iyi anlaşılması gerektiğini düşünüyorum.Bir sonraki gönderim Oracle Arkaplan Prosesleri hakkında olacak. Görüşmek üzere.

Hiç yorum yok:

Yorum Gönder

System.Text.Json.JsonException hatası - cycle or if the object depth is larger than the maximum allowed depth of 32.

 Eğer .net'te aşağıdaki hatayı alıyorsanız; " A possible object cycle was detected which is not supported. This can either be due t...