Ders 9 - Oracle`ın Yapısı ve Bileşenleri

Download Report

Transcript Ders 9 - Oracle`ın Yapısı ve Bileşenleri

ORACLE
• Oracle, büyük miktarda veriyi çok kullanıcılı ortamda,
birçok kullanıcının aynı anda aynı veriye erişmesine
izin verecek şekilde idare edebilen bir ilişkisel veri
tabanı yönetim sistemidir (İVTYS-RDBMS).
• Yüksek performansı, yetkisiz kullanıcıların girişlerini
engellemesi ve beklenmedik durumlarda oluşabilecek
veri kaybını engelleyecek çözümler sunması en
önemli özelliklerinden bazılarıdır.
• Sadece Windows işletim sistemi ile değil, farklı işletim
sistemleri ile de (Özellikle Unix&Linux platformları ile)
çalışabilmesi nedeniyle MS SQL Server’a göre
kullanım oranı daha yüksektir (Tüm dünyada %48’lik
pazar payı ile en çok kullanılan İVTYS’dir. *)
Veritabanı Yapısı
Veritabanı
Tablespace
Mantıksal Segment
Veri
Dosyası
Fiziksel
Extent
Oracle
block
O/S Block
Process’ler ve Instance
Instance
SGA
Shared pool
Server
process
PGA
User
process
DBWn
LGWR
Kontrol
dosyaları
Online
redo log
dosyaları
Veri
dosyaları
Veritabanı
Oracle Hafıza Mimarisi
Server
process 1
Server
process 2
PGA
Shared
SQL area
Library
cache
Data Dictionary
cache
Other
Shared pool
Redo log
buffer
Database buffer
cache
Java
pool
Background
process
PGA
Streams
pool
I/O Buffer
Free
memory
Response
queue
Request
queue
Large pool
PGA
SGA
Veritabanı Saklama Mimarisi
Kontrol dosyaları
Veri dosyaları
Online redo log dosyaları
Parametre dosyası
Yedek dosyaları
Arşivlenmiş 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 (BÜYÜK)
db_files = 100
# 400 (ORTA), 1000 (BÜYÜK)
shared_pool_size = 3000000
# 5000000 (ORTA), 9000000 (BÜYÜK)
log_buffer = 8192
# 32768 (ORTA), 163840 (BÜYÜK)
processes = 50
# 100 (ORTA), 200 (BÜYÜK)
db_file_multiblock_read_count = 8
# 16 (ORTA),32 (BÜYÜK)
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'ı çalışırken bir hata oluşursa, mesajlar ALERT
dosyasına kronolojik olarak yazılır. Veritabanı açılırken, eğer
ALERT dosyası yoksa Oracle bir tane yaratır.
• Eğer hata bir arkaplan işlemi tarafından tespit edildiyse, bilgi
bir iz (trace) dosyasına yazılır.
• İz dosyaları aynı zamanda kullanıcının isteği ile server işlemleri
tarafından da yaratılabilir. Bu dosyalara kullanıcı iz dosyaları
(user trace files) denir. Bu dosyaların konumu parametre
dosyasındaki USER_DUMP_DEST ile, alabileceği en büyük
değer ise MAX_DUMP_FILE_SIZE ile belirlenebilir.
• Aşağıdaki komut belirli bir oturum için bir işaret dosyasının
kullanılmasını sağlar.
– ALTER SESSION SET SQL_TRACE = TRUE;
Arkaplan İşlemleri
Server
Server
Server
Server
Server
Sunucu
process’leri
SGA
Database
buffer
cache
CKPT
RECO
Shared pool
Redo log
buffer
Library
cache
SGA
Data dict.
cache
PMON
SMON
DBWn
LGWR
Arkaplan (background)
Process’leri
ARCn
Others
Database Writer (DBWn)
Instance
SGA
Shared pool
Database
buffer
cache
DBWR
Veri
Dosyaları
Kontrol
dosyaları
Redo log
dosyaları
Log Writer (LGWR)
Instance
SGA
Shared pool
Redo log
buffer
LGWR
Veri
Dosyaları
Kontrol
dosyaları
Redo log
dosyaları
Bir Sorgunun İşlenmesi
SELECT *
FROM emp
ORDER BY ename;
Statement
Handle
Handle
User
process
Server
process
Results
OK
OK
Parse
Execute
Fetch
Bir DML İfadesinin İşlenmesi
UPDATE emp
SET sal=sal*1.1
WHERE empno=7369
Server
process
3
Instance
SGA
4
5
Shared pool
Library
cache
Database
buffer
cache
Redo log
buffer
Data
dictionary
cache
2
1
Veri
dosyaları
Kontrol
dosyaları
Veritabanı
Redo log
dosyaları
COMMIT İşlemi
1
Instance
SGA
Server
process
4
Database
buffer
cache
Shared pool
Redo log
buffer
LGWR
3
2
User
process
Veri
dosyaları
Kontrol
dosyaları
Veritabanı
Redo log
dosyaları
Veritabanının Yaratılması
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
MOUNT
Bu instance için
control dosyası
tarafından tanımlanan
tüm dosyalar açıldı.
Bu instance için
control dosyası
açıldı.
NOMOUNT
Instance
başladı.
SHUTDOWN
Shutdown Seçenekleri
Shutdown Modu
A
I
T
N
Yeni bağlantılara izin verme
Session’ların bitmesini bekleme
Transaction’ların bitmesini bekleme
Checkpoint ile tüm dosyaları kapama
Shutdown modu:
A
Abort
I
Immediate
T
Transactional
N
Normal
Dinamik Performans
Görünümlerine Erişim
OPEN
Veri sözlüğü
(Data dictionary)
MOUNT
NOMOUNT
SHUTDOWN
Veriyi diskten
okuyan dinamik
performans
görünümleri
Hafızadan
okunan dinamik
performans
görünümleri
Dinamik Performans
Görünümlerinden Örnekler
SGA
Control file
V$PARAMETER
V$SGA
V$OPTION
V$PROCESS
V$SESSION
V$VERSION
V$INSTANCE
V$THREAD
V$CONTROLFILE
V$DATABASE
V$DATAFILE
V$DATAFILE_HEADER
V$LOGFILE
Veri Sözlüğü
Veri sözlüğü aşağıdaki bilgileri içerir:
• Mantıksal ve fiziksel veritabanı yapısı
• İsimler, tanımlar, ve şema nesnelerinin
alan tahsis etmesi
• Bütünlük sınırlamaları
• Veritabanı kullanıcıları ve yetkileri
• İzleme (Auditing)
PL/SQL
PL/SQL, Oracle'ın normal SQL'e yaptığı prosedürel
programlama eklentilerinden oluşur. SQL'in kullanım
kolaylığı ve esnekliği ile yapısal programlama dillerinin
prosedürel fonksiyonalitesini birleştirmiştir. Veritabanı
uygulaması dizayn ederken PL/SQL'in şu avantajları vardır:
• PL/SQL kodu direkt olarak veritabanında saklanabildiği
için performansı çok daha iyidir.
• PL/SQL kodu içinde veri erişimi kontrol edilebilir. Bu
sayede PL/SQL kullanıcıları veriye uygulama
geliştiricisinin istediği şekilde ulaşırlar.
• Normal SQL'de olduğunun aksine cümle cümle yollamak
yerine PL/SQL bloklar halinde yollanabilir, bu da
kompleks işlemlerde gereksiz network trafiği yapılmasını
engeller.
Oracle Developer Suite
Oracle’da veritabanının ve onu kullanan çeşitli
uygulamaların geliştirilmesine yardımcı olan
araçların bulunduğu üründür. (Eski isimleri:
Oracle Power Objects, Oracle Developer 2000).
Bu üründe bulunan araçlardan bazıları:
• Oracle JDeveloper
• Oracle Forms
• Oracle Reports
• Oracle Designer
• Oracle Discoverer
• Oracle Software Configuration Manager
• Oracle Business Intelligence Beans
Automatic Storage Management
• Taşınabilir ve yüksek performanslı dosya sistemi
• Oracle veritabanı dosyalarını idare eder.
• Yükü dengelemek için veriyi
diskler arasında paylaştırır.
• Diskler arasında eşleme
(mirroring) yapan entegre
bir mekanizmaya sahiptir.
• Saklama idaresi ile ilgili birçok
sorunu çözer
Application
Database
File
system
Volume
manager
ASM
Operating system