Oracle Veritabanı Mimarisi (Database Architecture) II

watch_later 2/08/2016
comment 2 Comments
Daemon /Application Process: İkiye ayrılır. Bunlar:

Network Listeners
Uzaktan gelen bağlantıları yetki kontrolü yaparak dinleyecek olan bağlantıları dinler ve I/O'ya izin verir.

Grid Infrastructure Daemons
Grid olmayan yapılarda veritabanı yeniden başlatıldığında ya da kapatılıp açıldığında ASM, Listener gibi servisleri manuel olarak başlatmak gerekirdi. Grid yapısı kurulu olan veritabanlarında bu servisler yüksek güvenirlik servisi tarafından otomatik olarak başlatılmaktadır.

Oracle Veritabanı Depolama Yapısı
Veritabanı kapatıldığında SGA ve PGA alanları disklere kaydedilir. Oracle diskler üzerinde de bu SGA ve PGA verilerini ilgili dosyalara yazar.



Oracle Veritabanı Depolama Yapısı Simülasyonu
Oracle veritabanı mantıksal ve fiziksel olmak üzere iki yapıdan oluşur.

Veritabanının Mantıksal Yapısı
Oracle veritabanı yönetilebilmesini kolaylaştırmak amacıyla mantıksal olarak daha küçük parçalara ayrılmıştır ve her parça bir sonraki parçayı oluşturur. Mantıksal yapıda bulunan parçalar, tablespace, segment, extent ve bloklardan ve şemalardan oluşmaktadır. Bloklar extentleri, extentler segmentleri ve segmentler tablespaceleri oluşturmaktadır.

1. Tablespace
Tablespace için mantıksal yapıların tamamını gruplandıran mantıksal bir depolama alanıdır. Tablespace segment'lerin birleşmesiyle oluşur. Oracle veritabanı içerisinde nesneler bulunan en az iki adet tablespace bulunmaktadır. Tablespaceler açık ya da kapalı olabilir. Kapalı olduğunda içerisindeki bilgilere erişilmemektedir. Bütün tablespace'ler ayrıca en az bir datafile’a sahiptir. Fiziksel olarak data file, mantıksal olarak tablespace ismini almaktadır. Buna göre datafile’ların toplam boyutu tablespace’in boyutunu, tablespace’erin boyutu ise veritabanının toplam boyutunu verir.
Oracle’da bulunan 2 adet tablespace vardır. Bunlar: system ve sysaux’dur. System tablespace’sinde data dictionary verileri bulunmaktadır.

2. Şema (Schema) Nesneleri
İçerisinde tablolar, viewlar, indeksler ve kümeler bulunmaktadır. Kullanıcı tarafından kullanılır ve kullanıcı adını alır. HR kullanıcısının şeması HR’dır. Doğrudan veri ile bağlantılıdır. Ancak şema ile tablespace arasında bir bağlantı yoktur. Aynı tablespace içerisinde birden fazla şemaya ait veri olabileceği gibi, aynı şemadaki nesneler farklı tablespace’de de olabilir. Tablo, view, saklı yordam, fonksiyon, paket, tetikleyici, indeks vb. gibi mantıksal veritabanı nesnelerinin tutulduğu, yani veritabanına ait bir yapıdır.

Table (Tablo): En temel veri saklama yeridir. Kullanıcılar tarafından oluşturulan tüm veriyi barındırırlar.
View: Bir tabloya erişimi kolaylaştırmak için kullanılırlar. İçerisinde veri bulunmaz.
Index (İndeks): Verilere erişim performansını arttırmak için kullanılırlar. Tablolara direkt erişimi sağlamak için kullanılırlar. İndeksler bir veya daha çok tablo ve sütun üzerinde oluşturulabilir.
Cluster (Kümeler): Fiziksel olarak birlikte saklanan bir veya birden fazla tablonun oluşturduğu gruba verilen isimdir. Bu tablolar ortak kolonlar içerebilir ve genelde birlikte kullanılırlar. Birbiriyle ilişkili satırlar fiziksel olarak bir arada saklandığı için veriye erişimde performans sağlar.

3. Data Blocks
Oracle veritabanının verileri veri bloklarında saklanır. Bir veri bloğu en az 8 KB boyutunda olmaktadır, en fazla ise 64 MB boyutunda olmaktadır. Oluşturulan tablespace için veri blok sayısı belirlenebilir. Veritabanı veri bloklarını  kullanabilir.

4. Extent
Extentler birbirlerini takip eden veri bloklarından meydana gelir. En düşük boyutu 64 KB’dir.

5. Segment
Segmentlerde birbirlerini takip eden extentlerden oluşur. Bir segment: veri segmenti, indeks segmenti, undo segmenti yada temporary segmenti olabilir.

