You are on page 1of 27

Veri Taban Ynetim Sistemleri 2

Ders 9

Datk Veritaban & Oracle RAC

Yrd. Do. Dr. Altan MESUT

Trakya niversitesi
Bilgisayar Mhendislii Blm
Datk Veritaban
Her biri farkl ilemciler tarafndan eriilebilen farkl
saklama birimlerini kullanan veritabanna "datk
veritaban: distributed database" denir.
Saklama birimlerinin her biri birer bilgisayar olabilir ve bu
bilgisayarlar ayn ortamda bulunabilecei gibi, bilgisayar a
ile haberleen uzak noktalarda konumlanm ta olabilirler.
Kme (cluster) yaps kullanldndan eriilen verinin hangi
dmde sakland erien istemci tarafndan bilinmez.
Kme: Dardan tek bir sunucuymu gibi alglanan ama aslnda
ok ok sunuculu olan yap
Fiziksel bileenlerini (CPU, RAM, HDD) paylaan paralel
sistemler zerinde kurulu VT'ler genellikle "datk" olarak
dnlmez.
Datk Veritaban
Tek bir sunucu zerinde alan veritaban kullanlmak
yerine veritabann birok sunucuya datarak
kullanmann (sharding) faydalar:
zellikle sunucularn farkl ortamlarda (bina, ehir)
sakland durumlarda eer birisinde g kesintisi veya
donanm problemi meydana gelirse sistemin dieri
tarafndan devam ettirilmesi salanr.
Yk paylam yaplarak, daha ok kullancya daha ksa
srelerde yant verilebilmesi salanr.
Daha fazla depolama kapasitesi elde edilir.
Bir sunucuda disk arzas olmas durumunda verilerin
kaybolmamas salanr (ayn sunucuda replica kullanlmas
ile de bu salanabilir).
Datk Veritabanlar
Baz kaynaklarda* datk veritaban sistemi terimi
birbirine balanabilen ve birbirlerindeki nesneleri
kullanabilen farkl veritaban sistemlerinin btn
olarak kullanlr.
Sistemdeki tm veritabannn ayn tipte olduu
durum homojen sistem, farkl VTYS'ler bulunmas
durumu ise heterojen sistem olarak adlandrlr.
Heterojen sistemlerde farkl VTYS'ler aras haberleme
"gateway" ad verilen arayzler ile salanr

* http://docs.oracle.com/database/121/ADMIN/ds_concepts.htm
Veritaban Ba (Database Link)
ki fiziksel veritaban sunucusu arasndaki tek ynl iletiim
yoludur.
A veritabanna bal olan bir kullanc bu veritabannn veri
szlne eklenen bir ba (dblink) ile B veritabanndaki bilgilere
ulaabilir. Ama ayn balant kullanlarak B veritabanndan A
veritabanna ulalamaz (B veritabannn szlne de A'ya
ulaabilmek iin yeni bir ba eklenmelidir).
Bulunulan veritabanndaki tm kullanclarn vt1 veritabanna
balanabilmesi iin:
CREATE PUBLIC DATABASE LINK vt1 USING 'vt1';
Bulunulan veritabanndaki tm kullanclarn vt1'e, o
veritabanndaki bir kullancnn zerinden balanabilmesi iin:
CREATE DATABASE LINK vt1
CONNECT TO ahmet IDENTIFIED BY abc123 USING 'vt1';
Dier veritabanndaki personel tablosunu sorgulamak iin ba @ kullanlarak belirtilir:
SELECT * FROM personel@vt1;
Veriyi datma nasl yaplacak?
Eer kme yaps kullanyorsak farkl dmdeki tablo iin DBLink
ismi vermeye gerek yoktur (kmeye balanan istemciler sistemi tek
VT olarak grr).
ster kme, ister oklu VT yaps kullanyor olalm, tablonun
tamamn baka bir dme tayarak veriyi datmak uygun bir
zm olmayabilir.
ok sorgu gnderilen bir tablonun kopyalarn farkl dmlerde
saklamak ve yk dengeleme* kullanmak hz kazandrabilir.
Fakat veride deiiklik olduu zaman tm dier kopyalarda ilgili
gncellemenin yaplmas da zaman alc olacaktr.
Tabloyu bir btn olarak ayrmak yerine, satr ve stun baznda
paralamak, sorgularn ve DML ilemlerinin ilgili paralar zerinde
yaplmasn salamak ou zaman daha etkili bir zm olacaktr.

