Konuyu Oyla:
  • Toplam: 2 Oy - Ortalama: 5
  • 1
  • 2
  • 3
  • 4
  • 5
Oracle Nedir ? Oracle Veritabanı Hakkında Bilgilendirme
#1
oracle Veri Tabanı 

oracle veri tabanının fiziksel veri tabanı mantıksal olmak üzere iki bölümü vardır. Kontrol dosyaları ( control files) , veri dosyaları (data files) , redo log dosyaları (redo log files) veri tabanı init.ora parametre dosyası fiziksel bölümü oluşturur. Mantıksal bölümü ise tablo boşlukları, tablolar, indeksler, program parçaları , görüntüler, kullanıcılar vs. oluşturur. 
Fiziksel Olarak oracle Veri tabanı 

Fiziksel olarak bir veri tabanı ; veri dosyaları, kontrol dosyaları veri tabanı redo log dosyalarından oluşmaktadır. 

Kontrol Dosyaları

Veri tabanının durumunu veri tabanı fiziksel yapısını tutan dosyalardır. Veri tabanı açılırken , kontrol dosyasını okuyarak , fiziksel olarak tüm veri dosyalarını , redo log dosyalarını kontrol eder. Eğer bu dosyalarda bir uyumsuzluk söz konusu ise veya kontrol dosyası bozulmuş ise veri tabanı açılmaz . 
Bu nedenle kontrol dosyaları çok önemlidir veri tabanı en az iki kopya olarak ve iki farklı disk üzerine yaratılmalıdır. Kontrol dosyalarının isimleri “init.ora” parametre dosyasında “control_files” parametresinde verilmektedir. 

Veri Dosyaları 

Veritabanındaki tablolar, indeksler gibi tüm mantıksal yapıların , fiziksel olarak saklandığı dosyalardır. Bir veri tabanının performanslı çalışabilmesi fiziksel olarak ayrı disklere yerleştirilecek minimum 5 veri dosyası olmalıdır. Bunlar:

1. oracle’ın arka plandaki işlemleri için kullandığı sistem dosyası,
2. Sadece tablo kayıtlarının tutulduğu indeks dosyası,
3. Tabloların indekslerinin tutulduğu indeks dosyası ,
4. Sıralama işlemleri için veri tabanının geçici olarak kullanıldığı “temporary” dosyası,
5. Geri alma işlemlerinin tutulduğu “rollback” dosyası 

Eğer bu dosyalar fiziksel olarak ayrı disk üzerinde tutulmaz ise paralel , okuma veri tabanı yazma yapılamayacağı için performansı negatif olarak etkiler. Veri tabanı çok büyükse , veri ve indeksler birden fazla veri dosyasında tutulabilir. Bazı işletim sistemlerinde , yaratılan veri dosyalarının boyu ile ilgili kısıtlamalar vardır. Örneğin Sun Solaris işletim sisteminde 2GB ‘dan daha büyük dosya yaratılamaz. Bu durumda datalarımız 9 GB’lık yer kaplıyor ise en az 5 tane veri dosyası yaratmamız gerekir. Yaratılabilecek maksimum veri dosyası sayısı “init.ora” parametresindeki “db_files” parametresi ile verilmelidir. 

Redo Log Dosyaları

Veritabanındaki tüm “commit” olmuş değişikliklerin , kurtarma yapılırken kullanılmak üzere kaydedildiği dosyalardır. En az iki redo log grubu tanımlanır. Bu dosyaların boyu ve grup sayısı veri tabanı yaratılırken sisteme tanımlanır. Sonradan bu tanımlar değiştirilebilmektedir. Redo log dosyalarının boyu , ideal olarak yarım saatte bir değişecek (swich) şeklinde ayarlanmalıdır. Redo log dosyalarının çok küçük olması , sistemde beklemelere neden olur. Çok büyük olmasa da veri tabanı açılırken yapılan otomatik kurtarma işleminin çok uzun sürmesine yol açar ve aktif redo log dosyalarının silinmesi yada bozulması durumunda da daha fazla veri kaybı olmasına neden olur. Redo log dosyalarının boyunun iyi ayarlanamaması oracle’ın dezavantajlarına bir örnek oluşturmaktadır. 
Sistemin güvenliği açısından her gruptaki redo log’u iki kopya olarak veri tabanı farklı disketlerde yaratmak gerekir. Redo log’lar kesinlikle raid disk üzerine konulmamalıdır. Çünkü redo log dosyaları üzerine sürekli yazma yapılmaktadır ve raid diskler yazma işleminin yavaşlatır. 
Redo log dosyaları bir döngü içersindedir. Bir gruptaki redo log dolduğunda otomatik olarak diğer gruba geçer ve işlem bu şekilde devam eder. 
Eğer veri tabanı arşiv modda ise bu dolan redo log dosyasının bir kopyası arşiv.log olarak kopyalanır ve kurtarma amaçlı saklanır. 

