Professional Documents
Culture Documents
Oracle Veritabanı
Yönetim Sistemi’ne Giriş
__________________________
İçerik
3
Oracle Veritabanı Yönetim Sistemine Giriş
4
Veritabanı Yapısı ve Alan Yönetimi:
5
şemadaki nesneler farklı tablespacelerde bulunabileceği gibi
tablespacelerde farklı şemalara ait nesneler bulunabilir.). Başlıca şema
nesneleri şunlardır:
6
birden çok kolonu üzerinde yaratılır. İndeksler yaratıldıktan sonra Oracle
tarafından otomatik olarak bakılır ve kullanılır. Tablolar üzerinde
yapılacak olan değişiklikler otomatik olarak ilişkili indekslere yansıtılır.
7
- Segmentler : Extentlerin üzerindeki mantıksal veritabanı depolama
seviyesi segmentlerdir. Segment, belirli bir mantıksal yapı için tahsis
edilmiş extentler kümesidir. Bir segmentin içindeki tüm extentler
dolduğunda, Oracle dinamik olarak yeni yer tahsis eder. Başka bir
deyişle, bir segmente ait bütün extentler dolduğunda, Oracle bu segment
için yeni bir extent tahsis eder. Extentler gerek duyulduğunda tahsis
edildiğinden, segmente ait extentlerin ardışık olma zorunlulukları
yoktur. Üç çeşit segment tipi vardır:
8
Tablespaceler
9
Fiziksel Veritabanı Yapıları
10
yazılamayan verileri kurtarmak için kullanılır. Redo log'daki bilgiler
kullanılarak veri kurtarılmasına "Rolling Forward" denir.
11
Veri Sözlüğü
Her Oracle veritabanının bir veri sözlüğü vardır. Oracle veri sözlüğü,
veritabanı hakkında referans bilgisi içeren tablolar ve view'lar
kümesinden oluşur. Örnegin, veri sözlüğü veritabanının mantıksal ve
fiziksel yapıları hakkindaki bilgileri tutar. Veri sözlüğü aşağıda belirtilen
bilgileri de tutar:
- Veritabanı Kullanıcıları
- Tablolar üzerinde tanımlanmış bütünlük kısıtlamaları
- Şema nesneleri için tahsis edilmiş yer miktarı ve bu alanın ne
kadarının kullanılmakta olduğu
Veri Erişimi
SQL
12
- Veri Tanımlama Dili Cümleleri (DDL) :
- Kullanıldığı yerler
Şema nesnesi yaratmak, saklamak ve silmek gibi işlemler
Kullanıcılara veritabanı içindeki nesneler için yetki verilmesi
13
Nesneler
14
kalmaz. Ayrıca nesneler sayesinde uygulamalar çok daha kolay anlaşılır
hale gelir.
PL/SQL
15
veritabanında saklandığı yapıdır. Bu global değişken tanımlanıp paket
içindeki herhangi bir prosedürde çağrılabilme gibi ekstra
fonksiyonaliteler sağlar. Ayrıca paketler bir bütün halinde bir kerede
parse edilip, derlenip, belleğe yüklendiği için performans artışıda sağlar.
Java
16
XML
XML, web üzerinde verinin tanımlanması ve ayırt edilebilmesi için
standart yöntemdir. Ayrıca XML, insan tarafından okunabilen,
makinalar tarafından anlanabilen hiyerarşik veri tanımlamaya yarayan,
birçok uygulama tipine uygun genel bir söz dizimidir.
17
Veritabanı Hareketleri
18
Savepoints sayesinde çok uzun ve kompleks bir veritabanı hareketini
daha küçük parçalara bölmek mümkün olur. Veritabanı hareketinin
çalışması devam ederken, hareketin tamamını değil belirlenmiş
noktalara kadar Rollback yapılmasını mümkün kılar. Böylece yarıda
kalan bir hareketi tamamem iptal etmek yerine belli bir noktadan devam
etmesi sağlanabilir.
Veri Bütünlüğü
19
- CHECK : Önceden belirtilmiş mantıksal bir ifadeyi sağlamayan
değer girilemez.
SQL*Plus
20
Bellek Yapısı ve İşlemleri
Oracle sunucusu, bellek yapılarını ve işlemlerini veritabanını yönetmek
ve erişmek için kullanır. Bütün bellek yapıları, veritabanı sisteminin
bulunduğu bilgisayarın ana belleğinde tutulur. İşlemler bilgisayarların
belleklerinde çalışan işlerdir.
21
Oracle sunucusu bir veritabanı ve bir sunucu örneğinden oluşur. Oracle
veritabanının her açılışında, bellekte sistem global alanı (SGA) tahsis
edilir ve Oracle arkaplan işlemleri başlatılır. Bu işlemler ve tahsis edilen
tampon belleğin birleşimi Oracle örneğini oluşturur.
--------------------------------------------------------------------------------
Not: RAC sadece Oracle9i Enterprise Edition’da mevcuttur.
--------------------------------------------------------------------------------
Bellek Yapıları
22
Sistem Global Alanı (SGA)
23
- Cümle tanıtıcıları veya Kursörler : Kursör belirli bir cümle için
tahsis edilmiş olan bellek için yaratılmış bir göstergedir. Uygulama
geliştiriciler kursörleri kullanarak, SQL cümlesinin çalıştırılma
aşamalarında daha fazla kontrol sağlayıp uygulama performansını
arttırabilirler.
İşlem Mimarisi
Kullanıcı İşlemleri
24
Oracle İşlemleri
Oracle, her veritabanı örneği için belli sayıda arkaplan işlemi başlatır.
Bunlar her kullanıcı işleminin ortak olarak ihtiyaç duyduğu bazı
fonksiyonları yerine getirirler. Performans ve güveninirliği arttırmak için
diger Oracle işlemlerini izleyerek parelelliği arttırmaya çalışırlar. Bir
Oracle örneğinin kullanabileceği arkaplan işlemleri şunlardır:
26
- Dağıtıcı (Dnnn) : Sadece paylaşımlı sunucu konfigurasyonu
yapıldığında çalışır. Kullanıcı işlemlerinden gelen istekleri varolan
paylaşımlı sunucu işlemlerinden birine yönlendirmekle, geri dönen
cevabı da gereken kullanıcı işlemine iletmekle görevlidir.
27
Uygulama Mimarisi
İstemci/Sunucu Mimarisi
28
- Operasyonun bazı parçalarını yürütecek bir veya daha fazla
uygulama sunucusu. (Bir uygulama sunucusu, istemci için veri erişimini
ve sorgu işlemeni yapar ve bu sayede veritabanı sunucusu üzerindeki
yükün bir kısmını alır. Ayrıca istemciyle birden fazla sayıda veritabanı
arasında arayüz görevi görerek, ekstra bir güvenlik seviyesi
sağlayabilir.)
- Operasyon sırasında kullanılan verinin büyük bir kısmının
bulunduğu veritabanı sunucusu.
Dağıtılmış Veritabanları
29
Veritabanı bağı, bir veritabanından diğer veritabanına olan yolu tarif
eder. Veritabanı bağları, dağıtılmış veritabanlarındaki global nesnelere
ulaşılmak istenildiğinde kullanılır.
Replikasyon
30
Replikasyon, işlemlerini yürütmek için dağıtılmış veritabanı
teknolojisini kullanır ama bu iki teknoloji farklı konseptlerdir.
Replikasyonda bir nesnenin kopyası birden fazla yerde bulunabilirken,
dağıtılmış veritabanında bir nesne sadece bir yerde bulunabilir.
Streams
31
- Veritabanındaki değişikliklerin yakalanması
- Yakalanan olayların bir kuyruğa atılması
- Kuyruğa atılan olayların aynı veya farklı veritabanlarındaki başka
kuyruklara gönderilmesi.
- Olayların kuyruktan çekilmesi
- Çekilen olaya göre gereken işlemin veritabanında
gerçekleştirilmesi
Advanced Queuing
Heterojen Servisler
Eşzamanlı Erişim
33
Eşzamanlılığı sağlamanın bir yolu, birden fazla kullanıcı aynı veriye
erişmek istediğinde herkesin belli bir sırayla veriye erişmelerini
sağlamaktır. Veritabanı sisteminin görevi her kullanıcı için bekleme
süresini hissedilir seviyenin altına çekmektir. Bunu yaparken verinin
yanlış bir şekilde değiştirilmesine izin verilmemelidir. Performanstan da
veri bütünlüğünden de ödün verilemez.
Okuma Tutarlılığı
Kilitleme Mekanizması
35
Quiesce Veritabanı
Veritabanı Güvenliği
36
Sistem güvenliği mekanizmaları şunları kontrol eder:
37
- Depolama Ayarları ve Kotalar : Her kullanıcı yaratılırken bir
varsayılan birde geçici tablespace ile ilişkilendirilir. Bir nesne
yaratılacağı sırada eğer tablespace adı belirtilmezse kullanıcının
varsayılan tablespace’inde yaratılır. Bir SQL cümlesi çalıştırılırken
geçici segmente ihtiyaç duyulursa bu kullanıcının ilişkilendirilmiş
olduğu geçici tablespace içinde yaratılır. Kullanıcıların tablespace’ler
içinde kullanabilecekleri yer miktarı ise o kullanıcıya o tablespace
üzerinde verilmiş kotayla sınırlıdır.
38
denetlenmesini sağlar. Denetlemeler sonucunda elde edilen bilgiler
denetleme tablolarına yazılır. Kullanıcılar tanımlayacakları veritabanı
tetikleri ile daha karmaşık denetleme mekanizmaları kurabilirler.
Veritabanı Yönetimi
Enterprise Manager
40
Oracle otomatik olarak örnek kurtarma gerçekleştirir. Veritabanı
açılırken tüm redo bilgileri yeniden veritabanına uygulanır.
41
durumunda komple kurtarılabilir. Fakat arşiv modunda olmayan bir
veritabanı ancak örnek hatası durumunda komple kurtarılabilir.
Veri Ambarı
42
değişik kaynaklardan toplanan bilgilerin daha kolay bir şekilde organize
edilmesine olanak sağlar.
43
- Tarihi Bilgi : Tarihi analizleri destekleyebilmek için veri
ambarlarında aylarca hatta yıllarca zamanlık veri depolanır. Ama OLTP
sistemlerde en fazla birkaç haftalık yada aylık bilgi depolanır.
44
Materialized View’lar
Bu yapı bir sorgunun sonuçlarını ayrı bir şema nesnesi içinde tutarak
tablolara dolaylı bir erişim sağlar. Yer kaplamayan normal viewların
aksine, bunlar bir veya daha fazla temel tablo yada viewden yapılan
sorgunun sonucunda oluşan satırları saklarlar. Sorgunun temel
tablolarıyla aynı veya farklı veritabanlarında olabilirler.
OLAP
45
Oracle OLAP şu parçalardan oluşur:
Yüksek Devamlılık
47
- Veri Koruyucu : Oracle Veri Koruyucu, her türlü tehdide karşı
var olan veritabanının gerçek zamanlı kopyası olan ve bekleme
modunda en çok dokuz tane veritabanı sağlayabilir. Eğer ana
veritabanında bir problem olursa bekleme modundadakilerden birini ana
veritabanı haline getirebilirsiniz. Ayrıca sistem üzerinde önceden
planlanmış çalışmalar sırasında kapalı olma zamanını, bekleme
modundaki vertabanlarını çalışma sırasında ana veritabanı haline getirip
çalışmadan sonra geri alarak, minimize edebilirsiniz. Veri koruyucusu,
ana veritabanında redo log dosyalarına kaydedilen değişiklerin log
taşıma servisleri ile bekleme modundaki veritabanlarına taşınması ve
burda log uygulama servisleri ile veritabanlarına uygulanması
prensibiyle çalışır. Log uygulama servislerinin değişiklikleri kurtarma
modunda uyguladığı veritabanlarına fiziksel bekleme modundaki
veritabanı denirken, değişiklerin SQL cümleleriyle uygulandığı
veritabanlarına mantıksal bekleme modundaki veritabanı denir. Fiziksel
bekleme modundaki veritabanları, ana veritabanıyla tamamen aynıdır ve
ya kurtarma modunda yada sadece raporlama işlemleri için açık
konumda olabilir. Mantıksal bekleme modundaki veritabanları, ana
veritabanıyla birebir aynı değildir ve açık durumdadır ama ana
veritabanıyla mantıksal tutarlılığı koruyacak şekilde çalışır. Oracle
bekleme modundaki veri tabanlarının izlenmesi ve yönetilmesi için veri
koruyucu simsarı isimli bir araç sağlamaktadır. Veri koruyucu
konfigurasyonunu yapmak için iki arayüz vardır. Bunlar komut
satırından çalışan DGMGRL ve enterprise manager içine entegre olarak
çalişan Veri Koruyucu Yöneticisidir.
48
bir arayüze sahip bir uygulama vardır. Log Madencisini kullanarak
yapılabilecek bazı işlemler şunlardır:
49
o Oracle örneğinin durmasına neden olan hatalarda
otomatikleştirilimiş, hızlı kurtarma ve sınırlı kurtarma zamanı
o Belirli hata durumları için otomatik teşhis verisinin toplanması
o Zorlanmış Birincil/İkincil konfigürasyonu. Oracle Net Service
üzerinden bağlanan kullanıcıların ikincil düğümlerden birine
bağlansa bile her zaman birincil düğüme yönlendirilmesi.
o Hata durumunda bağlantının yeniden sağlanması sırasında
kullanıcıların yaşadığı zaman kaybının en aza indirilmesi.
İçerik Yönetimi
50
- Oracle Ultra Search, Oracle Text’i kullanarak veritabanı, dosya
sistemi ve web sitelerinde tutulan içeriğin sorgulanabilecek şekilde
indekslenmesini sağlar.
51
- IFS, şirket dosya yönetim işlemlerinize ekstra fonksiyonalite ve
akıl katar. Örneğin, kullanıcılar dökümaların içinde kelime ve ibare
bazında arama yapabilirler.
52
Veri Blokları, Uzantılar (Extents), ve Segmentler
53
Veri blokları, uzantılar ve segmentlere giriş
54
En ince düzeyde, Oracle veriyi veri bloklarında depolar (aynı zamanda
mantıksal bloklar, Oracle blokları veya sayfalar olarak da adlandırılır).
Bir veri bloğu disk üzerindeki fiziksel veritabanı alanında belirli sayıda
bayta karşılık gelir.
55
bloklar ayrılırlar. Segment içindeki kullanılmış veya kullanılmamış
alanlar arasındaki sınıra “high water mark” denir.
Oracle bir veritabanının veri dosyaları içindeki depo alanını veri blokları
adı verilen birimlerle yönetir. Veritabanı tarafından kullanılan en küçük
veri birimine veri bloğu denir. Buna karşılık, işletim sistemi seviyesinde
bütün veriler bayt olarak depolanır. Her bir işletim sistemi bir blok
büyüklüğüne sahiptir. Oracle, çoklu Oracle veri blokları içindeki veriden
istekte bulunur, işletim sistemi bloklarından istekte bulunmaz.
56
Şekil 2-2 Veri Blok Formatı
Tablo Dizini
57
Satır Dizini
Ek Yük(Overhead)
Veri blok başlığı, tablo dizini ve satır dizini toplu ek yük olarak
ilgilendirilir. Bazı blok ek yükünün büyüklüğü sabittir, toplam blok ek
yükü büyüklüğü degişkendir. Ortalama olarak, sabit ve değişken veri
blok ek yükünün payı toplamda 84’den 107 bayta kadardır.
Satır Verileri
Bu veri bloğunun payı tablo yada indeks veriyi kapsar. Satırlar bloklara
yayılabilirler.
Boş Alan
58
Veri bloklarında, tablo veya kümelerin(cluster) veri segmenti veya
indeksin indeks segmenti için yer ayrılır, boş alanlarda “hareket
girişlerinide“(transaction entry) tutabilirler. Bir veya birden çok satırlara
erişim her bir INSERT, UPDATE, DELETE, ve SELECT…FOR
deyimleri blok içinde hareket girişi gerektirir. Hareket girişleri için
gerekli olan alan işletim sistemine bağımlıdır. Bir çok işletim sisteminde
hareket girişleri yaklaşık olarak yirmi üç bayt gerekir.
• Kullanım Kolaylığı
• Daha yararlı alanlar, özellikle cok değişgen büyük satırlı nesneler
için
• Eşzamanlı erişimdeki değişimi sağlamak için çalıştırmayı daha iyi
ayarlama
• Performans/alan yararı bakımından daha iyi çok-anlı(multi-
instance) davranış
59
Veri Bloklarında Kullanılabilirlik ve Boş Alanların Sıkıştırılması
Serbest kalan alan veri bloklarındaki boşlukların ana alanı ile bitişik
olabilir yada olmayabilir. Oracle veri bloğunun boş alanını sadece -(1)
INSERT veya UPDATE deyimleri yeni satır parçası kapsayacak kadar
yeterli boş alan kapsayan blok kullanmaya kalkıştığında ve (2) boş
alanlar satır parçasının bloğun bitişik bir bölümüne eklenemeyeceği
kadar parçalanmışsa- birleştirir.
60
Satır Zincirleme(Row Chaining) ve Geçirme(Migrating)
İki durumda, tablonun bir satırındaki veri tek veri bloğuna sığmak için
çok büyük olabilir. Birinci durumda satır ilk eklendiğinde bir veri
bloğuna sığmak için çok büyüktür. Böyle olursa Oracle satır için gerekli
veriyi bu segment için ayrılmış zincirlenmiş veri blokları gibi depolar.
Satır zincirleme çoğunlukla büyük satırlarda meydana gelir. Örneğin
veri türü LONG veya LONG RAW olan satırları kapsayan satırlar.
Böyle durumlarda satır zincirleme kaçınılmazdır.
Uzantı Ayrıldığında
63
• Uniform uzantılarda uzantının büyüklüğünü belirliyebilir yada
varsayılan değer olan 1MB kullanabilirsiniz. Uzantılarını yerel olarak
yöneten geçici tablo alanları sadece bu ayırma türlerini kullanırlar.
Yerel yönetilmiş tablo alanlarında Oracle yeni uzantıyı ayırmak için boş
alan bakar, ilk önce tablo alanında aday veri dosyasına karar verir,
gerekli komşu boş blokların sayısı için veri dosyasının biteşleminde
araştırma yapar. Eğer veri dosyası yeterli sayıda komşu boş alana sahip
değilse Oracle başka veri dosyasına bakar.
64
• Bir tablo yada kümenin sahibi yada DELETE ANY hakkı olan bir
kullanıcı TRUNCATE…DROP STORAGE deyimi ile, bir tablo yada
kümeyi kesebilir(truncate).
65
Sözlüksel yönetilmiş tablo alanlarında, segment kullanılabilir
uzantılardan daha büyük uzantı gerektirdiğinde Oracle birleşik
düzeltilmiş uzantıları daha büyük bir tane formda yapmak için belirler
ve birleştirir. Buna “bütünleşmiş”(coalescing) uzantılar denir.
Bütünleşmiş uzantılar yerel yönetilmiş tablo alanları için gerekli
değildir. Çünkü bir veya birkaç uzantı düzeltilmiş olup olmamasını
önemsemeden bütün bitişik boş alan yeni uzantı ayırmak için
kullanılabilir.
İndeksdeki uzantılar
66
Geçici Segmentlerdeki Uzantılar
67
Segmentleri Gözden Geçirme
68
Tablo yada küme için olan depolama parametreleri veri segmenti
uzantılarının nasıl ayrılacağına karar verir. Depolama parametrelerini
uygun CREATE yada ALTER deyimleri ile direkt olarak
belirleyebilirsiniz. Bu depolama parametreleri veri erişiminin
verimliliğini ve nesne ile ilgili veri segmenti için depolamayı etkiler.
• CREATE INDEX
• SELECT … ORDER BY
• SELECT DISTINCT …
• SELECT … GROUP BY
• SELECT … UNION
• SELECT … INTERSECT
• SELECT … MINUS
70
Geçici Segmentler Nasıl Ayrılırlar
71
Girişleri değişen geçici segmentteki alan yönetim işlemleri hariç sıralı
işlemler için kullanılan geçici segmentler “yinele günlüğünde”(redo log)
depolanmazlar.
Geçici tablo için segmentler geçici tablo yaratan kullanıcının geçici tablo
alanına ayrılır.
Otomatik geri alma yönetimi “geri alma tablo alanı” tabanlıdır. Farklı
büyüklüklerde birçok geri alma(rollback) segmentleri ayırma yerine,
birkaç geri alma(undo) tablo alanları oluşturmak için alan ayırabilirsiniz.
Otomatik geri alma yönetimi sizin geri alma süresini net olarak
belirlemenizi sağlar. Sistem parametresinin(UNDO_RETENTION)
kullanımı süresince kaydedilmiş geri alma bilgisinin miktarını
veritabanında tutmak için belirleyebilirsiniz. Parametreyi saat zamanı
72
olarak belirlersiniz(örneğin 30 saniye). Süresini belirleme ile uzun
sorguları başarılı bir şekilde çalıştırabilmek için sisteminizi
yapılandırabilirsiniz.
NOTE: İlk Oracle yayınlarında, geri alma alan yönetimi geri alma
segmentleri kullanılarak yapıldı. Bu yöntem şimdi el ile geri alma
yönetimi modu olarak adlandırılır.
Geri alma modu el ile geri alma yönetiminden otomatik geri alma
yönetimine geçiş yolunu daha çok esnek olmasını sağlar. Veritabanı
sistemi ya el ile geri alma yönetimi modu yada otomatik geri alma
yönetimi moduyla çalışabilir. El ile geri alma yönetimi modunda geri
alma alanı geri alma segmentleri boyunca yönetilirler. El ile geri alma
yönetimi modu her uygunluk seviyesi altında desteklenir. Oracle9i’ye
bazı yeni özelliklerini avantaj olarak kullanmak üzere ihtiyacınız varsa
ancak otomatik geri alma yönetimi moduna henüz hazır değilseniz, bu
modu kullanabilirsiniz.
Otomatik geri alma yönetimi modunda geri alma alanı geri alma tablo
alanları ile yönetilirler.
Otomatik geri alma yönetimi modunu kullanmak için veritabanı
yöneticisi sadece her bir Oracle anı için geri alma tablo alanı yaratması
ve UNDO_MANAGEMENT başlangıç parametresine AUTO değerini
73
vermesi gerekir. Otomatik geri alma yönetimi modu uygunluk seviyesi
oracle9i ve üstü için desteklenir. El ile geri alma yönetimi modu
desteklenmesine rağmen Oracle kesinlikle sizi otomatik geri alma
yönetimi modunu çalıştırmanızı tavsiye eder.
74
Geri Alma Zamanı Kontrolü
Uzun süreli çalışan sorgular bazen başarısız olurlar çünkü geri alma
bilgisi tutarlı okuma işlemleri gerektirdiği için uzun süre kullanılabilir
değillerdir. Bu kaydedilmiş geri alma bloklarının aktif hareketler üzerine
yazıldığında meydana gelir.
75
Harici Görünüş (External Views)
76
Tablo Alanları, Veri Dosyaları, ve Kontrol Dosyaları
77
Tablo Alanlarına, Veri Dosyalarına, ve Kontrol Dosyalarına Giriş
78
• Oracle veritabanı veritabanındaki, bütün veriyi toplu olarak
depolayan tablo alanları adı verilen bir veya birkaç mantıksal depolama
birimlerinden meydana gelmiştir.
• Tablo Alanları
• Erişilebilir yineleme günlük dosyaları(online redo log files)
• Kontrol Dosyaları
Varolan tablo alanına başka bir veri dosyası eklendiğinizde tablo alanına
karşılık ayrılmış bir miktar disk alanı arttırırsınız. Şekil 3-2’de bu türde
alan arttırma resimlendirilir.
80
Alternatif olarak veritabanının büyüklüğünü büyütmek için yeni tablo
alanı(en azından bir ek veri dosyası içeren) yaratabilirsiniz. Şekil 3-3’de
bu resimlendirilir.
81
Şekil 3-4 Dinamik Büyüklüklü Veri Dosyaları İle Veritabanını
Büyütme
82
Tablo Alanlarını Gözden Geçirme
Veritabanı tablo alanları adı verilen bir veya birkaç mantıksal depolama
birimlerine bölünür. Tablo alanları daha sonra uzantılara bölünen
segmentler adı verilen mantıksal depolama birimlerine bölünür. Bitişik
bloklar topluluğuna uzantılar denir.
Her Oracle veritabanı sistem adı verilen tablo alanını içerir. Veritabanı
yaratıldığında Oracle otomatik olarak yaratır. Veritabanı açıldığında
sistem tablo alanı her zaman erişilebilir durumdadır.
83
yada varolan sözlüksel yönetilmiş sistem tablo alanını yerel yönetilmiş
biçime geçirebilirsiniz.
Note: Tablo alanı bir kere yerel yönetilmiş olduktan sonra sözlüksel
yönetilmiş olarak geri döndürülemez.
Veri Sözlüğü
Sistem tablo alanı bütün veritabanı için her zaman veri sözlüğü
tablolarını içerir. Veri sözlüğü tabloları bir nolu veri dosyasında (datafile
1) depolanır.
Geri alma tablo alanları yalnızca geri alma bilgisini depolamak için
kullanılan özel tablo alanlarıdır. Geri alma tablo alanlarında herhangi bir
diğer türde(örneğin, tablo yada indeksler) segment yaratamazsınız. Her
bir varitabanı sıfır veya birçok geri alma tablo alanları içerir. Otomatik
geri alma yönetim modunda her bir Oracle anı sadece bir geri alma tablo
84
alanına tahsis edilir. Geri alma verisi otomatik olarak Oracle tarafından
yaratılan ve bakımı yapılan geri alma segmentlerini kullanan geri alma
tablo alanında yönetilir.
İlk DML işlemi bir hareket içerisinde çalıştığında hareket, hali hazırdaki
geri alma tablo alanında geri alma segmentine atanır (ve hareket
tablosunada atanmış olur). Nadir durumlarda Oracle anı tasarlanmış geri
alma tablo alanına sahip değilse hareket sistem geri alma segmentine
bağlanır.
Her bir geri alma tablo alanı geri alma dosyaları kümesinden meydana
gelir ve yerel yönetilmişlerdir. Diğer türlerdeki tablo alanlarına benzer
şekilde geri alma blokları uzantılar içinde gruplanır ve her bir uzantının
durumu biteşlemde temsil edilir. Zamanın herhangi bir anında uzantı ya
hareket tablosuna ayrılır(ve tarafından kullanılır) yada boştur.
85
Note: Geri alma tablo alanı herhangi bir Oracle anı tarafından
kullanılıyorsa veya hareketleri kurtarmak için gerekli herhangi bir geri
alma bilgisi içeriyorsa çıkartılamaz.
Geri alma tablo alanını Oracle anına iki yoldan biriyle atarsınız:
Geri alma tablo alanına, ALTER TABLESPACE deyimi ile veri dosyası
ilave ederek, daha fazla alan ekleyebilirsiniz.
Birden çok geri alma tablo alanına sahip olabilirsiniz ve bunları kendi
içlerinde değiştirebilirsiniz. Geri alma tablo alanlarına kullanıcı kotaları
oluşturmak için veritabanı kaynak yöneticisini kullanın. Geri alma
bilgisi için tutma süresini belirleyebilirsiniz.
86
Sistem sözlüksel yönetilmişse ve veritabanı yaratılırken varsayılan
geçici tablo alanı tanımlanmamışsa sistem hala varsayılan geçici
depolama için kullanılır. Bununla beraber ALERT.LOG dosyasında
yazan şu uyarıyı alırsınız: varsayılan geçici tablo alanı tavsiye edilir ve
gelecekte Oracle sürümleri için gerekli olacaktır.
Çok küçük bir veritabanı sadece sistem tablo alanına ihtiyaç duyabilir,
bununla beraber Oracle, veri sözlüksel bilgiden ayrılmış kullanıcı
verisini depolamak için en azından bir ek tablo alanı yaratmanızı tavsiye
eder. Bu size çeşitli veritabanı yönetimi işlemlerinde çok esneklik
sağlayacak ve aynı veri dosyaları için sözlüksel nesneleri ve şema
nesneleri arasındaki uğraşmalarınızı azaltacaktır.
88
Tablo alanı yarattığınızda bu alan yönetim yöntemlerinden birini
seçersiniz. Seçtiğiniz yöntemi ileriki zamanlarda değiştiremezsiniz.
89
Yerel yönetilmiş uzantıların büyüklüğüne sistem tarafından otomatik
olarak karar verilebilir. Yerel yönetilmiş tablo alanında bütün uzantılar
aynı büyüklüğe sahip olabilir ve nesne depolama seçeneklerinde yer
alabilir.
• AUTO
90
• MANUAL
91
Note: Bölümlenmiş nesnelerin bütün bölümleri tek blok büyüklüğündeki
tablo alanlarında yer almak zorundadır.
93
Bununla beraber tablo alanları erişilemez durumda olduğunda özel
durumlar meydana gelebilir. Örneğin iki tablo alanı indeks veriden tablo
verisini ayırmak için kullanıldığında aşağıdakiler doğru olur:
94
durumuna getirin. Tablo alanı güncellendikten sonra sadece-okunabilir
durumuna geri getirebilirsiniz.
Sıralı Segmentler
Bir geçici tablo alanı sadece sıralı segmentler için kullanılabilir. Geçici
tablo alanı kullanıcının geçici segmentler için tasarladığı, kullanıcının
kullanımına hazır herhangi bir tablo alanı ile aynı değildir. Geçici tablo
alanında tutulabilen kalıcı şema nesneleri yoktur.
95
Sıralı segmentler segment çoklu sıralı işlemlerle paylaşıldığında
kullanılır. Bir sıralı segment verilen tablo alanında sıralama işleminin
yapıldığı her Oracle anı için vardır.
96
taşınması sadece veri dosyalarını kopyalamayı ve tablo alanı
metaverisini bütünleştirmeyi içerir. Tablo alanlarını taşıdığınızda indeks
veriyide hareket ettirebilirsiniz, böylece tablo verisini içeri aktarımdan
veya yükledikten sonra indeksleri tekrar yapılandırmanıza gerek yoktur.
97
Veri Dosyalarını Gözden Geçirme
Oracle veritabanındaki bir tablo alanı bir veya birkaç fiziksel veri
dosyasından meydana gelmiştir. Veri dosyası sadece bir tablo alanı ve
sadece bir veritabanı ile ilişkilendirilebilir.
Oracle belirli miktarda disk alanı artı dosya başlığı için gerekli ek yük
ile bir tablo alanı için bir veri dosyası yaratır. Veri dosyası yaratıldığında
Oracle’ın çalıştığı işletim sistemi, bu dosyanın Oracle’a ayrılmasından
önce, eski bilgilerin silinmesinde ve bir dosyadan izin verilmesinden
sorumludur. Dosya büyükse bu işlem önemli miktarda zaman alabilir.
Herhangi bir veritabanındaki ilk tablo alanı her zaman sistem tablo
alanıdır. Bunun için Oracle veritabanı yaratılırken herhangi bir
veritabanının ilk veri dosyalarını sistem tablo alanı için otomatik olarak
ayırır.
Tablo alanındaki şema nesneleri ile ilgili veri tablo alanını oluşturan bir
veya birkaç veri dosyasını fiziksel olarak depolar. Bir şema nesnesi
belirli veri dosyasına karşılık gelmez, daha doğrusu bir veri dosyası
belirli tablo alanındaki herhangi bir şema nesnesinin verisi için veri
havuzu(repository)dur. Oracle bir veya birkaç tablo alanının veri
98
dosyalarındaki şema nesnesi ile ilgili verisi için alan ayırır. Bundan
dolayı şema nesnesi bir veya birkaç veri dosyasına yayılabilir. Tablo
yayma (striping: verinin birden çok diske karşılıklı olarak yayıldığı
yer), kullanılmadıkça veritabanı yöneticisi ve son kullanıcılar şema
nesnesinin tutulduğu veri dosyasını kontrol edemez.
99
• Geçici dosyalara her zaman NOLOGGING modu verilmiştir.
• Geçici dosyayı sadece-okunabilir durumuna getiremezsiniz.
• Geçici dosyanın ismini değiştiremezsiniz.
• ALTER DATABASE deyimi ile geçici dosya yaratamazsınız.
• Geçici dosyaları yarattığınızda veya büyüklüğünü değiştirdiğinizde
dosyanın belirlenen büyüklüğü için disk alanının ayrılması her zaman
garanti değildir. Düzgün dosya sistemlerinde(örneğin UNIX) disk
blokları dosyanın yaratılması veya büyüklüğünün değişmesinde
ayrılmazlar fakat bloklara erişildikten sonra ayrılırlar.
Her bir kontrol dosyası sadece bir Oracle veritabanı ile ilişkilendirilir.
100
Kontrol Dosyasının İçeriği
• Veritabanı ismi
• Veritabanı yaratılışının timestamp’i
• İlgili veri dosyalarının isimleri ve yerleri ve erişilebilir durumda
yinelenebilir günlük dosyaları(online redo log files)
• Tablo alanı bilgisi
• Veri dosyası erişilebilir olma sınırları
• Günlüğün geçmişi
• Arşivlenen günlüğün bilgisi
• Yedekleme kümesi ve yedekleme bölüm bilgisi
• Yedekleme veri dosyası ve yineleme günlük bilgisi
• Veri dosyası kopyalama bilgisi
• Hali hazırdaki günlük sıra numarası
• Kontrol nokta(Checkpoint) bilgisi
101
çıkarılmasında, kontrol dosyası bu fiziksel yapı değişikliğine yansıması
için güncellenir. Bu değişiklikler kaydedilir şöyle ki:
102
hali hazırdaki Oracle anı başarısız olur. Bununla beraber farklı
disklerdeki hali hazırdaki kontrol dosyasının kopyası sürekli olduğunda
Oracle anı veritabanı kurtarılması işine gerek kalmadan kolayca tekrar
başlatılabilir.
103
4
Veritabanı ve Oracle Anını Açma ve Kapama
104
Oracle Instance’ına Giriş
105
Oracle Anı ve Veritabanı
106
Başlangıç Parametre Dosyaları
107
Oracle Anı ve Veritabanının Başlatılması
Nadir durumlarda bir önceki Oracle anı düzgün bir şekilde kapatılmamış
olabilir. Örneğin, Oracle anının işlemlerinden biri uygun biçimde
sonlandırılmamış olabilir. Bu koşullarda veritabanı normal Oracle anı
başlatılması sırasında bir hata gelebilir. Bu problemi çözmek için, yeni
Oracle anı başlatmadan önce bir önceki Oracle anından kalan bütün
Oracle işlemlerini sonlandırmak zorundasınız.
Veritabanına Bağlanılması
108
dosyalarını bulur ve onları açar. Kontrol dosyaları Oracle anının
başlatılması için kullanılan parametre dosyasındaki CONTROL_FILES
başlatma parametresinde belirlenir. Sonra Oracle veritabanının veri
dosyalarının ve yineleme günlük dosyalarının isimlerini almak için
kontrol dosyalarını okur.
________________________________________________________
Note: Bu bölümde tarif edilen özellikler sadece Oracle9i Enterprise
Edition RAC ile satın aldığınızda sürekli olacaktır.
________________________________________________________
109
Hazır durumda bekleyen veritabanı sabit olarak kurtarma modundadır.
Hazır durumda bekleyen veritabanınızın bakımını yapmak için ALTER
DATABASE deyimini kullanarak hazır durumda bekleyen moddayken
bağlanmak ve birincil durumdaki veritabanınızın oluşturduğu
arşivlenmiş yineleme günlüklerini uygulamak zorundasınız.
110
başarısızlığından(elektirik kesilmesinden) dolayı; veritabanı tekrar
açıldığında Oracle kurtarmayı otomatik olarak yapar.
Veritabanını açtığınızda Oracle anı bir veya birkaç geri alma tablo alanı
veya geri alma segmentini kazanmaya çalışır. UNDO_MANAGEMENT
başlatma parametresini kullanarak Oracle anını başlatmada geri alma
yönetim modunu ya otomatik olarak yada el ile yönetmeye karar
verirsiniz.
Veritabanı bir veya birkaç şüpheli (ne kaydedilmiş nede geri alınmış)
dağıtılmış hareketleri ile bazen anormal olarak kapanır. Veritabanı tekrar
açıldığında ve kurtarma tamamlandığında RECO arka plan işlemleri
herhangi şüpheli dağıtılmış hareketleri otomatik olarak, derhal ve tutarlı
bir şekilde çözer.
111
tablo alanlarını erişilemez duruma getiremezsiniz. Ayrıca iş kuyrukları
sadece okunabilir modda sürekli değildir.
1. Veritabanının kapanması
2. Veritabanının unmount edilmesi
3. Oracle anının kapatılması
Veritabanının Kapatılması
112
Oracle Anını Sonlandırarak Veritabanının Kapanması
113
KÜME VERİTABANI İŞLEMİ TEMEL İLKELERİ:
114
Real Application Clusters’a Giriş
116
Düşük Toplam Sahip Olma Maliyeti
Yüksek Ölçeklenirlik
117
clusterware kullanıyorsanız, düğümleri ve Oracle anlarını bir çok
platforma dinamik olarak ekleyebilirsiniz.
Yüksek Devamlılık
Saydamlık
118
Ön Arabellek Yönetimi
Oracle; kaynakları (örneğin veri bloğu bilgisi) bellekte yer alan bir ön
arabellekte depolar. Bu bilgiyi yerel olarak depolama, veritabanı
işlemlerini ve disk I/O (disk okuma-yazma)’sunu azaltır. Çünkü her bir
Oracle instance’ının kendi belleği vardır. Real Aplication Clusters disk
I/O işlemlerini minimize ederken çoklu düğümlerin ön arabelleklerini
koordine eder. Bu, performansı yüksek seviyeye çıkartır ve gerçek
belleği küme veri tabanınızdaki bütün belleğin toplamına nerdeyse eşit
olacak şekilde genişletir.
120
REAL APPLICATION CLUSTERS SİSTEMLERİN MİMARİSİ
121
Küme ve onun Interconnect’i depolama araçlarına ya da paylaşılan disk
alt-sisteme depolama alan ağı ile bağlıdır. Aşağıdaki bölümler düğümleri
ve Interconnect’i daha detaylı bir biçimde tanımlar:
• Düğümler ve Onların Bileşenleri
• Cluster Interconnect ve Interprocess Communication( Düğümden
Düğüme)
•
Düğümler ve Onların Bileşenleri
122
• Storage (Depolama Sistemi) –Veriyi depolayan bir araçtır. Bu;
içeriklerini değiştirmek için okuma-yazma işlemleri tarafından
erişilmesi gereken genellikle kalıcı veri deposudur.
123
Küme veritabanındaki her bir düğümün bir ya da daha fazla CPU’ları
vardır. Çoklu CPU’lu düğümler tipik olarak ana belleği paylaşmak için
konfigüre edilmiştir. Bu size daha ölçeklenebilir bir sistem sağlar.
124
makinalar üzerine koyabilirsiniz. Cluster File System (Küme dosya
sistemi), Real Application Clusters’ların kurulumunu ve yönetimini
büyük ölçüde kolaylaştırır.
Real Application Clusters’lar için bellek erişim konfigürasyonları
belirgin biçimde tekdüzedir. Bu, kümedeki her düğüm için belleğe
erişimde gereken ek yükün aynı olduğu anlamına gelir. Bununla birlikte,
tipik depo erişim konfigürasyonları hem birbiçimli hemde tersi
olmaktadır. Kullandığınız depo erişim konfigürasyonu, bellek
konfigürasyonunuzdan bağımsızdır.
Bellek konfigürasyonlarında olduğu gibi, çoğu sistemler Real
Application Clusters veritabanları için tekdüze disk erişimini kullanırlar.
Bir küme veritabanındaki tekdüze disk erişim konfigürasyonları, disk
erişim yönetimini kolaylaştırır.
125
REAL APPLICATION CLUSTERS YAZILIMI MİMARİSİ
126
Cluster Manager(CM), düğümler arası işlemleri koordine etmek için
Interconnect üzerinden düğümler arası iletilen mesajlaşmayı
inceleyebilir. Cluster Manager, cluster manager’ın üyeleri olan kümeye,
düğümlere ve Oracle anlarına genel bir izlenim imkanı sunar. Cluster
manager küme üyeliğini de kontrol eder.
Düğüm Monitor(gözleyicisi)
127
• Aktif düğümlerdeki durum değişimlerini ortaya çıkarır ve teşhis
eder, ve bu değişim olayları hakkında bilgiyi bildirir.
Interconnect
128
Oracle konfigürasyon ve yönetim araçları paylaşılan diskte depolanan
küme konfigürasyon verisine gereksinim duyar. Database Configüration
Assistant’ı (DBCA),Oracle Enterprise Management’ı(EM) ve Server
Control(SRVCTL) komut satırı yönetsel yardımcıyı kullanmak için
paylaşılan disk kaynağını konfigüre etmelisiniz. Windows NT ve
Windows 2000 üzerinde, voting disk ve konfigürasyon verisi aynı disk
kaynağını paylaşır.
129
bir Oracle instance arkaplan proses’i değildir. Dolaysıyla, Oracle
instance ile birlikte başlatılmaktadır.
Bir Real Application Cluster veritabanı, tek Oracle instance’ına sahip bir
Oracle veritabanı ile aynı proses’lere(Örneğin, proses monitor(PMON),
database writer(DBWRn), log writer(LGWR), ve bunlara benzer
proses’ler) sahiptir. Bunlara ek olarak Real Application Cluster-specific
prosesler(süreçler) Şekil 3-1 de gösterilmiştir. Bu proses’lerin ve bu
proses’lerin oluşturduğu trace(izleme) dosyalarının esas isimleri
platforma bağımlıdır.
130
• The Diagnosability Daemon(DIAG), Oracle anlarındaki proses
başarısızlıkları ile ilgili diagonistic(teşhis edilmiş) veriyi yakalar. İşletim
sisteminde geri planda çalışan bu programın işlemleri (the operations of
this daemon) otomatik hale getirilmiş ve yaptığı etkinlikleri kaydetmek
için bir uyarı log dosyasını güncellemektedir.
131
anda erişimi koordine eden Real Application Clusters’ların tümleşik
bileşenleridir. Bu servisler, tutarlılığı ve veri bütünlüğünü korur. Her
Oracle instancendaki GCS ve GES, cluster manager’da dahil olmak
üzere, küme içinde ve Oracle anları arası iletişimi sağlamak için IPC
kullanır. Bu kısımda GES ve GCS’nin bazı özellikleri tanımlanacaktır.
• Uygulama Saydamlığı
• Dağılmış Mimarili Global Kaynak Dizini
• Resource Mastering and Affinity
• Cluster manager ile GCS ve GES etkileşimi
Uygulama Saydamlığı
GCS ve GES, bir çok düğüm aksasa bile, Global Kaynak Dizininin
bütünlüğünü temin eder. Eğer en az bir Oracle instance, onarım bittikten
sonra aktif durumda ise paylaşılan veritabanı her zaman erişilebilir
durumdadır. Kaynak dizininin fault tolerance(hata müsamahası), Real
132
Application Clusters’lara Oracle anlarını herhangi bir anda ve sıra
dikkate almaksızın durdurmak başlatmak için imkan sağlar.
133
REAL APLICATION CLUSTERS’DA ÖLÇEKLENİRLİK
134
Bu bölümde “niçin bütün sistem çeşitleri Real Aplication Clusters’dan
faydalanır” sorusunun yanıtı aranacaktır. Ayrıca aşağıdaki konulara
değinilecektir.
135
Veri Ambarı Sistemleri ve Real Application Clusters’lar
ÖLÇEKLENİRLİK SEVİYELERİ
136
• Ağ Ölçeklenirliği
• Ağ Ölçeklenirliği ve İstemci / Sunucu Bağlanırlığı
• İşletim Sistemi Ölçeklenirliği
Ağ Ölçeklenirliği
137
istemcinin bağlantısını , istemcinin bazı faktörlere dayalı belirli bir
düğüme erişebilmesi için, onaylar. Dinleyicinin bağlantıyı nasıl
onaylayacağı, aşağıda ana başlıklar altında tanımlanan bağlantı
seçeneklerini nasıl konfigüre ettiğinize bağlıdır.
138
Servise registration, bir Oracle instancenın çalışıp çalışmadığına dair
dinleyicileri bilgilendirir. Bu, çoklu dinleyiciler bir servisi
desteklediği zaman, connect-time failover’ı sağlar. Bu özelliği
kullanmak için, ilk dinleyici bağlantısında hata olursa istemci
isteklerini farklı bir dinleyiciye fail over (adres devri) yapmak için bir
istemciyi konfigüre edin. İstemci bir dinleyiciye başarılı bir şekilde
bağlanıncaya kadar tekrar bağlantı yapmaya çalışır. Eğer bir Oracle
instancenda hata oluşursa o zaman dinleyici ağ hatası döndürür.
139
TRUE’ya ayarlayıp ve bağlantı tanımlayıcısınada aynı servis ismini
verin.
140
• Bölümlemeye giriş
• Bölümleme yöntemleri
• Bölümlenmiş indeksler
• Performansı arttırmak için Bölümleme
BÖLÜMLEMEYE GİRİŞ
142
elde edilebilir. Bazı sorgular için, bölüm eliminasyonu (partition
elimination) olarak adlandırılan bu teknik çok yüksek performans
kazançları sağlar.
• Bölümleme, bakım işlemleri için planlanan kesinti süresinin
etkisini önemli ölçüde azaltır.
• Bölüm bakım işlemlerininbölüm bağımsız oluşu, aynı tablonun
veya indeksin farklı bölümleri üzerinde eşzamanlı bakım işlemleri
yapma imkanı sağlar. Bölümler üzerinde bakım işlemlerinden
etkilenmeyen, eşzamanlı SELECT ve DML işlemleri çalıştıralabilir.
• Eğer bakım ve onarım süresini, ve başarısızlıkların etkisini
azaltmak için kritik tablolar ve indeksler bölümlere ayrılırsa,
bölümleme veritabanlarının sürekliliğini arttırır.
• Uygulamalarınızda herhangi bir değişiklik yapmaya gerek
kalmadan bölümleme gerçekleştirilebilir. Örneğin; tabloya erişen hiçbir
SELECT deyimini veya DML deyimini değiştirmeye ihtiyaç duymadan
bölümlenmemiş bir tabloyu bölümlenmiş bir tabloya dönüştürebilir.
Bölümlemeden faydalanmak için uygulama kodunu tekrar yazmanıza
gerek yoktur.
143
Bölme Anahtarı
Bölümlenmiş bir tablodaki herbir kayıt, belirli bir şekilde tek bir bölüme
atanır. Bölüm anahtarı, her kayıt için bölümü belirleyen bir veya daha
fazla kolonlar kümesidir. Oracle9i; ekleme, güncelleme, ve silme
işlemlerini bölüm anahtarı ile otomatik olarak uygun bölüme
yönlendirir.Bir bölüm anahtarı:
144
bölümlenebilir. CLOB veya BLOB veri tiplerine sahip kolonlar içeren
tablolar bölümlenebilmektedir.
BÖLÜMLEME YÖNTEMLERİ
145
• Aralıklı (Range) Bölümleme
• Liste Bölümleme
• Hash Bölümleme
• Birleşik (Composite) Bölümleme
146
Aralıklı (Range) Bölümleme
• Herbir bölüm, bölüm içine dahil olmayan bir üst sınırı belirten bir
VALUES LESS THAN cümleciğine sahiptir. Böülüm anahtarı bu
literale eşit yada daha yüksek olan kayıtlar, bir sonraki bölüme
eklenmektedir.
• İlki hariç, bütün bölümler, bir önceki bölme üzerinde VALUES
LESS THAN cümleciği ile belirtilen alt sınıra sahiptir.
• MAXVALUE literali, en son bölme için tanımlanabilir.
MAXVALUE, bölüm anahtarı için herhangi diğer muhtemel
değerlerden daha yüksek değerleri(null değerde dahil olmak üzere),
sıralayan sanal sonsuz bir değeri temsil eder.
147
Bir sonraki bölümde tipik bir örnek verilmiştir. Komut, satis_tarihi
alanına göre range bölümleme yapılmış bir tablo
(satis_range)yaratmaktadır.
Liste Bölümleme
149
• (21, ‘Smith’, ‘Florida’, 150, ’15-OCA-2000’), satis_dogu bölmesi ile
eşlenir.
• (32, ‘Lee’, ‘Colorado’, 130, ’21-OCA-2000’), tablodaki herhangi bir
bölme ile eşlenmez.
Hash Bölümleme
150
• Performans özellikleri, örneğin paralel DML, bölüm eliminasyonu,
ve bölme düzeyinde join işlemlerinin (parition wise join) önemli olduğu
durumlarda
151
dağıtılması, striping ve paralellik avantajlarını sağlar. Birleşik range-liste
bölümleme, altbölümler için range bölümlemenin yönetilebilirliğini ve
liste bölümlemenin dışardan kolay kontrol edilebilmeözelliklerini sağlar.
152
PARTITION satis_may2000 VALUES LESS
THAN(TO_DATE('06/01/2000','DD/MM/YYYY')));
153
Range-Liste Birleşik Bölümleme Örneği
154
PARTITION mayhaz_2000 VALUES LESS THAN (TO_DATE('1-
TEM-2000','DD-MON-YYYY'))
);
155
Bir Tabloyu Bölümlerken
Bölümlenmiş İndeksler
156
Lokal Bölümlenmiş İndeksler
Bir lokal indeks unique olabilir. Bununla birlikte, bir lokal indeksin
unique olabilmesi için, tablonun bölümleme anahtarının indeksin anahtar
kolonlarının bir parçası olması gerekir. Unique lokal indeksler OLTP
ortamları için faydalıdır.
157
Şekil 11-6 Lokal Bölümlenmiş İndeksler
158
Global Bölümlenmiş İndekslerin Bakımı
ADD(HASH)
COALESCE(HASH)
DROP
EXCHANGE
MERGE
MOVE
SPLIT
TRUNCATE
159
Şekil 11-7 Global Bölümlenmiş İndeksler
160
Bölümlenmiş İndeks Örnekleri
İndeks Yaratımı Örneği: Örnekler için Kullanılan Tablo Yaratma
161
(PARTITION p1 VALUES LESS THAN(5000),
PARTITION p2 VALUES LESS THAN(MAXVALUE));
162
Bölümlenmiş Tablolar Üzerinde İndeks Yaratımı Hakkında Çeşitli
Bilgiler
163
• Lokal indeksler performansı artışı sağlayabilir çünkü; çoğu indeks
bölümleri, indeks anahtarı üzerinde range sorgulamaları ile paralel
olarak taranabilir.
• Bölüm Eliminasyonu
• Bölüm Düzeyinde Join İşlemleri
• Paralel DML
164
Bölme Eliminasyonu
165
Eşitlik, aralık, LIKE, ve IN karşılaştırma belirtimi listeleri, range veya
liste bölümlemeyle bölüm eliminasyonu gerçekleştirilebilir. Eşitlik ve
IN karşılaştırma belirtimi listeleri hash bölümleme ile bölüm
eliminasyonu gerçekleştirilebilir.
SELECT SUM(value)
FROM siparisler
WHERE siparis_tarihi BETWEEN ’28-MAR-98’ AND ’23-NİS-98’
166
işlemleri sıralı veya paralel şekilde uygulanan daha küçük join
operasyonlarına ayrılır. Bölüm düzeyinde join ilşlemlerine diğer bir
bakış açısı ise, paralel join işlemlerinin yürütümü esnasında veri
dağılımını da dikkate alarak paralel bağımlı öğeler arasında veri değiş
tokuşu miktarını minimize eder.
Paralel DML
Paralel yürütüm, tipik olarak karar destek sistemleri ve veri ambarları ile
ilişkilendirilmiş büyük veritabanları üzerindeki veri yoğunluğuna bağlı
işlemlerin dramatik olarak yanıt süresini azaltır. Standart tablolara ek
olarak, paralel sorgulamayı ve paralel DML ‘i range ve hash
bölümlenmiş tablolarda kullanabilirsiniz. Böyle yaparak, toplu işlemler
için performansı ve ölçeklenirliği arttırabilirsiniz.
167