* http://tr.wikipedia.org/wiki/Yk_dengeleme
Fragmentation (Paralama)
Partitioning (Blmlendirme)
Verinin farkl saklama dmlerine gnderilmek
zere nasl paralanaca belirlenirken 3 farkl
yntemden biri tercih edilebilir:
Dikey paralama: Tablonun stunlarnn farkl
dmlerde olacak ekilde paralanmas
Yatay paralama: Belirli bir kriter ile kaytlarn
paralanmas
Hibrit paralama: Belirli stunlardaki verilerden
seilen kritere gre kaytlarn paralanmas
Replication (Yineleme)
Her para sistemdeki tm sunucularda saklanabilir veya
seilmi paralar, seilmi sunucularda saklanabilir.
stemcinin bir sunucu zerinde yapt deiikliin dier
sunuculara da yanstlmas gereklidir.
Replication ilemi datk veritabannda deiiklikler
arayan zel bir yazlm kullanmay gerektirir.
Deiiklikler tespit edildikten sonra, Replication ilemi
tm sunucularn ayn olmasn salar.
Replication datk veritabanlarnn boyutuna ve
saysna bal olarak karmak ve zaman alc olabilir
(bilgisayar kaynaklarn ok kullanabilir).
Partial Replication (Ksmi Yineleme)
seilmi paralar,
seilmi sunucularda
saklanr

letiim A
Duplication (Kopyalama)
Duplication ileminde master olarak tanmlanan bir
veritaban, belirli zaman aralklar ile replica olarak
bilinen dier veritabanlarna kopyalanr.
Bu ilemde, istemciler yalnzca master veritaban
zerinde deiiklik yapabilir. Bu nedenle DML
ilemlerinde yk dengeleme yoktur.
Sorgularda replicalar kullanlabildii iin yk
dengeleme vardr.
Master'dan replica'lara doru tek ynl bir
gncelleme yapld iin ilem basit ve hzldr.
Distributed Join
Datk veriyi sorgularda birletirmek iin farkl
yaklamlar kullanlabilir.
R ve S tablolarnn Y alan zerinden ilikili olduunu
dnelim; R'yi S'nin tarafna veya S'yi Y'nin tarafna
gndermek ve JOIN ilemi uygulamak gnderilecek
olan verinin hacmi dnldnde pahal bir ilemdir.

Bunun yerine Semi Join veya Bloom Join ilemleri tercih


edilebilir.
Semi Join
R'ye sadece S.Y stununu gnderip, join ilemini
bu stun zerinde yapma yaklamdr:

R'nin sadece join ile eleen tekrarsz kaytlarn


S'ye gndermek ve burada son join ilemini
gerekletirmek suretiyle daha az a trafii ve
daha hzl join ilemi gerekletirilir.
Semi Join'in etkinlii
Semi Join'in etkinlii aadaki durumlarda
artar:
Y niteliinin boyutu, dier niteliklerin boyutlarna
gre kkse
Join ileminde seicilik yksekse (S'ye gnderilecek
eleen kaytlar az ise)
Join sonras gz ard edilebilecek ok sayda
tekrarl kayt varsa
Bloom Join
R'de K boyutunda bir bit vektr oluturulur (ilk bata
tm bitleri 0 olacak)
R'deki her kayt iin Y deerine bal olan ve 1 ile K
arasnda bir say dndren bir hash fonksiyonu
yardmyla bu bit vektrnn eleen bitleri 1 yaplr
Oluan bit vektr S'ye gnderilir
S'de de ayn hash fonksiyonu kullanlarak oluturulan
bit vektr ile R'den alnan bit vektr karlatrlr
Uyuma olan kaytlar join edilmesi muhtemel olan
kaytlar olarak iaretlenir ve R'ye gnderilerek join
edilir
Atomicity (Blnmezlik)
Hareket (transaction) ilemede Atomicity* zelliini salamak iin
Commit ve Rollback ilemlerinin gerekliliinden bahsetmitik.
Datk VT sisteminde iki aamal Commit mekanizmasna ihtiya
vardr:
Transaction T'yi balatan sunucu koordinatr olur ve T'yi tamamlamak
(commit) istediinde dier sunuculara "prepare T" mesaj gnderir.
Mesaj alan sunucular "ready T" veya "don't commit T" gnderir (bu
ilem biraz zaman alabilecei iin koordinatr yant alana kadar
beklemelidir).
Eer koordinatr herkesten "ready" yant aldysa bu defa dier
sunuculara "commit T" mesaj gnderir. Bir tanesinden bile "don't
commit" aldysa, "abort T" mesaj gnderir.
Tm sunucular aldklar mesaja gre, kendi yerel hareketlerini
"commit" veya "rollback" ederler.