İnit.ora Parametre Dosyası

Parametre dosyası, bir instance başlığında okunan , konfigurasyon parametrelerinin tutulduğu bir text dosyasıdır. Bu dosyada kontrol dosyalarının isimleri ve yeri , veri tabanının adı , SGA da yer alan bellek yapılarının boyutları ve veri tabanındaki işlemler ile ilgili bazı ayarlar tutulur. Veri tabanın arşiv modta olup olmayacağı da yine bu dosyada bulunur.

Mantıksal Olarak oracle Veritabanı 

Mantıksal olarak veritabanı, en temel anlamda tablo boşlukları , tablolar , indeksle, görüntüler, sıralar veritabanı prosedür ve fonksiyonları gibi yapılardan oluşur.

Tablo Boşlukları (Tablespace) 

Tablo boşluğu , kullanıcıların sahip olduğu nesnelerin , veritabanında mantıksal olarak tutulduğu yere verilen addır. Tablo boşlukları, veritabanını daha etkin kullanmak için yaratılır. Bir tablo boşluğu fiziksel olarak , birden fazla veri dosyasına sahip olabilir. Aynı şekilde bir veri dosyasında da , birden fazla tablo boşluğu olabilir. Bir veritabanı kurulduğunda 5 tane tablo boşluğu yaratılması idealdir. Bunlar: 

1. System : oracle ‘ın kendi kullandığı bir tablo boşluğudur. Veri sözlüğü (Data Dictionary),saklı fonksiyon ve yordam tanımları bu tablo boşluğunda bulunur. Mutlaka yaratılması gerekir. System tablo boşluğunda kullanıcılara ait nesnelerin bulunmaması gerekir. 
2. Temporary_data : Veritabanının , sorgu sonucu dönen kayıtları sıralarken veya indeks
yaratırken kullandığı geçici tablo boşluğudur. 
3. Rollback_data : Geri alma parçalarının (rollback segment) bulunduğu tablo boşluğudur. 
4. User_data : Kullanıcıya ait indeks dışındaki nesnelerin bulunduğu tablo boşluklarıdır. 
5. User_index : Kullanıcıya ait indekslerin bulunduğu tablo boşluklarıdır. 
Aslında User_data ve User_index tablo boşlukları yerine tüm nesneler tek bir tablo boşluğunda saklanabilir. İki tablo boşluğunun kullanılmasının sebebi , okuma ve yazma işlemleri sırasında hem verinin , hemde indeksin paralel okunmasını sağlayıp , performans kazanmaktır. 

Tablolar (Tables) 

Veritabanınında bilgilerin tutulduğu alanlar tablolardır. Tablolar belirli karakteristiklere sahip kolonlardan oluşur. Bilgiler satır satır tutulmaktadır. Bir tabloda sınırsız sayıda satır olabilir. 

İndeksler (indexes) 

Tablolarda aranan kaydı daha çabuk bulabilmek için tanımlanan nesnelere indeks denir. İndeksler daha çok kullanılan kolonlar üzerine tanımlanır. İndeksin seçiciliği ne kadar fazla ise sorgulama o kadar hızlı olur. 

Görüntüler (views) 

Görüntüler bir anlamda saklanmış sorgulamalardır. Aynı veya farklı veri tabanları üzerinde bulunan bir veya birden fazla tablonun belirli kolonların , belirli bir kritere göre bir araya getirilmiş şeklidir, bu nedenle tablolarda herhangi bir değişiklik olduğunda görüntülerde buna bağlı olarak değişir. Görüntüler sorgulanabilir. Arkalarında tablo olduğu için giriş, güncelleme ve silme işlemleri de yapılabilmektedir. Sadece oracle veri tabanında birden fazla tabloda oluşan görüntüler üzerinde veriler değiştirilebilmektedir. Örneğin informix sadece bir tablodan oluşan görüntüdeki değiştirilebilmesini desteklemektedir. DB2 ise farklı veri tabanları üzerindeki tablolardan görüntü yaratılmasına olanak vermez. Görüntüler bir veya birden fazla tablonun bir kritere göre bir araya getirilmiş şekli olduğundan performansı çok iyi değildir. 

