Oracle DBA (DatabaseAdministrator-Veritabanı Yöneticisi)
denildiği zaman akla gelen; veritabanının günlük bakım ve yönetimini
gerçekleştiren, yazılım departmanıyla koordineli olarak veritabanı
şemaları, tabloları ve index gibi nesneler oluşturup bunlar üzerinde
değişiklikler gerçekleştiren kişidir.
ORACLE 11G YÖNETİCİSİ KİMDİR?
13.05.2014Emre AYTEN 2
3.
ORACLE 11G YÖNETİCİSİNİNGÖREVLERİ NELERDİR?
1- Veritabanı yazılımının kurulması ve güncellemeler.
2- Veritabanı oluşturulması.
3- Veritabanı başlatma/durdurma.
4- Kullanıcıları ekleme ve yetkilendirme.
5- Veritabanı performans ayarları.
13.05.2014Emre AYTEN 3
4.
Bir Oracle 11g veritabanı sunucusu çalışır durumdayken, sistem
belleğini (RAM) ve işlemcisini {CPU) kullanan bileşenlere sahiptir.
Oracle 11 g Database Server’ın çalışmasını sağlayan ve disklerde yer
alan veri dosyalarına (datafile) erişilmesini mümkün kılan bileşene
instance (çalışan örnek) adı verilmektedir.
Oracle 11 g veritabanında instance, RAM üzerinde belirli alanları
kullanım için ayırır, ayrıca çeşitli arka plan process’lerini (işlemler)
kullanarak veritabanın çalışmasını sağlar.
Oracle 11 g instance, veritabanı kapatıldığı zaman sistemden tamamen
silinen bileşenlerden oluşur. Kaydedilmiş olan verileri barındıran
datafile dosyaları ise disk üzerindedir ve kalıcıdır. Oracle 11 g
veritabanını kapatsanız bile bu dosyalar yerlerinde dururlar ve
veritabanını bir sonraki başlatmanızda yeniden kullanıma hazır olurlar.
Oracle 11 G Veritabanı Sunucusunun Çalışmasını Sağlayan Bileşenler
4
• RAM üzerindekiSystem Global Area (SGA) bellek yapısı
• RAM üzerindeki Program Global Area (PGA) bellek yapısı
• Çeşitli arka plan process’leri
ORACLE 11G BİLEŞENLERİ
13.05.2014Emre AYTEN 6
Oracle 11 gveritabanının sistem belleği (RAM) üzerindeki
Paylaşılan Bellek (Shared Memory) alanında kendisine ayırıp kullandığı
alanın genel adı, System Global Area (SGA) olarak adlandırılır. SGA
bileşenlerinin en önemlileri şu şekilde sıralanabilir:
• Veritabanı tamponu (buffer cache)
• Log tamponu (log buffer)
• Paylaşılan havuz (shared pool)
• Geniş havuz (large pool)
• Java havuzu (Java pool)
SYSTEM GLOBALAREA (SGA)BELLEK YAPISI
13.05.2014Emre AYTEN 8
9.
Çalışmakta olan birOracle 11 g veritabanında, adı geçen bu SGA bileşenlerini
görüntülemek isterseniz, şu sorguyu çalıştırabilirsiniz:
SELECT COMPONENT FROM V$ SGA_DYNAMIC_COMPONENTS;
13.05.2014Emre AYTEN 9
VERİTABANI TAMPONU (DATABASEBUFFER CACHE)
Kullanıcı oturumları, SQL komutlarını çalıştırarak tablolar
üzerinde INSERT, UPDATE, DELETE işlemleri yaptıkları zaman,
oluşan değişiklikler doğrudan verit abanı dosyalarına yazılmazlar.
Bunun yerine değişiklikler, ilk olarak veri tabanı tamponuna kaydedilir.
Benzer şekilde, bir SELECT sorgusuyla veri okunacağı zaman
user process (kullanıcı işlemi) ilgili satırlardaki verileri disk üzerinde
bulunan dosyalar içinde bulur ve onları veri tabanı tampon bölgesine
kopyalar. Böylece, bu verilere tekrar erişilmesi gerekirse, RAM’e
yerleşmiş oldukları için çok daha hızlı bir erişim gerçekleşir.
13.05.2014Emre AYTEN 11
12.
Sonuç olarak; isterDML komutlarıyla veri ekleme, silme veya
güncelleme yapılsın istersen SELECT cümleleri ile sorgular
gerçekleştirilsin tüm SQL sorgulan veri tabanı tamponundan geçerler.
VERİTABANI TAMPONU (DATABASE BUFFER CACHE)
13.05.2014Emre AYTEN 12
LGG TAMPONU (LOGBUFFER)
Log tamponu, çok sık aralıklarla verilerin giriş-çıkış yaptıkları
bir bellek alanıdır.
Bu alan yazılan veriler örneğin, bir tabloda değiştirilen bir
satırın tamamı değildir. Sadece değişim verisi (delta) log belleğine
yazılırlar.
LGWR process'i log tamponundaki verileri gerçek zamanlı
olarak disk üstündeki redo günlüklerine yazar ve bu işlem tamamlanana
kadar veritabanı askıda kalarak yeni DML işlemleri yapılmasına izin
vermez.
Tampon bellekte birden çok kullanıcı tarafından gerçekleştirilen
veri değişimine ait delta verisi olacağı ve hepsi bir kerede yazılacağı için
bu işlem uzun sürebilir. Bu sebeple, log tamponuna çok fazla RAM alanı
ayırmak doğru değildir.
13.05.2014Emre AYTEN 14
15.
SGA bellek yapısınınbir diğer bileşeni olan Paylaşılan
Havuz, kendi içinde alt bileşenlere ayrılmaktadır. Bu önemli
bileşenleri şu şekilde sıralayabiliriz:
• Kitaplık Tamponu (Library Cache)
• Veri Sözlük Tamponu (Data Dictionary Cache)
• PL/SQL Alanı
• SQL Sorgu Tamponu ve PL/SQL Fonksiyon Sonuç Tamponu
PAYLAŞILAN HAVUZ (SHARED POOL)
13.05.2014Emre AYTEN 15
16.
Yakın geçmişte çalıştırılanSQL kodlarının derlenmiş ve sonuç
vermeye hazır biçimde depolandığı bellek alanıdır.
Oracle veri tabanı da bir tabloya erişirken öncelikle bu tablonun
tanımına ihtiyaç duyar.
Bu şekilde, en son erişilen tablo, index, kullanıcı ve benzeri
nesnelerin tanımlarının depolanması için ayrılan bellek yapısına veri
sözlük tamponu adı verilmektedir.
KİTAPLIK TAMPONU
VERİ SÖZLÜK TAMPONU
13.05.2014Emre AYTEN 16
17.
Depolanmış prosedürler, Oracleveritabanının vazgeçilmez
parçalandır. Bir PL/SQL nesnesi, prosedür, fonksiyon, paketlenmiş
prosedür ve fonksiyonlardan oluşabilir.
En son çalıştırmanın PL/SQL nesneleri, ham halleriyle ve
derlenmiş halleriyle PL/SQL Alanı adı verilen bellek yapısında
depolanırlar.
Böylece fiziksel disk üzerinde yer alan Veri Sözlüğü’nden
(Data Dictionary) okunmak yerine, daha hızlı sonuç verecek
biçimde Veri Sözlük Tamponundan okunurlar.
PL/SQLAlanı
13.05.2014Emre AYTEN 17
18.
Çalıştırılan SQL sorgularınınsonuçlarının RAM üzerinde depolandığı
bellek yapısı SQL Sorgu Tamponu olarak adlandırılmaktadır. Eğer bir kullanıcı
tarafından çalıştırılan sorgunun aynısı, başka bir kullanıcı tarafından da
çalıştırılırsa bu tampondan okunarak daha hızlı biçimde kullanıcıya döndürülür.
Aynı durum, çalıştırılan PL/SQL fonksiyonları için de geçerlidir. En
son çalıştırılan PL/SQL fonksiyonlarının sonuçları PL/SQL Fonksiyon Sonuç
Tamponu’nda saklanırlar, böylece aynı PL/SQL fonksiyonu farklı kullanıcılar
tarafından da çalıştırılırsa tampondaki değerler döndürülecektir.
SQL SORGU TAMPONU VE PL/SQL FONKSİYON SONUÇ TAMPONU
13.05.2014Emre AYTEN 18
19.
Oracle Database Serverprocess’leri tarafından ihtiyaç duyulan RAM
bellek, geniş havuz alanı olarak ayrılan bölümde kullanılabilmektedir. Bu
process’ler örneğin RM AN (Recovery Manager-Kurtarma Yöneticisi)
olabileceği gibi, Oracle RAC (Real Application Clusters-Gerçek Uygulama
Kümeleri) ortamında çalışan paralel işlemler de olabilirler.
Eğer geniş havuz belleğine sistem RAM belleğinden belirli bir miktar
alan ayırmazsanız, bahsedilen bu process’ler paylaşılan havuz alanını
kullanacaklardır.
GENİŞ HAVUZ (LARGE POOL)
13.05.2014Emre AYTEN 19
20.
Veritabanında saklanmış bulunanJava tabanlı prosedürlerine
sahipseniz, bu prosedürler Java havuzu alanındaki belleği kullanırlar.
Fakat burada bir yanlış anlaşılma olmasın, Java prosedürleri Java
havuzunda ayrılan belleği kullanarak çalışmazlar.
Java havuzu, sadece Java prosedürler başlatılırken tanımlama
bilgilerinin yüklenmesi için kullanılmaktadır.
JAVA HAVUZU (JAVA POOL)
13.05.2014Emre AYTEN 20
21.
Oracle 11 gveritabanına bağlanan her bir kullanıcının çalıştırdığı
SQL komutlarının sonuçlan, sistem RAM’i üzerinde paylaşılmayan bir
bölge olan private area (özel alan) içinde saklanırlar.
Oracle veritabanının bu bölgede kullandığı alan ise PGA
(Program Global Area) olarak adlandırılmaktadır.
Program Global Area (PGA) BELLEK YAPISI
13.05.2014Emre AYTEN 21
22.
Çalışmakta olan Oracle11 g veritabanının geçerli PGA yapısını görüntülemek
için şu sorguyu kullanabilirsiniz:
SELECT * FROM V$PGASTAT
ORDER BY VALUE;
Program Global Area (PGA) BELLEK YAPISI
22