* ACID (Atomicity, Consistency, Isolation, Durability) http://en.wikipedia.org/wiki/ACID


Isolation (zolasyon)
Okuma (Sorgular) ve Yazma(DML) ilemlerinde
Isolation zelliini salamak iin Kilit (Lock)
mekanizmalarna ihtiya vardr.
Datk Kilitleme 3 farkl yaklam ile yaplabilir:
Merkezi: Bir adanm sunucu tm kilit ilemlerinden
sorumlu olur (o sunucuda oluacak olan hata sistemi
almaz hale getirecek ve performans dk olacak)
Temel-kopya: VT'deki her verinin temel kopyas farkl
dmlerde kaytldr ve o veriyi kilitlemek isteyen bir
hareket, o verinin sahibi olan dmden kilit iin izin ister
Tam-datk: Okuma iin elemann herhangi bir kopyasn
kilitleme, yazmak iin ise tm kopyalarn kilitleme mant
Real Application Clusters (RAC)
Oracle RAC kullanlarak birok sunucu veya
bilgisayar birbiri ile balanarak tek bir VT
sistemi gibi almalar salanabilir.
Bir Oracle RAC veritaban 100 farkl instance'a
sahip olabilir ve her instance kendine zel bir
undo-tablespace'i ile en az bir ilave redo
thread'i ierir.
Oracle RAC Mimarisi
Yandaki ekilde farkl
sunucularda
yrtlen
instance'lar ve
uygulama / web
sunucular gibi dier
ortamlarn onlar tek
bir veritaban gibi
alglad mimari
gsterilmitir.
Uzak noktalar iin RAC
Geleneksel olarak RAC tek bir veri merkezi (data
center) zerinde yaratlr.
Fakat bir "extended distance cluster" kullanlarak
farkl dmleri (node) ok uzak yerlerde
bulunabilen yaplar oluturmak ta mmkndr.
Bu sayede bir veri merkezinde oluacak olan elektrik
kesintisi, su baskn ve yangn gibi doal afetler
neticesinde veri kayb olmamas ve hatta sistemin hi
aksamadan devam etmesi salanabilir.
Fakat tm veri merkezlerini kapsayacak ekilde byk
bir blgesel felaket yaanmas durumunda bu yap da
yetersiz kalabilir (zm: Oracle Data Guard)
Oracle Clusterware
Tm Oracle veritaban platformlar zerinde
alan entegre kme ynetim zm sunar:
Dm yelikleri
Grup servisleri
Global kaynak ynetimi
Yksek kullanlabilirlik fonksiyonlar
Oracle Clusterware, RAC kurulumu srasnda
yaplandrlabilecei gibi, ayrca da kurulabilir.
Oracle baka kmeleme zmleri ile de
alabilir, fakat kendi rn olan Oracle
Clusterware ile daha iyi entegrasyona sahiptir.
Oracle RAC tarafndan desteklenen
saklama biimleri
Automatic Storage Management (ASM):
Diskleri idare etme iin Oracle tarafndan
tavsiye edilen zmdr.
Oracle Cluster File System (OCFS)
Oracle RAC iin sertifikas olan nc parti bir
kmeleme dosya sistemi.
A dosya sistemi (network file system)
Biimlendirilmemi aygtlar (raw devices)
Dmler aras haberleme
Oracle RAC veritaban instance'larna bir veritabannn
varsaylan IP adresi zerinden veya VIP (Virtual IP) adresleri
zerinden ulalabilir.
Genel a balants dnda, kmedeki tm dmleri
balayan zel bir a (interconnect) oluturmak ta gereklidir.
Bunun iin sadece kmedeki dmler tarafndan
eriilebilen ayr bir anahtar (switch) veya anahtar kmesi
kullanlr.
Genellikle Gigabit Ethernet hznda bir balant tercih edilir.
Linux ve Unix sistemlerinde genellikle UDP (User Datagram
Protocol) veya RDS (Reliable Data Socket) protokollerini
tercih edilirken, Windows kmeleri TCP protokoln
kullanr.
4 dml bir RAC veritaban
Public
Network
Private
Network
(Interconnect)
Node 1 Node 2 Node 3 Node 4
Instance Instance Instance Instance
1 2 3 4