Blok , Genişleme ve Parça Kavramı (block,extents, segments) 

Blok; oracle veri tabanında verilerin tutulduğu en küçük birime veri bloğu denilmektedir. Bir veri bloğu , işletim sistemindeki veri dosyalarının , belirli bir sayıdaki byte’ı kadar uzunluğa sahiptir. Bu uzunluklar işletim sistemindeki blok uzunluklardan farklı olabilir. Bir tablo boşluğu yaratılırken , işletim sisteminde veri dosyalarının bulunduğu yer , oracle tarafından kendi blok yapısına göre düzenlenir. Veri dosyasının tamamı dolu olmasa bile , işletim sistemi ayrılan yeri dolu olarak görür. Veriler, veri bloklarında tutulduğundan dolayı, veri tabanında nesneler için tutulan yer byte olarak görülebildiği gibi , blok sayısı olarak da görülebilmektedir. 
Genişlemeler; Nesnelerin büyümek için aldıkları , birbirini takip eden bloklardan oluşan , mantıksal veri tabanı alanlarına “genişleme” adı verilir. Bir yada daha fazla genişleme parçayı(segment) oluşturur. Bir parça eğer tamamen dolarsa , oracle bu parça için bir genişleme alır. Genişleme kavramı giriş bölümünde oracle’ın tercih edilme nedenleri arasında gösterilmiştir. Çünkü parçaların genişleme alarak büyümesi , veri tabanındaki büyümenin kontrol altında tutulmasını sağlar. Yaratılan tüm mantıksal nesnelerin (tablo boşluğu , tablo , indeks vs.) ilk genişlemelerin (initial extent) ve sonraki genişlemelerin (next extenets) kaç megabyte olacağı ve en fazla kaç genişleme alabileceği (max extents) veri tabanı yöneticileri tarafından belirlenir ve sisteme tanımlanır. 
Parçalar; Birbirini takip eden genişlemelerden oluşan ve bir nesne için ayrılmış mantıksal veri tabanı alanlarına parça adı verilir. oracle parça oluşturabilmek amacıyla her tablo için veri parçasından, her indeks için de indeks parçasından bir veya daha fazla sayıda genişleme ayırır. oracle veri tabanı 4 tip parça kullanır:

1. Veri parçaları
2. İndeks Parçaları
3. Geçici Parçalar
4. Geri Alma Parçaları

1. Veri Parçaları : Veri tabanındaki tüm tabloların, veriyi tutacak bir veri parçası vardır. bu veri parçası tablo yaratılırken oluşturulur veri tabanı tablo büyüdükçe belirlenen saklama parametreleri doğrultusunda genişleme alır.

2. İndeks Parçaları : Veri tabanındaki tüm indekslerin, indeks bilgilerini tutacak bir indeks parçası bulunur. Büyümeleri veri parçaları gibidir, indeks büyüdükçe indeks parçası genişleme alır.

3. Geçici Parçalar : Veri tabanında bir sorgulama yapıldığında, oracle, SQL cümlesini çalıştırabilmek için geçici bir alana ihtiyaç duyar. Özellikle sıralama işlemlerinde veri tabanı indeks yaratılırken bu alan sıkça kullanılır. Geçici parçalar “Temporary”tablo boşluğunda bulunur veri tabanı genişleme alarak büyür. SQL cümleciğinin çalışması bittikten sonra bu parçalar otomatik olarak boşaltılır. Eğer veri tabanında bir geçici tablo boşluğu yaratılmamış ise, geçici parça sistem tablo boşluğunda genişleme alır. Eğer yapılan işlem büyükse ve sistem tablo boşluğunda yer kalmamışsa, işlem yarıda kesilir.