Veri (Data) Segmenti: Bir tablo oluşturulduğu anda daha veri girmeden alanı ayrılan yapıdır. Tabloya veri girildiğinde otomatik olarak extendler bu veri segment için ayrılır.
İndeks (Index) Segmenti: Her bir indeksin verisi için oluşturulur.
Geçici (Temporary) Segmenti: Bir SQL çalıştırıldığında gerek duyulursa Oracle tarafından kullanılır. İşlem bittiğinde bu alan sistemin kullanımı için kullanılır.
Geri Alma (Rollback) Segmenti: Rollback işlemlerinde kullanılır.

Aşağıdaki yapıda bloklar extent'leri, extentler ise segment'leri oluşturur.

Oracle Tablespace Hiyerarşisi
Veritabanının Fiziksel Yapısı
Fiziksel disk üzerinde bulunan ve işletim sistemi içerisinde bulunan dosyalardır. Birden fazla data file, birden fazla log file ve birden fazla control file’dan oluşabilir.


Oracle Veritabanı Fiziksel Yapısı
1. Kontrol Dosyaları (Control Files)
Kontrol dosyaları içerisinde Online Redo Log dosyalarının, Data File’ların ve Archive Log dosyalarının nerede tutulduğunun bilgisi ve Checkpoint işlemlerine ait bilgiler bulunur. RMAN ile yedek alınmışsa, yedekleme bilgileri bu dosyalar içerinde bulunur. Ayrıca güncel SCN (System Change Number)’de kontrol dosyaları içerisinde bulunmaktadır. Veritabanı ismi, archivelog modda çalışıyorsa archivelog dosyalarının bilgisi gibi bütün fiziksel yapıya ait bilgiler kontrol dosyalarında bulunmaktadır. Veritabanı açık haldeyken kontrol dosyaları kopyalanamaz. Eğer kontrol dosyaları herhangi bir sebepten dolayı bozulur ya da silinirse, veritabanı kapanır ve çalışmaz hale gelir. Farklı bir yazılımla da yedekleme yapılabilir ancak bütün yedekleme yazılımları arka planda RMAN kullanmak zorundadırlar. Kontrol dosyaları binary yapıdadır ve üzerinde değişiklik yapılamaz.

Veritabanında eğer FRA oluşturulmuşsa 2 tane control file bulunur. Biri +DATA diğeri +FRA içerisindedir. Eğer +DATA içerisindeki control file dosyasını kaybedersek +FRA'da olmasına rağmen veritabanı çalışmayacaktır. Böyle bir durum olduğunda SP file içerisinden +DATA'ya ait bilgi silinir ya da +FRA'daki control file diğeriyle birebir aynı olduğunda +DATA dizin altına kopyalayarak eklenebilir. 
Control File 3 dosyadan oluşur. Varsayılan olarak konumu %ORACLE_HOME%\oradata dizininde bulunur. 

2. Veri Dosyaları (Data Files)
Kullanıcıya ve uygulamalara ait verilerin tutulduğu dosyalardır. System, undo, sysaux datafile’ları kurulumla birlikte gelir. Ayrıca temp datafile ve users datafile’da kurulumla beraber gelmektedir.
Sysaux: Enterprise Manager bu dosya ile çalışır. Enterprise Manager AVR raporları burada saklanır. Enterprise manager repository’nin tutulduğu yer bu tablespace’dir.
System: Bu tablespace içerisinde Data Dictionary bulunmaktadır.
Temp: Geçici olarak oluşturulan tablolar burada bulunur. ‘create temporary table’ komutuyla bir tablo oluşturduktan sonra ilk COMMIT ya da ROLLBACK işlemi yapıldığında oluşturulan bu tablo silinecektir. Raporlama ağırlıklı sistemlerde analizler gerçekleştirirken veri düzenli bir şekilde gelmelidir.  Alanın yetmediği durumlarda o düzenleme işlemini temp üzerinde yapılır.
Undo: Yapılan UPDATE, DELETE, INSERT vb. işlemleri ile yapılan işlemlerin değişiklik öncesindeki halleri burada tutulur.
Users: Kurulumla birlikte gelir ve varsayılan tablespace olarak atanır.
Fiziksel ve mantıksal alanlar arasında kesin bir ayrım yapar.
Mantıksal Alanlar: Mantıksal alanlar tablo, indeks, view, synonym, PL/SQL prosedürü gibi veri tabanı nesneleri mantıksal alan içerisinde yer alır ve diğer ismi segment’tir.
Fiziksel Alanlar: İşletim sistemi dosyalarının ve Oracle dosyalarının bulunduğu alanlar yani disklerdir.
Mantıksal nesnelerle, disklerdeki dosyaları ortak bir noktada buluşturmak için tablespace yapısı kullanılır. Her tablespace disk üzerinde en az bir data file ile temsil edilir.