Storage
Network

Shared
Storage
Cache Fusion
nceki slaytta grdmz gibi her dmn kendine ait
bir instance' vardr.
Bir instance veriyi hafzaya kardnda, baka bir instance
tarafndan da bu verinin kullanlabilmesi iin Cache Fusion
adnda bir yap tm instance'larda yer alan Database Buffer
Cache'lerin ortaklaa kullanlmasn salar.
Bu yap, ihtiyac olan dier instance'lara gereken bloklar
transfer ederken her zaman zel a (interconnect) kullanr.
Cache Fusion'un ilgili veri aktarmlarnda sknt yaamamas
iin RAC dmlerindeki SGA bykl, tek bana alan
Oracle VT'lerde olduundan daha fazla olmaldr.
Global Cache Service (GCS)
Global Enqueue Service (GES)
Her instance'n sorguyu veya hareketi yrtmek
iin ihtiyac olan bloklar en hzl ekilde elde
etmesini ve veri btnln salamak iin
kullanlan servislerdir.
Temel olarak, Cache Fusion kaynaklarna eriimi
idare etmek iin kullanlrlar.
Bu servisler Global Resource Directory (GRD)
kullanarak, her veri dosyasnn ve her bellek
blounun durumlarn muhafaza eder.
GRD'ye aktif olan tm instance'lar eriebilir.
Oracle RAC Arkaplan lemleri
ACMS (Atomic Controlfile to Memory Service)
ki aamal commit ile atomicity salayan servis
GTX0-j (Global Transaction Process)
Global hareket ilemede effaflk destei salar
LMON (Global Enqueue Service Monitor)
Global ilem kuyruunu idare eder ve gerektiinde recovery yapar
LMD (Global Enqueue Service Daemon) = GES
Her instance iinde dardan gelen kaynak isteklerine yant verir
LMS (Global Cache Service Process) = GCS
LCK0 (Instance Enqueue Process)
Cache Fusion ile ilgili olmayan kaynak isteklerine yant verir
RMSn (Oracle RAC Management Processes)
Kmeye yeni bir dm eklendiinde, veya kmeden dm
karldnda yaplacak ilemleri idare eder
Oracle RAC Kurulumu
Oracle web sitesinden Grid Infrastructure (Clusterware)
indirilip kurulmaldr.
Grid Infrastructure sadece Linux ve Solaris iletim
sistemlerine kurulabilecei iin istenirse bu iletim
sistemleri de ayn adresten indirilebilir.
Eer Windows iletim sistemi zerinde sanal makine
oluturarak kurulum yaplacak ise VM VirtualBox indirilip
kurulabilir.
Ayrca Oracle VT 10g, 11g, 12c srmlerinden biri gereklidir.
Kurulum ile ilgili ilem admlarn gsteren aadaki
video'lardan faydalanlabilir:
https://www.youtube.com/watch?v=x80QP-0HchI
https://www.youtube.com/watch?v=sNu50xI0nXQ

You might also like