4. Geri Alma Parçaları : Geri alma parçalarında, işlemler sonucu değişen bilgilerin eski hali tutulur. Bu sayede kullanıcı bir güncelleme işlemi yaptıktan sonra “rollback” diyerek işlemi geri alabilmektedir. Geri alma parçaları “rollback” tablo boşluğuna yaratılır veri tabanı isimleri “init.ora” parametre dosyasında “rollback_segments” parametresinde verilir. Bir veri tabanı için aktif kullanıcı sayısı / 4 adet geri alma parçası yaratılmalıdır.

Eğer kullanıcı olarak bir SQL cümlesi yardımıyla bir tabloyu belirli bir kritere göre güncellerse, oracle, okunan veri bloklarında yer alan değiştirilmiş bilgiyi tablodaki veri parçası bloklarına, bilginin eski hali de geri alma parçalarındaki bloklara yazar. Kullanıcı “commit” derse, geri alma parçalarındaki bilgiler boşaltılır. Eğer kullanıcı “rollback” derse, geri alma parçalarındaki bilgiler tablodaki veri parçası bloklarına tekrar yazılır. Geri alma parçaları, “commit” komutu gelene kadar büyümeye devam ederse, genişleme alır.

Sıralar (Sequences) 

Sıra, veri tabanındaki bir tablonun sayısal bir kolonuna tek (unique) bir sayı listesi üretir. bu sayı listesi olarak bir havuz düşünülebilir. Eğer oracle kolona bir sayı girilecekse kullanıcı oracle havuzdan sıradaki numarayı seçer. Bu durum, çok kullanıcı ortamlarda, sıralı gitmesi gereken veri tabanı asla çakışmaması gereken kolonlarda çok işe yaramaktadır.

Kaydedilmiş Fonksiyon Veri Tabanı Yordamlar

oracle veri tabanında kullanıcılara ait fonksiyon ve yordamlar, uygulamalarda sıkça kullanılacaksa veri tabanına kaydedilebilmektedir. Eğer bu fonksiyon ve yordamlara kullanım hakkı verilirse, tüm kullanıcılar tarafından çalıştırılabilir. Veri tabanı üzerinde saklanan bu program parçaları, uygulama tarafında yazılan program parçalarından daha hızlı çalışır.

Kullanıcılar

Veri tabanındaki nesne sahiplerine kullanıcı adı verilir. Kullanıcılar, nesne yaratır, kullanır veri tabanı silerler. Veri tabanı ilk kurulduğunda, en yetkili kullanıcılar olan SYS veri tabanı SYSTEM otomatik olarak yaratılır. Diğer kullanıcılar SYS tarafında sonra yaratılırlar.

SYS: Sistem kullanıcısıdır. Veri sözlüğünün sahibidir. Tablo boşluğu, kullanıcı, rol yaratma, yedek alma, kurtarma, veri tabanını açıp, kapama haklarına sahiptir. Veri tabanındaki tüm nesneleri kullanabilir. En yetkili kullanıcıdır.

SYSTEM: SYS ile hemen hemen aynı haklara sahip olan sistem kullanıcısıdır. SYS’den farklı olarak yedek alma veri tabanı kurtarma hakkı yoktur.

Veri Sözlüğü 

Veri sözlüğü, veri tabanındaki kullanıcılar, kullanıcıların nesneleri, tabloların özellikleri gibi veri tabanı hakkındaki sadece okunabilir bilgilerin bulunduğu tablo ve görüntüler kümesidir. oracle veri tabanının en önemli bölümüdür. Bir oracle veri tabanı hakkındaki tüm bilgiler, veri sözlüğünden SQL cümlecikleri yazılarak öğrenilebilir.
Veri sözlüğü, veri tabanı kurulurken otomatik olarak yaratılır ve veri tabanında yapılan her türlü değişiklik otomatik olarak yansıtılır. Örneğin, kullanıcı tarafından bir tabloya bir alan eklenirse ya da kullanıcı bir uygulama çalıştırırsa, veri sözcüğü de o tabloya ait olan yapı kullanıcı fark etmeden değiştirilmektedir. Sistemde hangi işlemlerin aktif olduğu, kimlerin çalıştığı, hangi makineden ne kadar süre ile bağlandıkları, oluşan sistem problemlerini veri sözlüğünü değiştiremez, ekleme ve silme yapamaz; çünkü veri tabanının bütünlüğü bozulur.
Veri sözlüğündeki nesneleri sahibi SYS kullanıcısıdır. En çok kullanılan veri sözlüğü görüntüleri ve açıklamaları şunlardır.

