You are on page 1of 34

Veri Taban Ynetim Sistemleri 2

Ders 1

Oracle Veritaban Mimarisi

Yrd. Do. Dr. Altan MESUT

Trakya niversitesi
Bilgisayar Mhendislii Blm
Oracle
Oracle, byk miktarda veriyi ok kullancl ortamda, birok
kullancnn ayn anda ayn veriye erimesine izin verecek ekilde
idare edebilen bir ilikisel veri taban ynetim sistemidir (VTYS-
RDBMS).
Yksek performans, yetkisiz kullanclarn girilerini engellemesi
ve beklenmedik durumlarda oluabilecek veri kaybn
engelleyecek zmler sunmas en nemli zelliklerinden
bazlardr.
Farkl iletim sistemleri (Unix, Linux, OsX, ) zerinde
alabilmesi sayesinde, bu iletim sistemlerinin ykl olduu
byk sunucu sistemlerinde en ok tercih edilen VYTS'lerden
biridir. MS SQL Server sadece Windows ortamnda almas
nedeniyle byk sistemlerde kullanm oran azdr.
Oracle Veritaban Mimarisi: Genel Bak
Instance (RAM'de)

SMON PMON Others

SGA Shared pool

Library
Database cache
Redo log
buffer
buffer
cache Data dictionary
Sunucu cache
ilemi PGA
Server
process DBWn CKPT LGWR ARCn

Kullanc
ilemi
User Arivlenmi
Online redo
process Veri Kontrol log log dosyalar
Dosyalar Dosyalar dosyalar
Veritaban (diskte)
Veritabanna Balanma

Balant (Connection): Bir veritaban an (instance) ile bir kullanc


ilemi arasndaki iletiimdir.
Oturum (Session): Bir kullancnn bir instancea bir kullanc ilemi
zerinden kurduu zel bir balantdr.

SQL> Select Kullanc Oturum


KULLANICI ilemi

Balant
Veritabanna Balanma

Kullanc SQL*Plus gibi bir ara veya veritabann kullanan bir


uygulama altrdnda, istemci makinede bir user process
balatlr. Kullanc, adn, ifresini ve ulamak istedii
veritabannn ismini girerek Oracle Sunucusuna baland
anda sunucu makinede bir server process yaratlr.
Eer Dedicated Server deil de Shared Server yaps kullanlyorsa
her user process iin ayr bir server process oluturulmaz. Her
oturum dispatcher tarafndan paylaml server process havuzuna
ynlendirilerek, user processin faaliyette olan bir server process ile
ilikilendirilmesi salanr.
User process isteklerini server processe iletir. Server process
istekleri yerine getirir, ve sonucunu user processe verir.
Kullanc balanty kestiinde server ve user processler
bitirilir.
Oracle Veritaban Sunucu Yaplar
Instance
Hafza Yaplar
SGA Shared pool

Library
Database cache
User Server Redo log
process process buffer
buffer
cache Data dict.
cache

lemler DBWn CKPT LGWR SMON PMON ARCn Others

(Processes)

Veritaban

Saklama Yaplar

Online redo
Veri Kontrol log
Dosyalar Dosyalar Dosyalar
Oracle Hafza Mimarisi

Server Server Background


PGA PGA PGA
process 1 process 2 process

SGA
Data Dictionary
Shared
cache
SQL area

Library Other
cache

Redo log Shared pool


buffer
Free
Database buffer I/O Buffer
memory
cache
Response Request
Java Streams queue queue
pool pool Large pool
System Global Area (SGA)
Instance, SGA adnda tm sunucu ve arkaplan ilemleri tarafndan
paylalan bir hafza yapsna sahiptir. SGAnn iindeki bileenler:
Database Buffer Cache: Veri dosyalarndan elde edilen veri bloklarn saklar.
Deiiklie urayan bloklar belirli zaman aralnlarnda veri dosyalarna aktarlr.
Redo Log Buffer: Instancen veritabannda yapt deiikliklerin kaydedildii
blgedir. Gerektiinde recovery ileminde kullanlmak zere bu bilgiler belirli
zaman aralklarnda redo log dosyalarna aktarlr.
Shared Pool: En son altrlan sorgu ve veri ktphanesinden en son kullanlan
veri gibi bilgileri saklar.
Large Pool: Backup/Recovery ilemleri ve I/O sunucu ilemleri gibi baz byk
ilemler iin byk miktarda hafza tahsisi gerektiinde kullanlan blgedir.
Java Pool: Java Sanal Makinesi (JVM) tarafndan kullanlan tm oturum-bazl Java
kodu ve verisini saklar.
Streams Pool: Yakalama (capture) ve uygulama (apply) ilemleri iin gerekli olan
bilgileri saklamak iin Oracle Streamleri tarafndan kullanlr.
Process Global Area (PGA)

PGA, bir sunucu ilemi veya bir arkaplan ilemi iin veri ve
kontrol bilgilerini ieren hafza blgesidir.
Birok process tarafndan paylalabilen SGA'nn tersine, PGA
sadece kendisini balatan process tarafndan kullanlabilir.
Hafza yaplarnn bykln belirlemek iin eitli
parametreler kullanlabilir. rnein MEMORY_TARGET
parametresi ile Oracle'n sistem zerinde kullanabilecei
RAM alan belirlenebilir. Bu sayede belirlenen bykl
amayacak ekilde SGA ve PGA bileenlerinin boyutlar
Oracle veritaban tarafndan otomatik olarak deitirilir.
lem (Process) Mimarisi
Kullanc ilemi
Bir kullanc veya ilem Oracle veritabanna baland anda
balatlr
Veritaban ilemleri
Sunucu ilemi: Oracle instance'na balanr ve bir kullanc oturum
atnda balatlr
Arkaplan ilemleri: Bir Oracle instance' balatldnda balatlrlar
Instance
SGA Shared pool

Library
Database cache
Redo log
buffer
buffer
PGA cache Data dictionary
cache
User Server
process process Arkaplan lemleri
Kullanc Sunucu DBWn CKPT LGWR SMON PMON ARCn Others
ilemi ilemi
Veritaban lemleri: Sunucu ve Arkaplan

Server Server Server Server Server

Sunucu lemleri
Server Processes
SGA
Shared pool
Library
Database
Redo log cache
buffer
buffer SGA
cache Data dict.
cache

CKPT RECO PMON SMON DBWn LGWR ARCn Others

Oracle sunucusunda disk girdi/kt ilemleri gibi arkaplan


ilemlerini gerekletiren background processler
Arkaplan lemleri
(Background Processes)
Arkaplan ilemleri kullanc ilemi ile dorudan ilikili deildirler.
Belirli zaman aralklarnda veya belirli koullarn salanmas
durumunda alrlar.
Database Writer (DBWn): Database buffer cachete deien veri
bloklarn veri dosyalarna yazar.
Log Writer (LGWR): Veritabannda deiiklie neden olan DML
komutlarn redo log bufferdan redo log dosyalarna yazar.
System Monitor (SMON): Veritaban aldnda recovery gerekip
gerekmediini aratrr. Veritabannn tutarlln kontrol eder.
Process Monitor (PMON): Processlerden biri sonlanmazsa bu
processin kulland tm kaynaklar temizler.
Checkpoint process (CKPT): Buffer cacheteki deiiklikler veritabanna
kaydedildiinde, veritabannn durum bilgisini gnceller.
Database Writer (DBWn)
Instance
SGA Shared pool

Database
buffer
cache

DBWn

Veri Kontrol Redo log


Dosyalar dosyalar dosyalar
Log Writer (LGWR)

Instance
SGA Shared pool

Redo log
buffer

LGWR

Veri Kontrol Redo log


Dosyalar dosyalar dosyalar
Bir Sorgunun lenmesi

SELECT * Statement
FROM emp
Handle
ORDER BY ename;
Handle

User Server
process process

Results
OK

OK
Parse Execute Fetch
Bir DML fadesinin lenmesi

UPDATE emp 3
Instance
SET sal=sal*1.1
WHERE empno=7369 SGA
4 Shared pool
Library
cache

Server 5 Database
buffer
Redo log Data
buffer dictionary
cache
process cache

Kontrol
dosyalar
Veri Redo log
1 dosyalar
Veritaban
dosyalar
COMMIT lemi

1 Instance
SGA Shared pool

Server Database
Redo log
buffer
process cache
buffer
4
LGWR
3
2
User
Kontrol
process dosyalar
Veri Redo log
dosyalar dosyalar
Veritaban
Veritaban Saklama Mimarisi

Kontrol dosyalar Veri dosyalar Online redo log dosyalar

Parametre dosyas Yedek dosyalar Arivlenmi redo


log dosyalar

ifre dosyas Alert log ve trace


dosyalar
Parametre Dosyas

db_name = VT1
control_files = (c:\data\control01.con, d:\data\control02.con)
db_block_size = 8192
db_block_buffers = 200 # 550 (ORTA), 3200 (BYK)
db_files = 100 # 400 (ORTA), 1000 (BYK)
shared_pool_size = 3000000 # 5000000 (ORTA), 9000000 (BYK)
log_buffer = 8192 # 32768 (ORTA), 163840 (BYK)
processes = 50 # 100 (ORTA), 200 (BYK)
db_file_multiblock_read_count = 8 # 16 (ORTA),32 (BYK)
log_checkpoint_interval = 10000 # 10 saniyede 1 checkpoint
max_dump_file_size = 10240 # en fazla 5MB olabilir
background_dump_dest = (d:\oracle\admin\ORCL\backdump)
user_dump_dest = (d:\oracle\admin\ORCL\userdump)
# audit_trail = true
# timed_statistics = true
...
Trace dosyalar ve Alert log dosyas

Oracle instance' alrken bir hata oluursa, mesajlar ALERT


dosyasna kronolojik olarak yazlr. Veritaban alrken, eer ALERT
dosyas yoksa Oracle bir tane yaratr.
Eer hata bir arkaplan ilemi tarafndan tespit edildiyse, bilgi bir iz
(trace) dosyasna yazlr.
z dosyalar ayn zamanda kullancnn istei ile server ilemleri
tarafndan da yaratlabilir. Bu dosyalara kullanc iz dosyalar (user
trace files) denir. Bu dosyalarn konumu parametre dosyasndaki
USER_DUMP_DEST ile, alabilecei en byk deer ise
MAX_DUMP_FILE_SIZE ile belirlenebilir.
Aadaki komut belirli bir oturum iin bir iz dosyasnn kullanlmasn
salar.
ALTER SESSION SET SQL_TRACE = TRUE;
Mantksal ve Fiziksel Veritaban Yaplar
Mantksal Fiziksel

Database

Schema Tablespace Data file

Segment

Extent

Oracle data
OS block
block
Segment, Extent ve Block
Block: Veri bloklar, Oracle veritabannda verinin sakland en kk yapdr.
Oracle blocklar, iletim sistemi bloklarna eit veya onlarn katlar olabilir.
DB_BLOCK_SIZE parametresi ile bu byklk belirlenebilir.
Extent: Bir extent (uzant), belirli saydaki ardk veritaban bloundan oluur,
bir seferde alnr ve belirli bir tipteki bilgiyi tutmak iin kullanlr. Extentler sadece
bir veri dosyasnda bulunabilirler.
Segment: Segment (blm), belirli bir mantksal yap iin tahsis edilmi
extentler kmesidir. Bir segmentin iindeki tm extentler dolduunda, Oracle
dinamik olarak yeni yer tahsis eder. Bir segment, ayn tablespacee ait olan dosyalar
arasnda bllebilir. Segment tipleri; Table, Index, Temporary ve Rollback.

Segment Extents Data Disk


blocks blocks
Tablespace, ema ve Veri Dosyas
Tablespace: Tablespace ynetimsel ileri kolaylatrmak iin btn uygulama
nesnelerini birlikte gruplar. Kullanclara yer tahsis etmek, verinin ulalabilirliini
kontrol etmek, veri saklanmasn farkl disklere blerek I/O performansn arttrmak,
ksmi backup ve ksmi recovery ilemlerini gerekletirmek gibi kullanm alanlar
vardr. Her tablespace sadece bir veritabanna ait olabilir, ve bir yada daha ok veri
dosyasndan oluur. Veritaban alrken tablespaceler offline konumuna
getirilebilir. Oracle Storage Manager ile tablespace yaratlabilir.
Schema (ema): Bir veritaban kullancsnn sahip olduu veritaban
nesnelerinin (tablo, grnm, index, sequence, sakl yordam, ) kmesidir.
Veri Dosyas: Her tablespace bir yada daha ok veri dosyas ierir. Bir veri
dosyas sadece bir tablespacee ait olabilir. Veritaban yneticisi, bir veri dosyasnn
bykln, o dosyann yaratlmasndan sonra da deitirebilir, veya tablespace
nesnesinin bymesiyle orantl olarak bymesini salayabilir.

USERS tablespace
Data file 1 Data file 2
SYSTEM ve SYSAUX Tablespace'leri

SYSTEM ve SYSAUX tablespace'leri her veritabannda


bulunmak zorundadr (veritaban yaratlrken otomatik olarak
yaratlrlar).
SYSTEM tablespace veri szl tablolar gibi temel verileri
saklar.
Yardmc (auxiliary) bir tablespace olan SYSAUX ise ek
veritaban bileenleri (Enterprise Manager Repository gibi)
ierir.
Veritabannn Yaratlmas

CREATE DATABASE VT1


MAXLOGFILES 32
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXLOGHISTORY 100
LOGFILE
GROUP 1 ('c:\oradb\log1a.rdo','d:\oradb\log1b.rdo') SIZE 1 M,
GROUP 2 ('c:\oradb\log2a.rdo','d:\oradb\log2b.rdo') SIZE 1 M
DATAFILE
'c:\oradb\system01.dbf' size 32M autoextend on
CHARACTER SET WE8ISO8859P9
NATIONAL CHARACTER SET WE8ISO8859P9;
Database Configuration Assistant
Startup ve Shutdown

OPEN
Bu instance iin control
dosyas tarafndan
tanmlanan tm
MOUNT dosyalar ald.

Bu instance iin
control dosyas
ald.
NOMOUNT

Instance
balad.

SHUTDOWN
Shutdown Seenekleri

Shutdown Modu A I T N

Yeni balantlara izin verme

Sessionlarn bitmesini bekleme

Transactionlarn bitmesini bekleme

Checkpoint ile tm dosyalar kapama

Shutdown modu:
A Abort I Immediate
T Transactional N Normal
Dinamik Performans Grnmlerine Eriim

OPEN

Veri szl
(Data dictionary)
MOUNT

Veriyi diskten
okuyan dinamik
performans
NOMOUNT grnmleri

Hafzadan
okunan dinamik
performans
SHUTDOWN grnmleri
Dinamik Performans Grnmlerinden rnekler

V$PARAMETER
V$SGA
SGA V$OPTION
V$PROCESS
V$SESSION
V$VERSION
V$INSTANCE

Control file V$THREAD


V$CONTROLFILE
V$DATABASE
V$DATAFILE
V$DATAFILE_HEADER
V$LOGFILE
Veri Szl
Veri Szl, ilgili veritaban hakknda bilgiler salayan tablolar
ve grnmler ierir. Veritaban kullanclar, yneticileri ve
Oracle sunucusu iin bilgi kayna merkezidir. Bir DDL komutu
altrldnda, veri szl Oracle sunucusu tarafndan
gncellenir. Veri szl SYSTEM tablespaceinde bulunur ve
sahibi SYS kullancsdr.
Veri szl aadaki bilgileri ierir:
Temel tablolar ve veri szl grnmleri
Mantksal ve fiziksel veritaban yaps
simler, tanmlar ve ema nesnelerinin alan tahsis etmesi
Btnlk snrlamalar
Veritaban kullanclar ve yetkileri
zleme (Auditing)
PL/SQL

PL/SQL, Oracle'n normal SQL'e yapt prosedrel


programlama eklentilerinden oluur. SQL'in kullanm
kolayl ve esneklii ile yapsal programlama dillerinin
prosedrel fonksiyonalitesini birletirmitir.
PL/SQL'in u avantajlar vardr:
PL/SQL kodu direkt olarak veritabannda saklanabildii iin
performans ok daha iyidir.
PL/SQL kodu iinde veri eriimi kontrol edilebilir. Bu sayede PL/SQL
kullanclar veriye uygulama gelitiricisinin istedii ekilde ularlar.
Normal SQL'de olduunun aksine cmle cmle yollamak yerine
PL/SQL bloklar halinde yollanabilir, bu da kompleks ilemlerde
gereksiz network trafii yaplmasn engeller.
Oracle Developer Suite

Oracleda veritabannn ve onu kullanan eitli uygulamalarn


gelitirilmesine yardmc olan aralarn bulunduu rndr.
(Eski isimleri: Oracle Power Objects, Oracle Developer 2000).
Bu rnde bulunan aralardan bazlar:
Oracle JDeveloper
Oracle Forms
Oracle Reports
Oracle Designer
Oracle Discoverer
Oracle Software Configuration Manager
Oracle Business Intelligence Beans
Automatic Storage Management

Tanabilir ve yksek performansl dosya sistemi


Oracle veritaban dosyalarn idare eder.
Yk dengelemek iin veriyi
diskler arasnda paylatrr. Application

Diskler arasnda eleme Database


(mirroring) yapan entegre File
bir mekanizmaya sahiptir. system
ASM
Volume
Saklama idaresi ile ilgili birok manager
sorunu zer
Operating system

You might also like