Enterprise Manager Tablo Sayfası
Schema: Kullanıcı tarafından kullanılır ve kullanıcı adını alır.
Tablespace: Segmentlerin sahip olduğu tablespace adını gösterir.

Datafile’lar ONLINE durumunda olmalıdır. Eğer ‘status’ kısmında RECOVER yazarsa, o datafile’ın recovery işlemi yapılacaktır. Ayrıca SYSTEM tablespace’i tarafından kullanılan bütün datafile’lerin ‘status’ sütununda SYSTEM yazısını görürüz. ENABLE sütunu bize salt okunur ya da R/W iznine sahip olup olmadığını gösterir. Eğer yedekleme işlemini RMAN ile yapılmayacaksa datafile’ları tek tek yedeklenebilir ancak yedekleme işlemi yaparken datafile’ın bulunduğu ‘tablespace’ nesnesinin durumunu OFFLINE yapılması gereklidir.

3. Online Redo Log Files
Instance recovery dosyalarının tutulduğu dosyalardır. Eğer veritabannda bir sorun oluşursa, instance veritabanı Online Redo Log File’den recovery yapabilir. FRA kurulu bir sistemde toplamda 6 tane dosya vardır. Bunların 3 tanesi redo log grubu olur.

Veritabanı üzerindeki tablolarda UPDATE, INSERT, DELETE vb. işlemlerle değişiklikler yapılabilir. Ancak veritabanı bu işlemlerin hepsini RAM üzerinde Log Buffer alanına yazılır yani disklere hemen yazılmaz. Ancak kullanıcı UPDATE işlemi yaptığı an Online Redo Log File’a yazılır. Kullanıcı eğer işlemini yaparken COMMIT yapmış ise bu işlem gerçek zamanlı yapılır. SGA’nın Log Buffer alanındaki tüm veriler Online Redo Log File’a yazılır. Online Redo Log File’ler veritabanı çalışır durumdayken kopyalayarak yedeklenemezler. Ancak arşivlenerek, arşivlenmiş Online Redo Log File’ı kopyalayarak yedeklenebilir. Redo Log dosyalarından biri veya birkaçında sorun olsa bile control file dosyasından farklı olarak veritabanı çalışmasına devam eder. Veritabanının çalışmasını durdurması için tüm dosyalarda sorun olması gerekir. Dosyaların ‘status’ sütunundan kullanımda olup olmadığını öğrenilebilir. Eğer durumu CURRENT ise LGWR işleminin dosyaya yazmakta olduğunu anlaşılır. Durumu ACTIVE ise LGWR işlemi yazmayı bitirmiş ancak veritabanının kurtarılması gerektiği an o dosyaya ihtiyaç olduğunu bize bildirir. Durumu INACTIVE ise LGWR işlemi tarafından kullanılıyor olduğu anlaşılmaktadır. GROUP sütunu bize dosyanın ait olduğu grup numarasını bildirir. BYTES ise disk üzerinde ne kadar alan kapladığını bildirir. ARCHIVED sütununda 'YES' yazıyorsa arşivlenmiş durumda olduğu anlaşılır.

4. Parameter File: Oracle instance yapılandırma bilgileri burada tutulur. Ayrıca içerisinde bütün dosyaların ve control file’ın bilgileri vardır. “SPFILE” ve “PFILE” dosya adıdır.

5. Password File: Veritabanını bağlanmak istediğimizde SYSDBA, SYS gibi kullanıcıların şifresinin doğruluğu bu dosyadan kontrol edilir ve erişim onaylanır. Diğer kullanıcıların bilgileri data dictionary içerisinde şifrelenmiş olarak saklanır.

6. Backup File: Veritabanını recovery yapmak için kullanılan alandır. Data file’ların birebir kopyalarını içerir.

7. Archived Redo Log Files: Online Redo Log File’larının birebir yedeğidir. Bir redo log dosyası dolduğu an başka bir dizine yedeği alınır.

8. Trace and Alert Files: Sunucu ve arkaplan işlemlerinin kayıtlarının tutulduğu, hataların yazıldığı dosyalardır. Bu dosya ile işlemler izlenebilir, oturumlar görülebilir.





Bir sonraki yazımda görüşmek üzere...
avatar
Adsız

Çok güzel ve faydalı bir paylaşım olmuş yalın bir anlatımınız var, emeğinize sağık devamını en kısa zamanda bekliyoruz bekliyoruz

delete 17 Şubat 2017 09:57
avatar

Değerli yorumunuz için ve takip ettiğiniz teşekkürler, devam ettirmeye çalışacağım.

delete 21 Şubat 2017 11:48



sentiment_satisfied Emoticon