DIST: Veri sözlüğünde bulunan bütün görüntülerin isim ve açıklamalarını içeren görüntüdür.

USER_TABLES: Kullanıcıların sahip olduğu tabloların yapısını gösteren bir görüntüdür.

USER_SEQUENCES: Kullanıcının sahip olduğu sıralar hakkında bilgi içeren görüntüdür.

USER_VIEWS: Kullanıcının sahip olduğu görüntüler hakkında bilgi içeren görüntüdür.

ALL_OBJECTS: Kullanıcının erişebileceği tüm nesneler hakkında bilgi içeren görüntüdür.

DBA_USERS: Veri tabanındaki tüm kullanıcılar hakkında bilgi içeren görüntüdür.

DBA_TABLESPAPECES : Veri tabanındaki bütün tablo boşlukları hakkında bilgi içeren görüntüdür.

USER_INDEXES: Veri tabanında bulunan tüm indeksler hakkında bilgi içeren görüntüdür.

V$DATAFILE: Veri tabanında bulunan tüm veri dosyaları hakkında bilgi içeren bir görüntüdür.

V$SESSION: Veri tabanı üzerinde aktif olan işlemlerin numaralarını, hangi kullanıcı, hangi makine ve hangi program tarafından çalıştırıldığını ve çalıştırdığı SQL hakkında detaylı bilgileri içeren görüntüdür.

V$SYSTAT: Veri tabanı açıldığından beri yapılan toplam fiziksel okuma sayısı, sıralanan kayıt sayısı, bu sıralanan kayıtların kaç tanesinin bellekte kaç tanesinin disk üzerinde yapıldığı, toplam okunan blok sayısı, redo log yapılan giriş sayısı, redo log dosyalarında boş yer arama gibi bilgileri dinamik olarak veren görüntüdür.
Eğer 1-( physical reads / (db block gets + consistens gets)) yani disk üzerinde yapılan okuma sayısının toplam okuma sayısına oranı 1’den farklı %90’dan düşük çıkarsa okunan veri bloklarının büyüklüğü yeterli değil demektir. Gereksiz I/O’dan kurtulmak için bu değerin büyütülmesi gerekir.
Eğer redo log dosyalarında yazmak iççin yapılan boş yer arama sayısının bu dosyalara yapılan giriş sayısına oranı (redo log space request / redo entries ) 1 / 5000’den büyük çıkarsa değişiklikler ara belleğinin yeterince büyük olmadığının anlaşılması gerekir.

V$LIBRARYCACHE : Paylaşımlı bellek alanının performansını değerlendirmek amacıyla kullanılan bir görüntüdür. Bu görüntüde yer alan “get hit ratio” değeri %90’aın altında çıkarsa, SGA’ın büyülüğü yeterli olmadığı sonucu çıkar ve bu parametrenin tekrar gözden geçirilmesi gerekir. “Get hit ratio”değeri kullanılan SQL sayısı / paylaşımlı bellek alanında aradıkça bulunan SQL sayısıdır.

V$ROWCACHE : Paylaşımlı bellek alanının performansını değerlendirmek amacıyla kullanılan diğer bir görüntüdür. Bu görüntüdeki nesne tanımlarının (object definition) “ gets / getsmisses” oranı %10’dan büyük çıkarsa, paylaşımlı bellek alanının büyüklüğü yeterli değil ve nesne tanımları için I/0 yapılıyor demektir.

V$PROCESS: Veri tabanı üzerinde aktif olan işlemlerin, hangi kullanıcı, hangi makine ve hangi program tarafından çalıştırıldığını ve herhangi bir beklemenin olup olmadığını gösteren görüntüdür.
V$SQL: Veri tabanı üzerinde çalışan aktif SQL cümleleri hakkında detaylı bilgi içeren bir görüntüdür
Ara
Cevapla PGM
Teşekkür verenler:


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 1 Ziyaretçi



Webfast.10tr.net - Dev Paylaşım Platformu -

Online Shopping App
Online Shopping - E-Commerce Platform
Online Shopping - E-Commerce Platform
Feinunze Schmuck Jewelery Online Shopping