SlideShare uma empresa Scribd logo
1 de 25
ORACLE MİMARİSİ

Oracle Veritabanı, birim olarak kabul edilen verilerin bir araya toplanmasından oluşur. Veritabanının amacı
birbiriyle ilişkili bilgilerin depolanması ve sorgulanmasıdır. Bir veritabanı sunucusu bilgi yönetimiyle ilgili
problemleri çözmede anahtar roldedir. Genel olarak bir sunucu, büyük miktardaki veriye çok kullanıcılı bir
ortamda, bir çok kullanıcının aynı anda aynı veriye ulaşabilmelerini güvenilir bir şekilde sağlar ve bunu aynı
zamanda yüksek bir performansla gerçekleştirir. Bir veritabanı sunucusu aynı zamanda izinsiz erişimi
engeller ve hata durumundan kurtulmak için gereken en uygun çözümleri sağlar.
Veritabanı fiziksel ve mantıksal olmak üzere iki yapıdan oluşur. Fiziksel ve mantıksal yapı biribirinden ayrı
olduğu için verinin fiziksel olarak saklanma şekli mantıksal yapıya erişimi etkilemez.

Mantıksal Veritabanı Yapıları

Oracle veritabanındaki mantıksal yapılar şema nesneleri, veri blokları, extentler, segmentler ve
tablespacelerdir.

Şemalar ve Şema Nesneleri

Şema, veritabanı nesnelerinin oluşturduğu topluluktur. Bir şemanın sahibi bir veritabanı kulanıcısıdır ve bu
şema o kullanıcıyla aynı isme sahiptir. Şema nesneleri direk olarak veriyle bağlantılı olan mantıksal
yapılardır (Şema ve tablespace arasında bir bağlantı yoktur. Aynı
şemadaki nesneler farklı tablespacelerde bulunabileceği gibi tablespacelerde farklı şemalara ait nesneler
bulunabilir.). Başlıca şema nesneleri şunlardır:
Tablolar : Oracle veritabanındaki en temel veri saklama birimidir. Veritabanı tabloları, kullanıcılar
tarafından ulaşılabilecek tüm veriyi bulundururlar. Her tablonun kolonları ve satırları vardır. Oracle 256
veya daha az kolon içeren bir veritabanı tablosunun her satırını bir veya daha fazla satır parçası halinde
saklar. Örnek olarak, çalışanların bilgilerini tutan tabloda, çalışan numarası diye bir kolon varsa, o
kolondaki her satır bir çalışanın çalışan numarasını tutar.
Viewler : Viewler bir veya birden fazla tablo yada view'deki verinin özelleştirilmiş bir gösterim şeklidir. Bir
view aynı zamanda saklanmış bir sorgu olarak da değerlendirilebilir. Viewlar aslında veri içermezler. Bunun
yerine verilerini kendilerine temel teşkil eden ve viewın temel tabloları olarak adlandırılan tablolardan
çıkartırlar. Tablolar gibi viewlerin de bazı kısıtlamalar olmakla birlikte verisi sorgulanabilir, değiştirilebilir,
silinebilir ve yeni veri girilebilir. Viewler üzerinde yapılan her işlem aslında viewın temel tablolarını etkiler.
Viewler tablonun önceden belirlenmiş satır ve kolonlarına erişimi kısıtlayarak, tablo güvenliğinde ekstra bir
seviye sağlar.
İndeksler : İndeksler tablolarla ilişkilendirilen opsiyonel yapılardır. Data erişim performansını arttırmak
için yaratılırlar. Bir Oracle indeksi tablo verisine direk bir erişim yolu sağlar. Oracle bir isteği cevaplarken,
istenilen satırları daha hızlı bir şekilde bulmak için tablo ile ilişkilendirilmiş olan indekslerin bir kısmını yada
hepsini kullanabilir. İndeksler, uygulamalar bir tablonun satırlarının belli bir bölümünü veya belli bir satırı
sorguladıklarında işe yarar (Mesela, maaşı 1 Milyar'dan yüksek olan tüm çalışanlar). İndeksler bir tablonun
bir veya
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.

User process, server process CPU tarafı



Her gelen user processine karşılık servr processi oluşuyor.PGA gelen bu processleri sıraya
sokuyor.Sonrada SGA a yolluyor.İşlem yapılınca SGA PGA ya yolluyor.Oda user a dönüyor.


Oracle Server : Bütün Database dosyları,arka plan prosesleri ve diğer yapıların bir arada durduğu
sistemin adıdır.Server 1 veya daha fazla veritabanını birlikte tutar.

Oracle İnstance : İnstance dediğimiz kavram veritabanı için memory yapıları ve arka plan proseslerinin
bir arada durduğu yapıyı anlatmaktadır.Her veritabanı için bir instance yaratılmaktadır.Veritabanı
kapatıldığında instance ta kapanmaktadır.Yani kısaca instance database ve prosesler için birleştirilmiş
yapıyı oluşturmaktadır.

Not:İnstance startup aşamasında başlıyor.Veri tabanı=İnstance
Serverda diyelim ki 2 veritabanı var.İki instance var demektir.
SET ORACLE_SID=TEST1 (Windowsta)
EXPORT ORACLE_SID=TEST1 (Linuxta)

Oracle Database : Database dediğimiz kavram ise tüm hayati bilgilerimizi içinde muhafaza eden
,gerekitğinde ulaşabildiğimiz İnsatnce ve Server‟ın bir parçasıdır.

Şimdi bu yapılara daha detaylı bakacak olursak;

ORACLE SERVER

Oracle Server bahsedildiği gibi sistemin genel mimarisini oluşturmaktadır.

Oracle server bir veya birden fazla makine üzerinde çalışabilmektedir.Bu mimari Client-application
Server-Database,Client – Server,Host Based olabilmektedir.




Client-Application Server-Server: (Three-tier) Kullanıcılar kendi bilgisayarlarından Application
Server‟a erişirler buradan yapılan ayarlama ve yetkilendirme ile Database‟e erişim sağlanabilmektedir.

Client-Server: (Two-tier) Kullanıcılar kendi bilgisayarlarından direk olarak uzaktaki veritabanına
erişebilmektedirer.

Host-Based: Bu yapıda ise kullanıcılar kendi bilgisayarlarından direk kendi makinelarında kurulu olan
veritabanına ulaşabilmektedirler.

ORACLE INSTANCE

Database açıldığında otomatik olarak başlamaktadır.Oracle‟ı ilgilendiren Memory ve Proses parçalarının
tamamını oluşturmaktadır.
İleride göreceğimiz SGA ve PGA database‟in instance‟ını oluşturmaktadır.

Client tarafında bir user Oracle Server ile ilitişim kurduğunda otomatik olarak bir session
yaratılmaktadır.




Session dediğimiz kavram kullanıcın kullandığı bir programla bu SQL PLUS yada herhangi bir
development tool‟u olabilir.Aradaki bağlantıdan dolayı Session başlamış olur.


ORACLE DATABASE

Oracle Database dediğimiz kavram ise sistemde bilgilerimizin tutulduğu file‟lar topluluğudur.
Şekilde görüleceği gibi 3 tip file yapımız vardır.

Datafile lar bizim sistemimiz ile ilgili verileri tutmaktadır.Örneğin Tablolar,Viewlar ve indexler bu yapıda
muhafaza edilmektedir.

Redologlar ise yaptığımız transcationları tutmaktadır.Commit edilmiş edilmemiş her bilgi bu yapıda
durmaktadır.Rollback segmentle karıştırılmamalıdır.

Control file‟lar ise database‟in genel yapısını tutan ifadelerdir.Tablesapce‟lerin uzunluğu,adı yapısı ve
diğer database‟i ilgilendiren her yapı burada muhafaza edilmektedir.

Parametre file sistemin daha verimli çalışması için gerekli olan parametreleri tutmaktadır.SPFİLE ve
PFİLE olarak 2 farklı versiyonu vardır.

Password file kullanıcıların sisteme otantike olmaları için vardır.Burdaki bilgilerden örneğin kimin
database‟i açıp kapatamıyacağını görürüz.

Arşiv Redologlar redologların depolanmış halidir.Normalde Redologlar büyüklükleri kadar ancak
transaction‟u tutmaktadırlar.Bu şekilde dolan redologlar arşiv dosyası olarak saklanabilmektedirler.




Fiziksel Yapı
Control file,data file ve redologlar database‟in fiziksel yapısını oluşturmaktadırlar.




Memory Yapısı

SGA ve PGA dediğimiz yani sistem tarafı ve kullancı tarafını oluşturan memory yapısıdır.

SGA instance başlatıldığında oluşmaktadır.PGA ise Kullancı tarafından gelen User Prosesine karşılık
oluşturlan Server Prosesi zamanında oluşmaktadır.

SGA(System Global Area)

         SGA, tek bir Oracle örneğinin ihtiyaç duyduğu veri ve kontrol bilgilerinin tutulduğu paylaşıma
açık bellek alandır. Oracle örneği ilk açıldığı sırada tahsis edilir ve kapatılırken sisteme geri verilir. Her
örneğin kendine ait bir SGA‟sı vardır. Sisteme bağlı olan kullanıcılar SGA‟daki bilgiyi paylaşırlar. En iyi
performansı sağlaması için SGA‟nın ana bellek boyutlarını aşmama koşuluyla olabildiğince büyük olması
gerekir. Bu sayede bellekte daha fazla veri tutulabilir, bu da disk okuma yazmasını azaltır. SGA‟da
tutulan bilgiler tiplerine göre farklı alt bellek yapılarında saklanır.

SGA‟nın büyüklüğü SGA_MAX_SIZE ile belirlenebilir.

SQL > SHOW SGA;

Total System Global Area 36437964 bytes
Fixed Size 6543794 bytes
Variable Size 19521536 bytes
Database Buffers 16777216 bytes
Redo Buffers 73728 bytes

SGA‟nın yapısını ise DB_CACHE_SIZE,LOG_BUFFER,SHARED_POOL_SIZE ve LARGE_POOL_SIZE
oluşturmaktadır.
SHARED POOL

         Paylasilmis SQL Alani, Oracle „in özel SQL deyimlerini çalistirmak için kullandigi bilgileri içerir.
Bir SQL sorgusu isletilmeden önce ayristirilir ve bu sorgunun çalistirilmasi için bir çalisma plani
hazirlanir. Isletilen sorgular bu alanda saklanir. Ayni sorgu birkez daha isletilmek istenirse bu çalistirma
plani dogrudan uygulanabilir. Büyüklüğü SHARED_POOL_SIZE parametresi ile belirlenir.Varsayılan
olarak 32 bit sistemler için 8MB, 64 bit sistemler için 64MB‟dır.
Paylasilmis SQL Alani, SGA içindeki Paylasilmis Havuz „un bir parçasidir.
Paylasilmis Havuz;
SQL ve PL/SQL deyimlerini
SQL ve PL/SQL deyimlerinin ayristirilmis hallerini
SQL ve PL/SQL deyimleri için çalistirma planlarini
veri sözlügü (data dictionary) önbellegini (cache) içerir.

Paylaşılmış havuz anlamına gelir.SQL kodlarını parse eder ve saklar.Her istek gelince parse etmeye
uğraşmaz.Sık kullanılan sorguları daha hızlı getirmenin mantığı budur.SGA nın %10 kadar verilmelidir.

SQL > ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;

Burada dikkat edilmesi gerek ayarlanan bu büyüklük SGA nın büyüklüğünü etkileyeceği için asla
toplam SGA değeri SGA_MAX_SIZE‟ı aşmamalıdır.

LİBRARY CACHE

Library Cache Shared Pool‟un bir parçasıdır.Sık kullanılan SQL ve PL/SQL cümlelerinin durduğu yerdir.

Yönetimi LRU(Last Recently Used) algoritmasına göre olmaktadır.

Shared SQL ve PL / SQL ifadelerini saklamaktadır.

SQL ve PL/SQL kodlarını parçalayıp tutar.

DATA DİCTİONARY CACHE

“Data Dictionary” bilgileri Oracle tarafından çok sık kullanıldığından hafızada tutulması mantıklıdır.İşte
bu bilgilerin hafıza da tutulduğu yere “dictionary cache” denir.Bu bilgiler bir de “library cache”‟te de
tutulmaktadır.Her iki alana tüm kullanıcı işlemleri ulaşmaktadır.

Hem Library Cache hemde Dictionary Cache‟in büyüklüğünü değiştirmek için SHARED_POOL_SIZE ile
oynanmalıdır.

Oracle in kullandığı sql ve pl / sql parçacıklarını tutar.

DATABASE BUFFER CACHE

Datafile‟dan okunan veriler SGA içersinde bu alanda tutulur. Mantıksal olarak kendi içinde parçalara
ayrılarak kullanılır.Veritabanı üzerinde işlem yapan tüm kullanıcılar burayı kullanırlar.Bu durumda
yapılan işlemlerin belli bir sistematikte yapılması gerekmektedir.Bunu sağlamak için database buffer
cache‟te Write List ve en son kullanılanları tutan liste Last Recenlty Used-LRU- list olmak üzere 2 ayrı
liste tutulur.
Write List , dirty buffer olarak adlandırılan üzerinde değişiklik yapılmış ama datafile‟a henüz yazılmamış
alanları tutar.LRU listesi ise boş alanları ,henüz write list‟e gönderilmemiş dirty buffer alan bilgilerini ve
pinned buffer denilen o an işlem gören alanları tutar.
Kullanıcının veri okuma isteği olduğunda önce bu cache‟te varmı diye bakılır.Var ise veri bellekten direk
olarak okunur.Eğer yok ise veri ilgili datafile‟ın bloğundan okunur.Ama bunu yapabilmesi için önce
hafızada boş alan bulunması gerekir.Bunun için LRU listesine bakılır. Boş bir alan bulunana ya da
tanımlı bir eşik değere ulaşıncaya kadar arama sürer. LRU listesinde Dirty buffer bulunca bu alan write
liste‟e alınır ve arama işlemi sürdürülür, boş alan bulununca burası LRU listesinin en sonuna atılarak
ilgili veri bulunan boş alanına yazılır.Boş alan bulunamadığı esnada belirlenen eşik değerine ulaşılınca
LRU listesinde arama bitirilir ve DBW0 background process‟ine bir takım dirty buffer alanını diske
yazması için sinyal gönderilir.




DB_BLOCK_SIZE parametresi ile blokların büyüklüğü hakkında bilgi edinebiliriz.
Bu parametre sonradan değişmemekte database oluşturulurken ayarlanmaktadır.

Bunun dışında,

DB_CACHE_SIZE = Default olarak cache‟in buffer size‟ını vermektedir.Sıfır verilmemelidir.
DB_KEEP_CACHE_SIZE = blokların default olarak ne kadar tutulacağını verir.
DB_RECYCLE_CACHE_SIZE = Kullanılamayn blokların boyutunu tutmaktadır.

parametreleri mevcuttur.

Sql den dönen datayı tutar.Sorgu tekrar çalıştırıldığında datafile a gitmeye gerek kalmadan buradan
okur.


SQL > ALTER SYSTEM SET DB_CACHE_SIZE = 96M; ile büyüklük değiştirilebilmektedir.

REDOLOG BUFFER CACHE

INSERT,UPDATE,DELETE,CREATE,ALTER ve DROP işlemleri sonucu meydana gelen değişiklikleri
hafızada tutulduğu kısımdır.Yapılan değişikliklerin geri alınmasında ve gerektiğinde “recovery” işlemleri
için kullanılır.Sıralı ve doldugunda başa dönecek şekilde bir yapısı vardir.
Bu alanda tutulan bilgiler “Log Writer Process(LGWR)” ile redo log dosyalarına yazılır.LOG_BUFFER
parametresi redo log alanının büyüklüğünü belirler.Büyük değer alması I/O mailiyeti düşürür.

Yapılan her transaction ı tutar.Elektrik kesintisi olduğunda bilgi burada durur.

LARGE POOL

Veri yedekleme ve kurtarma, sunucu okuma yazma işlemleri, oturum belleği ve birden fazla veritabanı
üzerinde çalışan hareketler(Oracle XA) gibi işlerde kullanmak üzere tahsis edilen opsiyonel bir alandır.
Üzerinde durulması gereken asıl yaptığı iş Veritabanı üzerinde yedekleme ve kurtarma operasyonlarına
zemin oluşturmasıdır.Boyutu LARGE_POOL_SIZE parametresi ile belirlenir.

SQL > ALTER SYSTEM SET LARGE_POOL_SIZE = 64M;

Oracle üzerinde backup ve recovery operasyonlarında aktif olarak yer alan RMAN(Recovery Manager)
Large Pool parametresi ile beraber BACKUP_DISK_IO= n ve BACKUP_TAPE_IO_SLAVE = TRUE
parametreleri set edilebilir.

JAVA POOL

Java kodlarının veritabanı içerisinde anlamlandırılması için kullanılmaktadır.PL/SQL kodlarına benzer
biçimde database içinde saklanmaktadır.Boyutu JAVA_POOL_SIZE ile belirlenmektedir.

PGA(Program Global Area)

PGA, sunucu işlemleri için gereken veri ve kontrol bilgilerini tutmak için tahsis edilen tampon bellektir.
Oracle tarafından bir sunucu işlemi başladığında otomatik olarak tahsis edilir. İçinde tutulacak bilgi
Oracle konfigürasyonuna bağlıdır.
PGA tarafında proses mantığında istekte bulunan User Proses buna karşılık gelen Server tarafında
Server Proses ve İnstance başladığında işlem gören Background prosess mevcuttur.

Parametrenin büyüklüğü pga_aggregate_target ile belirlenir.

USER PROSESS

User Proses Oracle Server ile iletişim kuran bir program,Oracle Client yada SQL PLUS command‟ı
olabilir.




User Prosess‟i Server Prosess‟i ile iletişim kurduğunda bir session açılır ve işlemler bunun üzerinden
yürür.

SERVER PROSESS

User Proses‟ine karşılık gelen prosestir.Gelen istekle beraber Oracle Server tarafı ile bağlantı kurar.
İleride göreceğimiz gibi Dedicated yada Shared olabilmektedir.
BACKGROUND PROSESS

Bu prosesler fiziksel yapı ve memorysel yapı arasında çalışırlar ve çeşitli işler yaparlar.Bunların bikaç
tanesine bakacak olursak.

DBWR(Database Writer)
DBWR görevi, kullanici görevlerinin her zaman bos bellek alanu bulabilmeleri için database buffer
cache „i yönetir. degisiklige ugramis tüm verileri veri kütüklerine yazar. Yakin zamanda kullanilan veri
bloklarini bellekte tutmak için LRU (Least Recently Used) algoritmasini kullanilir. Giris/çikis islemlerini
iyilestirebilmek için bazi yazma islerini erteler.




DBWR şu durumlarda aktif olur.

•Incremental yada normal checkpoint
• Bozuk data bloklar eşik değeri eriştiklerinde
• Bir proses boş blok aradığında ama bulaadığında
• Zaman aşımı gerçekleştiğinde
• RAC kontrolünde
• Tablepsace Online yada Offline olduğunda.
• Tablespace Read Only moduna geldiğinde.
• Tablonun düşürülmesi yada Truncate edilmesinde.
• ALTER TABLESPACE tablespace name BEGIN BACKUP komutu çalıştığında
LGWR(LOG WRİTER)
LGWR ,redo log buffer „larini su durumlar olustugunda diske yazar;
commit görüldügünde ,
redo log buffer dolulugu esik degerine ulastigi zaman.
DBWR checkpoint için buffer bloklarin temizlemeye gerek duyarsa ,
time-out görülürse ,
Her Oracle instance „i için bir tane LGWR görevi vardir. Bir transaction redo log kütügüne islenmeden
commit edilmis sayilmaz. DBWR görevi, veri bloklarini veritabanina geri yazmadan önce yapilan
degisiklikleri korumak amaciyla LGWR görevine redo log buffer „larini bosaltmasi sinyalini gönderir.




SMON (System Monitor)
-Değişen loglar için Rollforward ,commit edilmemiş datalar için Rollback yapar
- Otomatic instance kurtarmayi gerçeklestirir.
- Geçici segment alanini geri elde eder.
- Kontrol kütügünün sürekliligini saglar.
- Sistemde kullanilabilir durumdaki serbest alanin kaydini tutar.
PMON (Process Monitor)

- Anormal bir sekilde kesilen baglantilari temizler.
- Commit edilmemis degisiklikleri eski haline getirir (rollback).
- İşletimi kesilen görevin tuttugu kilitleri kaldirir.
- Çakilan görev için ayrilan SGA kaynaklarini serbest birakir.
- Kilitlenmeleri (deadlock) otomatik olarak yakalar ve islemi geri döndürerek (transaction rolling back)
çözümler.




CHECK POİNT(CKPT)

Checkpoint görevi, LGWR üzerindeki yükü azaltmak için kullanilir.CheckPoint anında DBWn prosesi
işaretlenir.Datafile Header Checkpint anında update edilir.Aynı şekilde Control file larda Check Point
anında update edilir.
Arcn (Archiver)

ARCH görevi aslinda seçimlik bir arka plan görevi olmasina ragmen bir çok sistem için özellikle tavsiye
edilir. Eger bu görev çalistiriliyorsa veritabani ARCHIVELOG kipinde çalisiyor demektir. Bu seçenek;
tablespace „lerin çevrim-içi (on-line) yedeklenmesine
medya failure „dan çevrim-içi kurtarmaya ,
günlük kütüklerinin otomatik olarak arsivlenmesine izin verir.
ARCH görevi, günlük kütüklerinin kopyalarini, yerleri daha önce belirlenmis disk ya da teyp birimleri
üzerine çikarir.




LOGICAL YAPI

Oracle‟ın logical yapısı hiyerarşik olarak Tablespace,bunun altında Segments bunun altında Extents
bunun altında Bloklardan oluşur.




Veri blokları, extentler ve segmentlerden oluşan mantıksal saklama yapıları sayesinde Oracle'ın disk
alanı üzerinde ayrıntılı bir kontrolü vardır.
Oracle Veri Blokları : Veri blokları, Oracle veritabanında verinin saklandığı en küçük yapıdır. Bir veri
bloğu, fiziksel veritabanı alanında belirli sayıdaki byte'a karşılık gelir. Standard blok büyüklüğü
DB_BLOCK_SIZE başlangıç parametresiyle belirlenir.

Extentler : Mantıksal veritabanı alanındaki bir sonraki seviye extentlerdir. Bir extent, belirli sayıdaki
ardışık veritabanı bloğundan oluşur, bir seferde alınır ve belirli bir tipteki bilgiyi tutmak için kullanılır.

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:

Veri Segmenti : Her kümelenmemiş tablonun bir segmenti vardır. Tablonun bütün verisi, veri
segmentinin extentlerinde tutulur. Bölümlenmiş tablolarda, her parça için bir veri segmenti bulunur.
Her küme için bir veri segmenti vardır. Kümedeki her tablonun verisi kümeye ait olan veri segmentinde
tutulur.

İndeks Segmenti : Her indeksin kendi verisinin tutulduğu bir indeks segment vardır. Bölümlenmiş bir
indeksin her bölümüne ait bir indeks segment vardır.

Temporary segment : Temporary segmentler bir SQL cümlesinin işini tamamlamak için geçici bir
alana ihtiyaç duyulduğunda Oracle tarafından yaratılır. SQL cümlesinin çalıştırılması tamamlandığında
temporary segment yeniden kullanılabilmesi için sisteme geri verilir.

Rollback Segment : "Automatic Undo Management" modundayken, veritabanı sunucusu
tablespaceleri kullanarak undo alanını yönetir. "Manual Undo Management" modundayken, veritabanı
yöneticisi tarafından undo bilgisini geçici olarak tutması için rollback segmentler yaratılır. Rollback
segmentlerdeki bilgi veritabanının kurtarılması sırasında kullanılır.
ORACLE SERVER MİMARİSİ VE ÇALIŞMA ŞEKLİ

ORACLE UNİVERSAL İNSTALLER

Oracle Server için Yazılım eklemek,upgrade etmek ve mevcut bir komponent‟i kaldırmak için kullanılır.

Java tabanlı bir yazılımdır

Windows Sistemlerde Programlar Altında bulunur,




Yada yeni bir kurulum yapılacaksa

CD „nin içinden Setup Dosyası başlatıldığında başlar.
Unix Sistemlerde ise komu satırından aşağıdaki komut yazıldığında başlatılır,

$ ./runInstaller

Kurulumun yapılabilmesi için Grafiksel uygulamların düzgün çalışıyor olması gerekmektedir.
Kurulum kesinlikle Oracle User‟ı ile olmalıdır.

Eğer kurulumu İnteractive modda yapmak istemiyorsak,

$./runInstaller -responsefile FILENAME [-silent] [-nowelcome]

Komutu kullanılmalıdır.

Örnek bir reponse file şu şekilde olabilir.

[General]
RESPONSEFILE_VERSION=1.0.0.0.0
[Session]
UNIX_GROUP_NAME="dba"
FROM_LOCATION="/u01/stage/products.jar"
ORACLE_HOME="/u01/app/oracle/ora9i"
ORACLE_HOME_NAME="Ora9i"
TOPLEVEL_COMPONENT={"oracle.server", "9.0.1.0.0"}
SHOW_COMPONENT_LOCATIONS_PAGE=false
SHOW_SUMMARY_PAGE=false
SHOW_INSTALL_PROGRESS_PAGE=false
SHOW_REQUIRED_CONFIG_TOOL_PAGE=false
SHOW_OPTIONAL_CONFIG_TOOL_PAGE=false
SHOW_END_SESSION_PAGE=false
NEXT_SESSION=true
SHOW_SPLASH_SCREEN=true
SHOW_WELCOME_PAGE=false
SHOW_ROOTSH_CONFIRMATION=true
SHOW_EXIT_CONFIRMATION=true
INSTALL_TYPE="Typical”
s_GlobalDBName="u01.us.oracle.com"
s_mountPoint="/u01/app/oracle/ora9i/dbs"
s_dbSid="db09"
b_createDB=true

DATABASE CONFIGURATION ASSISTANT

Bu tool ise yeni bir database yaratmak,mevcut bir database‟i konfigüre etmek,yeni bir t

Mplate yaratmak yada mevcut bir database i silmek için kullanılır.

Windows sistemlerde yine aynı şekilde programlar altındadır.
Unix Sistemlerde ise,

$ DBCA komutu çalıştıurıldığında açılmaktadır.


DATABASE ADMINISTRATION USERS

Veritabanı ilk kurulduğunda iki tane default sistem kullanıcısı yaratılmaktadır.Bunlardan biri SYS diğeri
ise SYSTEM‟dir.

Bilinmesi gereken tek olay SYS kullanıcısı Veritabanını açıp kapayabiliyorken SYSTEM user‟ı bunu
yapamamaktadır.

SQL PLUS

Bu tool ise Oracle kurulumu ile beraber gelen üzerinde sorgulamalar ve yönetim yapabileceğimiz bir
uygulamadır.Database‟i bu tool ile kapatabilir ve açabiliriz.


CMD > SQLPLUS /NOLOG

SQL> connect user/sifre;

CMD > SQLPLUS deneme/deneme

CMD > SQLPLUS sys/deneme as sysdba;

CMD > SQLPLUS user/sifre@DB
ORACLE ENTERPRISE MANAGER

Oracle üzerinde tüm yönetimsel işleri yaptığımız toldur.10G ve öncesi sürümlerde JAVA tabanlı bir
uygulamaydı.Ama 10G ile birlikte Web Based bir uygulamadır.
Web tabanlı bu konsolu açmak için console‟dan birkaç komut yzamak gerekebilir.

CMD > emctl start dbconsole     açmak için

CMD > emctl stop dbconsole     kapamak için
ORACLE INSTANCE YÖNETİMİ

Oracle Instance dediğimiz kavramın nasıl başladığı nelerden etkilendiği yada işletim sisteminin memory
alanından nasıl giderildiği gibi bilgileri göreceğiz.

Instance başlamadan önce Parametre file dediğimiz bir dosyadan veritabanı hakkında bilgiler edinir.Ve
burada verilen bilgilere göre Oracle Sisteme yüklenir.




PARAMETRE FILE (PFILE ve SPFILE)

Veritabanı ve çalışan instance ile ilgili konfirigasyon parametrelerini içerir.”init.ora” bir parameter
file‟dır. init.ora server tarafta bulunur.Ancak client‟tan (uzak erişim) ile veritabanın ulaşmak için
gereklidir, static‟tir.Gerektiğinde (text dosya olduğundan) elle de değişiklik yapılabilir. Lokasyonu ise
$ORACLE_HOME/dbs altındadır.Yapılan değişiklikler bir dahaki startup aşamasında aktif olur.

Örnek bir PFILE şu şekidedir.

# Initialization Parameter File: initdb01.ora
db_name = db01
instance_name = db01
control_files = ( /u03/oradata/db01/control01db01.ctl,
/u03/oradata/db01/control02db01.ctl)
db_block_size = 4096
db_block_buffers = 500
shared_pool_size = 31457280 # 30M Shared Pool
db_files = 1024
max_dump_file_size = 10240
background_dump_dest = /u05/oracle9i/admin/db01/bdump
user_dump_dest = /u05/oracle9i/admin/db01/udump
core_dump_dest = /u05/oracle9i/admin/db01/cdump
undo_management = auto
undo_tablespace = undtbs
...
9i sürümüyle birlikte “Server Parameter File(SPFILE) (Binary) ” kavramı geldi.SPFILE PFILEs‟dan
oluşturulabilir.Bu PFILE gibi bir text dosya değil binary bir dosyadır ve sadece “ALTER SYSTEM SET”
komutu ile değişir.Lokal makinadan veritabanını başlatmak için bir kopyasını lokalde tutmaya gerek
kalmamaktadır. SPFILE da $ORACLE_HOME/dbs altında saklanmaktadır.


Yapısındaki değişiklikler Alter System komutları ile yapılmaktadır.

SQL > ALTER SYSTEM SET undo_tablespace = 'UNDO2' scope=?;

Bunla beraber yapılan değişikliğin kalıcı olması yada sadece Session bazlı olması gibi durumlar için
SCOPE diye bir kavram vardır.

ALTER SYSTEM SET parameter = value [SCOPE =
MEMORY|SPFILE|BOTH]

Memory : Yapılan değişikliğin yalnızca mevcut çalışan instance üzerinde yapılacağını,
SPFILE : Yapılan değişikliğin SPFILE‟a yansıtılacağını
BOTH : Yapılan değişikliğin Hem mevcut instance‟ta hemde SPFILE üzerinde yapılacağını gösterir.

Örnek bir SPFILE ise şu şekildedir.

*.background_dump_dest='$ORACLE_HOME/admin/db01/bdump'
*.compatible='9.0.0'
*.control_files='/u03/oradata/db01/ctrl01db01.ctl','/u03/orad
ata/db01/ctrl02db01.ctl'
*.core_dump_dest='$ORACLE_HOME/admin/db01/cdump'
*.db_block_buffers=500
*.db_block_size=4096
*.db_files=40
*.db_name='db01'
*.instance_name='db01'
*.remote_login_passwordfile='exclusive'
*.shared_pool_size=31457280 # 30M Shared Pool
*.undo_management='AUTO'
db01.undo_tablespace='UNDOTBS01'
db02.undo_tablespace='UNDOTBS02'
...

SPFILES kullanmak PFILE kullanmaktan daha avantajlıdır.Çünkü :
• RMAN ile backup‟ı alınabilir.(RMAN, PFILE backup‟ı alamaz)
• Server tarafında tutulduğundan ve değişiklik yapılıpta olur verilmeden evvel sistem tarafından kontrol
edildiğinden insan kaynaklı hataların önüne geçilmiş olur.
• Uzaktan veritabanını başlatmak için lokal makina da bir dosya tutulmasına gerek kalmaz.

Oracle veritabanı PFILE‟dan ya da SPFILE‟dan başlatılmış olabilir.bunu anlamak için aşağıdaki sorgu
kullanılabilir :

SELECT DECODE(value, NULL, „PFILE‟, „SPFILE‟) “Init File Type”
FROM sys.v_$parameter WHERE name = ‟spfile‟;
PFILE‟dan SPFILE ya da SPFILE‟dan PFILE oluşturmak mümkündür :

• CREATE PFILE FROM SPFILE;
• CREATE SPFILE FROM PFILE;
• CREATE SPFILE=‟/oradata/spfileORCL.ora‟ from PFILE=‟/oradata/initORCL.ora‟;
Hem PFILE hem SPFILE şu şekilde sistemde adlandırılır.

PFILE için initSID.ora
SPFILE için SPFILESID.ora

Burada SID dediğimiz database‟in ismi yada kimliği olarak adlandırılabilir.

ORACLE ‘IN BAŞLATILMASI VE DURDURULMASI

Oracle „ın başlatılması ve durdurulması çeşitli adımlarla gerçekleşmektedir.




Bu aşamada SPFILE yada PFILE dosyadan okunur,ve instance buradaki parametrelere göre başlatılır.
Database‟in bu aşaması Database ve Control file oluşturmak için vardır.




Bu aşamada ise Control file ilgili dosyadan okunur.Ve database‟in yapısı hakkında instance bilgi sahibi
olur.Bu aşamada ilgili DataFile‟ların ismi değiştirilebilir,Redolog Arşivleme Enable yada Disable
edilebilir.Database‟in full database kurtarması yapılabilir.
Bu aşamada ise Bütün file‟lar ilgili lokasyonlarından okunur ve database tamamiyle başlamış olur.
Herhangi bir kurtarma ihtiyacı varsa SMON bu aşamada devreye girer ve otomatik kurtarma işlemini
gerçekleştirir.

Komut satırından bu işlemler şu şekilde olmaktadır.

Kapalı bir Database de ;

CMD > sqlplus / as sysdba;
SQL > startup nomount;
SQL > alter database mount;
SQL > alter database open;

Yada kapalı bir database „i direk olarak


CMD > sqlplus / as sysdba;
SQL > startup;

Diyerekte açabiliriz.

Database‟i PFILE yada SPFILE‟dan açma şansımız vardır.Defaultta SPFILE tanımlıysa otomatik olarak
SPFILE başlar.Ama istersek database‟i PFILE‟danda başlatabiliriz.

SQL > STARTUP PFILE=$ORACLE_HOME/dbs/initdb01.ora

Startup parametreleri aşağıda görüldüğü gibidir.

STARTUP [FORCE] [RESTRICT] [PFILE=filename]
[OPEN [RECOVER][database]
|MOUNT
|NOMOUNT]
FORCE : Mevcut olan instance‟i acil olarak kapatıp yeni istance‟ı başlatır.
RESTRICT Kullanıcıların RESTRICTED SESSION hakkı ile database‟e erişmeleri sağlanır.
RECOVER : Recover yapmak için başlatılan moddur.

SQL > alter database open read only;

SQL > STARTUP RESTRICT;

SQL > ALTER SYSTEM ENABLE RESTRICTED SESSION;

Read Only modda database üzerinde sorgu çalıştırılabilir,İlgili data file‟lar offline yada online
yapılabilir.Offline bir datafile recovery yapılabiliriz.

Database‟in durdurulması için tek adım vardır.Yapılacak tek şey SHUTDOWN komutunun
çalıştırılmasıdır.




Shutdown aşamasında ise yukarıda görüldüğü gibi 4 tip kapatma işlemi mevcuttur.

Shutdown Normal

•   Yeni bağlantı açılamaz
•   Oracle server shutdown olmadan bağlı olan kullanıcıların disconnect olmalarını bekler.
•   Database ve redo buffers diske yazılır
•   Background processesleri durdurulur, ve SGA memory‟den çıkarılır.
•   Oracle İnstance kapatmadan önce database‟i dismount ve close eder.
•   Gelecek Startup aşamasında recovery‟e ihtiyaç yoktur.

Shutdown Transactional

•   Yeni bağlantı açılamaz,yeni bir transaction da başlatılamaz.
•   Client açtığı transaction‟u kaparsa ,bağlantıyı koparmış olur.
•   Tüm transactionlar kapandıysa,artık instance kapanabilir.
•   Gelecek Startup aşamasında recovery‟e ihtiyaç yoktur.
Shutdown Immediate

•   Mevcut çalışan Sql statement ların hiçbiri tamamlanamaz.
•   Oracle Server kullanıcıların disconnect olmalarını beklemez.
•   Oracle Aktif transactionların hepsini rollback yapar.
•   Oracle İnstance kapatmadan önce database‟i dismount ve close eder.
•   Gelecek Startup aşamasında recovery‟e ihtiyaç yoktur.

Shutdown Abort

•   Mevcut çalışan Sql statement ların hiçbiri tamamlanamaz.
•   Oracle Server kullanıcıların disconnect olmalarını beklemez.
•   Database ve redo buffers diske yazılmaz.
•   Commit edilmeyen transactionların hepsini rollback yapar.
•   İlgili dosyalar kapanmadan instance kapatılır.
•   Oracle İnstance kapatmadan önce database‟i dismount ve close eder.
•   Gelecek Startup aşamasında recovery‟e ihtiyaç yoktur.

ALERT VE TRACE DOSYALARI

Database‟in açıp kapatmasında yada yürüyen adımlarında herhangi bir hata olması durumununda
oluşan hatanın bilgileri,

Database „de alertSID.log dosyasına yazılır.Bu dosyada database ile ilgili tüm bilgiler mevcuttur.

Default yeri $ORACLE_HOME/rdbms/log altındadır.

Lokasyonu BACKGROUND_DUMP_DEST parametresi ile belirlenebilir.


BACKGROUND TRACE

Arka Planda yürüyen proseslerde oluşan hatalar sonucunda oluşurlar.Bu dosyaların da lokasyonu
BACKGROUND_DUMP_DEST parametresi ile bleirlenir.Formatı sid_processname_PID.trc şeklinde
verilir. db01_lgwr_23845.trc buna bir örnektir.

USER TRACE

Kullancılardan yani User Proseslerinden oluşan hatalar sonucunda oluşurlar.Bu dosyaların da lokasyonu
USER_DUMP_DEST parametresi ile bleirlenir.Formatı sid_ora_PID.trc şeklinde verilir.
db01_ora_23845.trc buna bir örnektir. MAX_DUMP_FILE_SIZE parametresi ile alınabilcek maximum
büyüklük belirlenebilir.

User Trace işlemi yine bizde parametrelerce belirlenip yürütülebilen bir bilgidir.

Session bazlı olarak,

SQL > ALTER SESSION SET SQL_TRACE = TRUE

Komutuyla,

Yada Paramatre file‟ından

SQL_TRACE = TRUE yapılarak user trace enable edilebilir.

Mais conteúdo relacionado

Mais procurados

İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06Cihan Özhan
 
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanOrneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanAnar Godjaev
 
İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02Cihan Özhan
 
SQL-ETL-Raporlama
SQL-ETL-RaporlamaSQL-ETL-Raporlama
SQL-ETL-RaporlamaDeniz Alkan
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16Cihan Özhan
 
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİİŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİAbdullah Cihan
 
İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18Cihan Özhan
 
Veritabanı kurulumu (1)
Veritabanı kurulumu (1)Veritabanı kurulumu (1)
Veritabanı kurulumu (1)alinizam99
 
İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03Cihan Özhan
 
Sql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şSql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şoktaygokgol
 
Sql, Sql Injection ve Sqlmap Kullanımı
Sql, Sql Injection ve Sqlmap KullanımıSql, Sql Injection ve Sqlmap Kullanımı
Sql, Sql Injection ve Sqlmap KullanımıBGA Cyber Security
 

Mais procurados (20)

İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07
 
İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
 
Veritabanı
VeritabanıVeritabanı
Veritabanı
 
İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06İleri Seviye T-SQL Programlama - Chapter 06
İleri Seviye T-SQL Programlama - Chapter 06
 
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanOrneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
 
İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02İleri Seviye T-SQL Programlama - Chapter 02
İleri Seviye T-SQL Programlama - Chapter 02
 
SQL-ETL-Raporlama
SQL-ETL-RaporlamaSQL-ETL-Raporlama
SQL-ETL-Raporlama
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16
 
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİİŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
 
Sonsunu
SonsunuSonsunu
Sonsunu
 
İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
 
Veritabanı kurulumu (1)
Veritabanı kurulumu (1)Veritabanı kurulumu (1)
Veritabanı kurulumu (1)
 
İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03
 
Sql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şSql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇ş
 
hafta1
hafta1hafta1
hafta1
 
Konu anlatım
Konu anlatımKonu anlatım
Konu anlatım
 
Sql, Sql Injection ve Sqlmap Kullanımı
Sql, Sql Injection ve Sqlmap KullanımıSql, Sql Injection ve Sqlmap Kullanımı
Sql, Sql Injection ve Sqlmap Kullanımı
 

Semelhante a Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"

Kod günleri veritabnı
Kod günleri veritabnıKod günleri veritabnı
Kod günleri veritabnıMustafa Tepe
 
Oracle ile tanisalim
Oracle ile tanisalimOracle ile tanisalim
Oracle ile tanisalimMine Özdemir
 
İlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve Doctrineİlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve DoctrineMuhittin Özer
 
Active directory bilal dursun
Active directory bilal dursunActive directory bilal dursun
Active directory bilal dursunBilal Dursun
 
Sunum Powerpoint
Sunum PowerpointSunum Powerpoint
Sunum PowerpointFatma Blhn
 
Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Anar Godjaev
 
BTT Modul 11 Isletim Sistemlerinin Temelleri
BTT Modul 11 Isletim Sistemlerinin TemelleriBTT Modul 11 Isletim Sistemlerinin Temelleri
BTT Modul 11 Isletim Sistemlerinin Temellerideniz armutlu
 
Sql sorgular eği̇ti̇mi̇
Sql sorgular eği̇ti̇mi̇Sql sorgular eği̇ti̇mi̇
Sql sorgular eği̇ti̇mi̇Ahmet Yanik
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?Ertugrul Akbas
 
Yeni başlayanlar i̇çin Oracle 12c
Yeni başlayanlar i̇çin Oracle 12cYeni başlayanlar i̇çin Oracle 12c
Yeni başlayanlar i̇çin Oracle 12cÖzgür Umut Vurgun
 
Instance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeInstance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeAnar Godjaev
 
Oracle Tablespace Yonetimi
Oracle Tablespace YonetimiOracle Tablespace Yonetimi
Oracle Tablespace YonetimiAnar Godjaev
 
Veri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaVeri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaoktaygokgol
 
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02Önder Değer
 
Veritabani.Modul1.Planlama.Ver.1.0
Veritabani.Modul1.Planlama.Ver.1.0Veritabani.Modul1.Planlama.Ver.1.0
Veritabani.Modul1.Planlama.Ver.1.0deniz armutlu
 
Dağıtık Veritabanı Sistemleri
Dağıtık Veritabanı SistemleriDağıtık Veritabanı Sistemleri
Dağıtık Veritabanı Sistemleriİsmail ŞEN
 
BÖLÜM-1-Veri-Tabanı-Yönetim-Sistemleri.pptx
BÖLÜM-1-Veri-Tabanı-Yönetim-Sistemleri.pptxBÖLÜM-1-Veri-Tabanı-Yönetim-Sistemleri.pptx
BÖLÜM-1-Veri-Tabanı-Yönetim-Sistemleri.pptxzealcoco2
 

Semelhante a Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan" (20)

Kod günleri veritabnı
Kod günleri veritabnıKod günleri veritabnı
Kod günleri veritabnı
 
Kod günleri veritabnı
Kod günleri veritabnıKod günleri veritabnı
Kod günleri veritabnı
 
Oracle ile tanisalim
Oracle ile tanisalimOracle ile tanisalim
Oracle ile tanisalim
 
Oracle11g
Oracle11gOracle11g
Oracle11g
 
İlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve Doctrineİlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve Doctrine
 
Active directory bilal dursun
Active directory bilal dursunActive directory bilal dursun
Active directory bilal dursun
 
Sunum Powerpoint
Sunum PowerpointSunum Powerpoint
Sunum Powerpoint
 
Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇
 
BTT Modul 11 Isletim Sistemlerinin Temelleri
BTT Modul 11 Isletim Sistemlerinin TemelleriBTT Modul 11 Isletim Sistemlerinin Temelleri
BTT Modul 11 Isletim Sistemlerinin Temelleri
 
Sql sorgular eği̇ti̇mi̇
Sql sorgular eği̇ti̇mi̇Sql sorgular eği̇ti̇mi̇
Sql sorgular eği̇ti̇mi̇
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?
 
Yeni başlayanlar i̇çin Oracle 12c
Yeni başlayanlar i̇çin Oracle 12cYeni başlayanlar i̇çin Oracle 12c
Yeni başlayanlar i̇çin Oracle 12c
 
Instance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeInstance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını Inceleme
 
Oracle Tablespace Yonetimi
Oracle Tablespace YonetimiOracle Tablespace Yonetimi
Oracle Tablespace Yonetimi
 
Veri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirmaVeri̇ tabani oluşturma ve yapilandirma
Veri̇ tabani oluşturma ve yapilandirma
 
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
 
Veritabani.Modul1.Planlama.Ver.1.0
Veritabani.Modul1.Planlama.Ver.1.0Veritabani.Modul1.Planlama.Ver.1.0
Veritabani.Modul1.Planlama.Ver.1.0
 
Dağıtık Veritabanı Sistemleri
Dağıtık Veritabanı SistemleriDağıtık Veritabanı Sistemleri
Dağıtık Veritabanı Sistemleri
 
Php veritabani
Php veritabaniPhp veritabani
Php veritabani
 
BÖLÜM-1-Veri-Tabanı-Yönetim-Sistemleri.pptx
BÖLÜM-1-Veri-Tabanı-Yönetim-Sistemleri.pptxBÖLÜM-1-Veri-Tabanı-Yönetim-Sistemleri.pptx
BÖLÜM-1-Veri-Tabanı-Yönetim-Sistemleri.pptx
 

Mais de Anar Godjaev

Asm disk group migration from
Asm disk group migration from Asm disk group migration from
Asm disk group migration from Anar Godjaev
 
How to protect your sensitive data using oracle database vault / Creating and...
How to protect your sensitive data using oracle database vault / Creating and...How to protect your sensitive data using oracle database vault / Creating and...
How to protect your sensitive data using oracle database vault / Creating and...Anar Godjaev
 
how to protect your sensitive data using oracle database vault
how to protect your sensitive data using oracle database vaulthow to protect your sensitive data using oracle database vault
how to protect your sensitive data using oracle database vaultAnar Godjaev
 
Database Vault / Verinin Güvenliği
Database Vault /  Verinin GüvenliğiDatabase Vault /  Verinin Güvenliği
Database Vault / Verinin GüvenliğiAnar Godjaev
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden GateAnar Godjaev
 
Oracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumOracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumAnar Godjaev
 
DataPump ile Single Parititon Export
DataPump ile Single Parititon ExportDataPump ile Single Parititon Export
DataPump ile Single Parititon ExportAnar Godjaev
 
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Anar Godjaev
 
Conditional Control
Conditional ControlConditional Control
Conditional ControlAnar Godjaev
 
Audit Mekani̇zmasi
Audit Mekani̇zmasiAudit Mekani̇zmasi
Audit Mekani̇zmasiAnar Godjaev
 
Backup and Recovery
Backup and RecoveryBackup and Recovery
Backup and RecoveryAnar Godjaev
 

Mais de Anar Godjaev (20)

Oracle GoldenGate
Oracle GoldenGateOracle GoldenGate
Oracle GoldenGate
 
Asm disk group migration from
Asm disk group migration from Asm disk group migration from
Asm disk group migration from
 
How to protect your sensitive data using oracle database vault / Creating and...
How to protect your sensitive data using oracle database vault / Creating and...How to protect your sensitive data using oracle database vault / Creating and...
How to protect your sensitive data using oracle database vault / Creating and...
 
how to protect your sensitive data using oracle database vault
how to protect your sensitive data using oracle database vaulthow to protect your sensitive data using oracle database vault
how to protect your sensitive data using oracle database vault
 
Database Vault / Verinin Güvenliği
Database Vault /  Verinin GüvenliğiDatabase Vault /  Verinin Güvenliği
Database Vault / Verinin Güvenliği
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden Gate
 
Oracle 10g Database Server Kurulum
Oracle 10g Database Server KurulumOracle 10g Database Server Kurulum
Oracle 10g Database Server Kurulum
 
DataPump ile Single Parititon Export
DataPump ile Single Parititon ExportDataPump ile Single Parititon Export
DataPump ile Single Parititon Export
 
Contraints
ContraintsContraints
Contraints
 
Oracle SQL
Oracle SQLOracle SQL
Oracle SQL
 
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇
 
Conditional Control
Conditional ControlConditional Control
Conditional Control
 
PL/SQL Blocks
PL/SQL BlocksPL/SQL Blocks
PL/SQL Blocks
 
Wait Interface
Wait InterfaceWait Interface
Wait Interface
 
Audit Mekani̇zmasi
Audit Mekani̇zmasiAudit Mekani̇zmasi
Audit Mekani̇zmasi
 
Tuning SGA
Tuning SGATuning SGA
Tuning SGA
 
Parallel Server
Parallel ServerParallel Server
Parallel Server
 
Table Partitions
Table PartitionsTable Partitions
Table Partitions
 
Backup and Recovery
Backup and RecoveryBackup and Recovery
Backup and Recovery
 
Memory Management
Memory ManagementMemory Management
Memory Management
 

Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"

  • 1. ORACLE MİMARİSİ Oracle Veritabanı, birim olarak kabul edilen verilerin bir araya toplanmasından oluşur. Veritabanının amacı birbiriyle ilişkili bilgilerin depolanması ve sorgulanmasıdır. Bir veritabanı sunucusu bilgi yönetimiyle ilgili problemleri çözmede anahtar roldedir. Genel olarak bir sunucu, büyük miktardaki veriye çok kullanıcılı bir ortamda, bir çok kullanıcının aynı anda aynı veriye ulaşabilmelerini güvenilir bir şekilde sağlar ve bunu aynı zamanda yüksek bir performansla gerçekleştirir. Bir veritabanı sunucusu aynı zamanda izinsiz erişimi engeller ve hata durumundan kurtulmak için gereken en uygun çözümleri sağlar. Veritabanı fiziksel ve mantıksal olmak üzere iki yapıdan oluşur. Fiziksel ve mantıksal yapı biribirinden ayrı olduğu için verinin fiziksel olarak saklanma şekli mantıksal yapıya erişimi etkilemez. Mantıksal Veritabanı Yapıları Oracle veritabanındaki mantıksal yapılar şema nesneleri, veri blokları, extentler, segmentler ve tablespacelerdir. Şemalar ve Şema Nesneleri Şema, veritabanı nesnelerinin oluşturduğu topluluktur. Bir şemanın sahibi bir veritabanı kulanıcısıdır ve bu şema o kullanıcıyla aynı isme sahiptir. Şema nesneleri direk olarak veriyle bağlantılı olan mantıksal yapılardır (Şema ve tablespace arasında bir bağlantı yoktur. Aynı şemadaki nesneler farklı tablespacelerde bulunabileceği gibi tablespacelerde farklı şemalara ait nesneler bulunabilir.). Başlıca şema nesneleri şunlardır: Tablolar : Oracle veritabanındaki en temel veri saklama birimidir. Veritabanı tabloları, kullanıcılar tarafından ulaşılabilecek tüm veriyi bulundururlar. Her tablonun kolonları ve satırları vardır. Oracle 256 veya daha az kolon içeren bir veritabanı tablosunun her satırını bir veya daha fazla satır parçası halinde saklar. Örnek olarak, çalışanların bilgilerini tutan tabloda, çalışan numarası diye bir kolon varsa, o kolondaki her satır bir çalışanın çalışan numarasını tutar. Viewler : Viewler bir veya birden fazla tablo yada view'deki verinin özelleştirilmiş bir gösterim şeklidir. Bir view aynı zamanda saklanmış bir sorgu olarak da değerlendirilebilir. Viewlar aslında veri içermezler. Bunun yerine verilerini kendilerine temel teşkil eden ve viewın temel tabloları olarak adlandırılan tablolardan çıkartırlar. Tablolar gibi viewlerin de bazı kısıtlamalar olmakla birlikte verisi sorgulanabilir, değiştirilebilir, silinebilir ve yeni veri girilebilir. Viewler üzerinde yapılan her işlem aslında viewın temel tablolarını etkiler. Viewler tablonun önceden belirlenmiş satır ve kolonlarına erişimi kısıtlayarak, tablo güvenliğinde ekstra bir seviye sağlar. İndeksler : İndeksler tablolarla ilişkilendirilen opsiyonel yapılardır. Data erişim performansını arttırmak için yaratılırlar. Bir Oracle indeksi tablo verisine direk bir erişim yolu sağlar. Oracle bir isteği cevaplarken, istenilen satırları daha hızlı bir şekilde bulmak için tablo ile ilişkilendirilmiş olan indekslerin bir kısmını yada hepsini kullanabilir. İndeksler, uygulamalar bir tablonun satırlarının belli bir bölümünü veya belli bir satırı sorguladıklarında işe yarar (Mesela, maaşı 1 Milyar'dan yüksek olan tüm çalışanlar). İndeksler bir tablonun bir veya
  • 2. 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. User process, server process CPU tarafı Her gelen user processine karşılık servr processi oluşuyor.PGA gelen bu processleri sıraya sokuyor.Sonrada SGA a yolluyor.İşlem yapılınca SGA PGA ya yolluyor.Oda user a dönüyor. Oracle Server : Bütün Database dosyları,arka plan prosesleri ve diğer yapıların bir arada durduğu sistemin adıdır.Server 1 veya daha fazla veritabanını birlikte tutar. Oracle İnstance : İnstance dediğimiz kavram veritabanı için memory yapıları ve arka plan proseslerinin bir arada durduğu yapıyı anlatmaktadır.Her veritabanı için bir instance yaratılmaktadır.Veritabanı kapatıldığında instance ta kapanmaktadır.Yani kısaca instance database ve prosesler için birleştirilmiş yapıyı oluşturmaktadır. Not:İnstance startup aşamasında başlıyor.Veri tabanı=İnstance Serverda diyelim ki 2 veritabanı var.İki instance var demektir. SET ORACLE_SID=TEST1 (Windowsta) EXPORT ORACLE_SID=TEST1 (Linuxta) Oracle Database : Database dediğimiz kavram ise tüm hayati bilgilerimizi içinde muhafaza eden ,gerekitğinde ulaşabildiğimiz İnsatnce ve Server‟ın bir parçasıdır. Şimdi bu yapılara daha detaylı bakacak olursak; ORACLE SERVER Oracle Server bahsedildiği gibi sistemin genel mimarisini oluşturmaktadır. Oracle server bir veya birden fazla makine üzerinde çalışabilmektedir.Bu mimari Client-application Server-Database,Client – Server,Host Based olabilmektedir. Client-Application Server-Server: (Three-tier) Kullanıcılar kendi bilgisayarlarından Application Server‟a erişirler buradan yapılan ayarlama ve yetkilendirme ile Database‟e erişim sağlanabilmektedir. Client-Server: (Two-tier) Kullanıcılar kendi bilgisayarlarından direk olarak uzaktaki veritabanına erişebilmektedirer. Host-Based: Bu yapıda ise kullanıcılar kendi bilgisayarlarından direk kendi makinelarında kurulu olan veritabanına ulaşabilmektedirler. ORACLE INSTANCE Database açıldığında otomatik olarak başlamaktadır.Oracle‟ı ilgilendiren Memory ve Proses parçalarının tamamını oluşturmaktadır.
  • 3. İleride göreceğimiz SGA ve PGA database‟in instance‟ını oluşturmaktadır. Client tarafında bir user Oracle Server ile ilitişim kurduğunda otomatik olarak bir session yaratılmaktadır. Session dediğimiz kavram kullanıcın kullandığı bir programla bu SQL PLUS yada herhangi bir development tool‟u olabilir.Aradaki bağlantıdan dolayı Session başlamış olur. ORACLE DATABASE Oracle Database dediğimiz kavram ise sistemde bilgilerimizin tutulduğu file‟lar topluluğudur.
  • 4. Şekilde görüleceği gibi 3 tip file yapımız vardır. Datafile lar bizim sistemimiz ile ilgili verileri tutmaktadır.Örneğin Tablolar,Viewlar ve indexler bu yapıda muhafaza edilmektedir. Redologlar ise yaptığımız transcationları tutmaktadır.Commit edilmiş edilmemiş her bilgi bu yapıda durmaktadır.Rollback segmentle karıştırılmamalıdır. Control file‟lar ise database‟in genel yapısını tutan ifadelerdir.Tablesapce‟lerin uzunluğu,adı yapısı ve diğer database‟i ilgilendiren her yapı burada muhafaza edilmektedir. Parametre file sistemin daha verimli çalışması için gerekli olan parametreleri tutmaktadır.SPFİLE ve PFİLE olarak 2 farklı versiyonu vardır. Password file kullanıcıların sisteme otantike olmaları için vardır.Burdaki bilgilerden örneğin kimin database‟i açıp kapatamıyacağını görürüz. Arşiv Redologlar redologların depolanmış halidir.Normalde Redologlar büyüklükleri kadar ancak transaction‟u tutmaktadırlar.Bu şekilde dolan redologlar arşiv dosyası olarak saklanabilmektedirler. Fiziksel Yapı
  • 5. Control file,data file ve redologlar database‟in fiziksel yapısını oluşturmaktadırlar. Memory Yapısı SGA ve PGA dediğimiz yani sistem tarafı ve kullancı tarafını oluşturan memory yapısıdır. SGA instance başlatıldığında oluşmaktadır.PGA ise Kullancı tarafından gelen User Prosesine karşılık oluşturlan Server Prosesi zamanında oluşmaktadır. SGA(System Global Area) SGA, tek bir Oracle örneğinin ihtiyaç duyduğu veri ve kontrol bilgilerinin tutulduğu paylaşıma açık bellek alandır. Oracle örneği ilk açıldığı sırada tahsis edilir ve kapatılırken sisteme geri verilir. Her örneğin kendine ait bir SGA‟sı vardır. Sisteme bağlı olan kullanıcılar SGA‟daki bilgiyi paylaşırlar. En iyi performansı sağlaması için SGA‟nın ana bellek boyutlarını aşmama koşuluyla olabildiğince büyük olması gerekir. Bu sayede bellekte daha fazla veri tutulabilir, bu da disk okuma yazmasını azaltır. SGA‟da tutulan bilgiler tiplerine göre farklı alt bellek yapılarında saklanır. SGA‟nın büyüklüğü SGA_MAX_SIZE ile belirlenebilir. SQL > SHOW SGA; Total System Global Area 36437964 bytes Fixed Size 6543794 bytes Variable Size 19521536 bytes Database Buffers 16777216 bytes Redo Buffers 73728 bytes SGA‟nın yapısını ise DB_CACHE_SIZE,LOG_BUFFER,SHARED_POOL_SIZE ve LARGE_POOL_SIZE oluşturmaktadır.
  • 6. SHARED POOL Paylasilmis SQL Alani, Oracle „in özel SQL deyimlerini çalistirmak için kullandigi bilgileri içerir. Bir SQL sorgusu isletilmeden önce ayristirilir ve bu sorgunun çalistirilmasi için bir çalisma plani hazirlanir. Isletilen sorgular bu alanda saklanir. Ayni sorgu birkez daha isletilmek istenirse bu çalistirma plani dogrudan uygulanabilir. Büyüklüğü SHARED_POOL_SIZE parametresi ile belirlenir.Varsayılan olarak 32 bit sistemler için 8MB, 64 bit sistemler için 64MB‟dır. Paylasilmis SQL Alani, SGA içindeki Paylasilmis Havuz „un bir parçasidir. Paylasilmis Havuz; SQL ve PL/SQL deyimlerini SQL ve PL/SQL deyimlerinin ayristirilmis hallerini SQL ve PL/SQL deyimleri için çalistirma planlarini veri sözlügü (data dictionary) önbellegini (cache) içerir. Paylaşılmış havuz anlamına gelir.SQL kodlarını parse eder ve saklar.Her istek gelince parse etmeye uğraşmaz.Sık kullanılan sorguları daha hızlı getirmenin mantığı budur.SGA nın %10 kadar verilmelidir. SQL > ALTER SYSTEM SET SHARED_POOL_SIZE = 64M; Burada dikkat edilmesi gerek ayarlanan bu büyüklük SGA nın büyüklüğünü etkileyeceği için asla toplam SGA değeri SGA_MAX_SIZE‟ı aşmamalıdır. LİBRARY CACHE Library Cache Shared Pool‟un bir parçasıdır.Sık kullanılan SQL ve PL/SQL cümlelerinin durduğu yerdir. Yönetimi LRU(Last Recently Used) algoritmasına göre olmaktadır. Shared SQL ve PL / SQL ifadelerini saklamaktadır. SQL ve PL/SQL kodlarını parçalayıp tutar. DATA DİCTİONARY CACHE “Data Dictionary” bilgileri Oracle tarafından çok sık kullanıldığından hafızada tutulması mantıklıdır.İşte bu bilgilerin hafıza da tutulduğu yere “dictionary cache” denir.Bu bilgiler bir de “library cache”‟te de tutulmaktadır.Her iki alana tüm kullanıcı işlemleri ulaşmaktadır. Hem Library Cache hemde Dictionary Cache‟in büyüklüğünü değiştirmek için SHARED_POOL_SIZE ile oynanmalıdır. Oracle in kullandığı sql ve pl / sql parçacıklarını tutar. DATABASE BUFFER CACHE Datafile‟dan okunan veriler SGA içersinde bu alanda tutulur. Mantıksal olarak kendi içinde parçalara ayrılarak kullanılır.Veritabanı üzerinde işlem yapan tüm kullanıcılar burayı kullanırlar.Bu durumda yapılan işlemlerin belli bir sistematikte yapılması gerekmektedir.Bunu sağlamak için database buffer cache‟te Write List ve en son kullanılanları tutan liste Last Recenlty Used-LRU- list olmak üzere 2 ayrı liste tutulur. Write List , dirty buffer olarak adlandırılan üzerinde değişiklik yapılmış ama datafile‟a henüz yazılmamış alanları tutar.LRU listesi ise boş alanları ,henüz write list‟e gönderilmemiş dirty buffer alan bilgilerini ve pinned buffer denilen o an işlem gören alanları tutar. Kullanıcının veri okuma isteği olduğunda önce bu cache‟te varmı diye bakılır.Var ise veri bellekten direk olarak okunur.Eğer yok ise veri ilgili datafile‟ın bloğundan okunur.Ama bunu yapabilmesi için önce hafızada boş alan bulunması gerekir.Bunun için LRU listesine bakılır. Boş bir alan bulunana ya da tanımlı bir eşik değere ulaşıncaya kadar arama sürer. LRU listesinde Dirty buffer bulunca bu alan write
  • 7. liste‟e alınır ve arama işlemi sürdürülür, boş alan bulununca burası LRU listesinin en sonuna atılarak ilgili veri bulunan boş alanına yazılır.Boş alan bulunamadığı esnada belirlenen eşik değerine ulaşılınca LRU listesinde arama bitirilir ve DBW0 background process‟ine bir takım dirty buffer alanını diske yazması için sinyal gönderilir. DB_BLOCK_SIZE parametresi ile blokların büyüklüğü hakkında bilgi edinebiliriz. Bu parametre sonradan değişmemekte database oluşturulurken ayarlanmaktadır. Bunun dışında, DB_CACHE_SIZE = Default olarak cache‟in buffer size‟ını vermektedir.Sıfır verilmemelidir. DB_KEEP_CACHE_SIZE = blokların default olarak ne kadar tutulacağını verir. DB_RECYCLE_CACHE_SIZE = Kullanılamayn blokların boyutunu tutmaktadır. parametreleri mevcuttur. Sql den dönen datayı tutar.Sorgu tekrar çalıştırıldığında datafile a gitmeye gerek kalmadan buradan okur. SQL > ALTER SYSTEM SET DB_CACHE_SIZE = 96M; ile büyüklük değiştirilebilmektedir. REDOLOG BUFFER CACHE INSERT,UPDATE,DELETE,CREATE,ALTER ve DROP işlemleri sonucu meydana gelen değişiklikleri hafızada tutulduğu kısımdır.Yapılan değişikliklerin geri alınmasında ve gerektiğinde “recovery” işlemleri için kullanılır.Sıralı ve doldugunda başa dönecek şekilde bir yapısı vardir. Bu alanda tutulan bilgiler “Log Writer Process(LGWR)” ile redo log dosyalarına yazılır.LOG_BUFFER parametresi redo log alanının büyüklüğünü belirler.Büyük değer alması I/O mailiyeti düşürür. Yapılan her transaction ı tutar.Elektrik kesintisi olduğunda bilgi burada durur. LARGE POOL Veri yedekleme ve kurtarma, sunucu okuma yazma işlemleri, oturum belleği ve birden fazla veritabanı üzerinde çalışan hareketler(Oracle XA) gibi işlerde kullanmak üzere tahsis edilen opsiyonel bir alandır. Üzerinde durulması gereken asıl yaptığı iş Veritabanı üzerinde yedekleme ve kurtarma operasyonlarına zemin oluşturmasıdır.Boyutu LARGE_POOL_SIZE parametresi ile belirlenir. SQL > ALTER SYSTEM SET LARGE_POOL_SIZE = 64M; Oracle üzerinde backup ve recovery operasyonlarında aktif olarak yer alan RMAN(Recovery Manager) Large Pool parametresi ile beraber BACKUP_DISK_IO= n ve BACKUP_TAPE_IO_SLAVE = TRUE parametreleri set edilebilir. JAVA POOL Java kodlarının veritabanı içerisinde anlamlandırılması için kullanılmaktadır.PL/SQL kodlarına benzer biçimde database içinde saklanmaktadır.Boyutu JAVA_POOL_SIZE ile belirlenmektedir. PGA(Program Global Area) PGA, sunucu işlemleri için gereken veri ve kontrol bilgilerini tutmak için tahsis edilen tampon bellektir. Oracle tarafından bir sunucu işlemi başladığında otomatik olarak tahsis edilir. İçinde tutulacak bilgi Oracle konfigürasyonuna bağlıdır.
  • 8. PGA tarafında proses mantığında istekte bulunan User Proses buna karşılık gelen Server tarafında Server Proses ve İnstance başladığında işlem gören Background prosess mevcuttur. Parametrenin büyüklüğü pga_aggregate_target ile belirlenir. USER PROSESS User Proses Oracle Server ile iletişim kuran bir program,Oracle Client yada SQL PLUS command‟ı olabilir. User Prosess‟i Server Prosess‟i ile iletişim kurduğunda bir session açılır ve işlemler bunun üzerinden yürür. SERVER PROSESS User Proses‟ine karşılık gelen prosestir.Gelen istekle beraber Oracle Server tarafı ile bağlantı kurar. İleride göreceğimiz gibi Dedicated yada Shared olabilmektedir.
  • 9. BACKGROUND PROSESS Bu prosesler fiziksel yapı ve memorysel yapı arasında çalışırlar ve çeşitli işler yaparlar.Bunların bikaç tanesine bakacak olursak. DBWR(Database Writer) DBWR görevi, kullanici görevlerinin her zaman bos bellek alanu bulabilmeleri için database buffer cache „i yönetir. degisiklige ugramis tüm verileri veri kütüklerine yazar. Yakin zamanda kullanilan veri bloklarini bellekte tutmak için LRU (Least Recently Used) algoritmasini kullanilir. Giris/çikis islemlerini iyilestirebilmek için bazi yazma islerini erteler. DBWR şu durumlarda aktif olur. •Incremental yada normal checkpoint • Bozuk data bloklar eşik değeri eriştiklerinde • Bir proses boş blok aradığında ama bulaadığında • Zaman aşımı gerçekleştiğinde • RAC kontrolünde • Tablepsace Online yada Offline olduğunda. • Tablespace Read Only moduna geldiğinde. • Tablonun düşürülmesi yada Truncate edilmesinde. • ALTER TABLESPACE tablespace name BEGIN BACKUP komutu çalıştığında
  • 10. LGWR(LOG WRİTER) LGWR ,redo log buffer „larini su durumlar olustugunda diske yazar; commit görüldügünde , redo log buffer dolulugu esik degerine ulastigi zaman. DBWR checkpoint için buffer bloklarin temizlemeye gerek duyarsa , time-out görülürse , Her Oracle instance „i için bir tane LGWR görevi vardir. Bir transaction redo log kütügüne islenmeden commit edilmis sayilmaz. DBWR görevi, veri bloklarini veritabanina geri yazmadan önce yapilan degisiklikleri korumak amaciyla LGWR görevine redo log buffer „larini bosaltmasi sinyalini gönderir. SMON (System Monitor) -Değişen loglar için Rollforward ,commit edilmemiş datalar için Rollback yapar - Otomatic instance kurtarmayi gerçeklestirir. - Geçici segment alanini geri elde eder. - Kontrol kütügünün sürekliligini saglar. - Sistemde kullanilabilir durumdaki serbest alanin kaydini tutar.
  • 11. PMON (Process Monitor) - Anormal bir sekilde kesilen baglantilari temizler. - Commit edilmemis degisiklikleri eski haline getirir (rollback). - İşletimi kesilen görevin tuttugu kilitleri kaldirir. - Çakilan görev için ayrilan SGA kaynaklarini serbest birakir. - Kilitlenmeleri (deadlock) otomatik olarak yakalar ve islemi geri döndürerek (transaction rolling back) çözümler. CHECK POİNT(CKPT) Checkpoint görevi, LGWR üzerindeki yükü azaltmak için kullanilir.CheckPoint anında DBWn prosesi işaretlenir.Datafile Header Checkpint anında update edilir.Aynı şekilde Control file larda Check Point anında update edilir.
  • 12. Arcn (Archiver) ARCH görevi aslinda seçimlik bir arka plan görevi olmasina ragmen bir çok sistem için özellikle tavsiye edilir. Eger bu görev çalistiriliyorsa veritabani ARCHIVELOG kipinde çalisiyor demektir. Bu seçenek; tablespace „lerin çevrim-içi (on-line) yedeklenmesine medya failure „dan çevrim-içi kurtarmaya , günlük kütüklerinin otomatik olarak arsivlenmesine izin verir. ARCH görevi, günlük kütüklerinin kopyalarini, yerleri daha önce belirlenmis disk ya da teyp birimleri üzerine çikarir. LOGICAL YAPI Oracle‟ın logical yapısı hiyerarşik olarak Tablespace,bunun altında Segments bunun altında Extents bunun altında Bloklardan oluşur. Veri blokları, extentler ve segmentlerden oluşan mantıksal saklama yapıları sayesinde Oracle'ın disk alanı üzerinde ayrıntılı bir kontrolü vardır.
  • 13. Oracle Veri Blokları : Veri blokları, Oracle veritabanında verinin saklandığı en küçük yapıdır. Bir veri bloğu, fiziksel veritabanı alanında belirli sayıdaki byte'a karşılık gelir. Standard blok büyüklüğü DB_BLOCK_SIZE başlangıç parametresiyle belirlenir. Extentler : Mantıksal veritabanı alanındaki bir sonraki seviye extentlerdir. Bir extent, belirli sayıdaki ardışık veritabanı bloğundan oluşur, bir seferde alınır ve belirli bir tipteki bilgiyi tutmak için kullanılır. 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: Veri Segmenti : Her kümelenmemiş tablonun bir segmenti vardır. Tablonun bütün verisi, veri segmentinin extentlerinde tutulur. Bölümlenmiş tablolarda, her parça için bir veri segmenti bulunur. Her küme için bir veri segmenti vardır. Kümedeki her tablonun verisi kümeye ait olan veri segmentinde tutulur. İndeks Segmenti : Her indeksin kendi verisinin tutulduğu bir indeks segment vardır. Bölümlenmiş bir indeksin her bölümüne ait bir indeks segment vardır. Temporary segment : Temporary segmentler bir SQL cümlesinin işini tamamlamak için geçici bir alana ihtiyaç duyulduğunda Oracle tarafından yaratılır. SQL cümlesinin çalıştırılması tamamlandığında temporary segment yeniden kullanılabilmesi için sisteme geri verilir. Rollback Segment : "Automatic Undo Management" modundayken, veritabanı sunucusu tablespaceleri kullanarak undo alanını yönetir. "Manual Undo Management" modundayken, veritabanı yöneticisi tarafından undo bilgisini geçici olarak tutması için rollback segmentler yaratılır. Rollback segmentlerdeki bilgi veritabanının kurtarılması sırasında kullanılır.
  • 14. ORACLE SERVER MİMARİSİ VE ÇALIŞMA ŞEKLİ ORACLE UNİVERSAL İNSTALLER Oracle Server için Yazılım eklemek,upgrade etmek ve mevcut bir komponent‟i kaldırmak için kullanılır. Java tabanlı bir yazılımdır Windows Sistemlerde Programlar Altında bulunur, Yada yeni bir kurulum yapılacaksa CD „nin içinden Setup Dosyası başlatıldığında başlar.
  • 15. Unix Sistemlerde ise komu satırından aşağıdaki komut yazıldığında başlatılır, $ ./runInstaller Kurulumun yapılabilmesi için Grafiksel uygulamların düzgün çalışıyor olması gerekmektedir. Kurulum kesinlikle Oracle User‟ı ile olmalıdır. Eğer kurulumu İnteractive modda yapmak istemiyorsak, $./runInstaller -responsefile FILENAME [-silent] [-nowelcome] Komutu kullanılmalıdır. Örnek bir reponse file şu şekilde olabilir. [General] RESPONSEFILE_VERSION=1.0.0.0.0 [Session] UNIX_GROUP_NAME="dba" FROM_LOCATION="/u01/stage/products.jar" ORACLE_HOME="/u01/app/oracle/ora9i" ORACLE_HOME_NAME="Ora9i" TOPLEVEL_COMPONENT={"oracle.server", "9.0.1.0.0"} SHOW_COMPONENT_LOCATIONS_PAGE=false SHOW_SUMMARY_PAGE=false SHOW_INSTALL_PROGRESS_PAGE=false SHOW_REQUIRED_CONFIG_TOOL_PAGE=false SHOW_OPTIONAL_CONFIG_TOOL_PAGE=false SHOW_END_SESSION_PAGE=false
  • 16. NEXT_SESSION=true SHOW_SPLASH_SCREEN=true SHOW_WELCOME_PAGE=false SHOW_ROOTSH_CONFIRMATION=true SHOW_EXIT_CONFIRMATION=true INSTALL_TYPE="Typical” s_GlobalDBName="u01.us.oracle.com" s_mountPoint="/u01/app/oracle/ora9i/dbs" s_dbSid="db09" b_createDB=true DATABASE CONFIGURATION ASSISTANT Bu tool ise yeni bir database yaratmak,mevcut bir database‟i konfigüre etmek,yeni bir t Mplate yaratmak yada mevcut bir database i silmek için kullanılır. Windows sistemlerde yine aynı şekilde programlar altındadır.
  • 17. Unix Sistemlerde ise, $ DBCA komutu çalıştıurıldığında açılmaktadır. DATABASE ADMINISTRATION USERS Veritabanı ilk kurulduğunda iki tane default sistem kullanıcısı yaratılmaktadır.Bunlardan biri SYS diğeri ise SYSTEM‟dir. Bilinmesi gereken tek olay SYS kullanıcısı Veritabanını açıp kapayabiliyorken SYSTEM user‟ı bunu yapamamaktadır. SQL PLUS Bu tool ise Oracle kurulumu ile beraber gelen üzerinde sorgulamalar ve yönetim yapabileceğimiz bir uygulamadır.Database‟i bu tool ile kapatabilir ve açabiliriz. CMD > SQLPLUS /NOLOG SQL> connect user/sifre; CMD > SQLPLUS deneme/deneme CMD > SQLPLUS sys/deneme as sysdba; CMD > SQLPLUS user/sifre@DB
  • 18. ORACLE ENTERPRISE MANAGER Oracle üzerinde tüm yönetimsel işleri yaptığımız toldur.10G ve öncesi sürümlerde JAVA tabanlı bir uygulamaydı.Ama 10G ile birlikte Web Based bir uygulamadır.
  • 19. Web tabanlı bu konsolu açmak için console‟dan birkaç komut yzamak gerekebilir. CMD > emctl start dbconsole açmak için CMD > emctl stop dbconsole kapamak için
  • 20. ORACLE INSTANCE YÖNETİMİ Oracle Instance dediğimiz kavramın nasıl başladığı nelerden etkilendiği yada işletim sisteminin memory alanından nasıl giderildiği gibi bilgileri göreceğiz. Instance başlamadan önce Parametre file dediğimiz bir dosyadan veritabanı hakkında bilgiler edinir.Ve burada verilen bilgilere göre Oracle Sisteme yüklenir. PARAMETRE FILE (PFILE ve SPFILE) Veritabanı ve çalışan instance ile ilgili konfirigasyon parametrelerini içerir.”init.ora” bir parameter file‟dır. init.ora server tarafta bulunur.Ancak client‟tan (uzak erişim) ile veritabanın ulaşmak için gereklidir, static‟tir.Gerektiğinde (text dosya olduğundan) elle de değişiklik yapılabilir. Lokasyonu ise $ORACLE_HOME/dbs altındadır.Yapılan değişiklikler bir dahaki startup aşamasında aktif olur. Örnek bir PFILE şu şekidedir. # Initialization Parameter File: initdb01.ora db_name = db01 instance_name = db01 control_files = ( /u03/oradata/db01/control01db01.ctl, /u03/oradata/db01/control02db01.ctl) db_block_size = 4096 db_block_buffers = 500 shared_pool_size = 31457280 # 30M Shared Pool db_files = 1024 max_dump_file_size = 10240 background_dump_dest = /u05/oracle9i/admin/db01/bdump user_dump_dest = /u05/oracle9i/admin/db01/udump core_dump_dest = /u05/oracle9i/admin/db01/cdump undo_management = auto undo_tablespace = undtbs ...
  • 21. 9i sürümüyle birlikte “Server Parameter File(SPFILE) (Binary) ” kavramı geldi.SPFILE PFILEs‟dan oluşturulabilir.Bu PFILE gibi bir text dosya değil binary bir dosyadır ve sadece “ALTER SYSTEM SET” komutu ile değişir.Lokal makinadan veritabanını başlatmak için bir kopyasını lokalde tutmaya gerek kalmamaktadır. SPFILE da $ORACLE_HOME/dbs altında saklanmaktadır. Yapısındaki değişiklikler Alter System komutları ile yapılmaktadır. SQL > ALTER SYSTEM SET undo_tablespace = 'UNDO2' scope=?; Bunla beraber yapılan değişikliğin kalıcı olması yada sadece Session bazlı olması gibi durumlar için SCOPE diye bir kavram vardır. ALTER SYSTEM SET parameter = value [SCOPE = MEMORY|SPFILE|BOTH] Memory : Yapılan değişikliğin yalnızca mevcut çalışan instance üzerinde yapılacağını, SPFILE : Yapılan değişikliğin SPFILE‟a yansıtılacağını BOTH : Yapılan değişikliğin Hem mevcut instance‟ta hemde SPFILE üzerinde yapılacağını gösterir. Örnek bir SPFILE ise şu şekildedir. *.background_dump_dest='$ORACLE_HOME/admin/db01/bdump' *.compatible='9.0.0' *.control_files='/u03/oradata/db01/ctrl01db01.ctl','/u03/orad ata/db01/ctrl02db01.ctl' *.core_dump_dest='$ORACLE_HOME/admin/db01/cdump' *.db_block_buffers=500 *.db_block_size=4096 *.db_files=40 *.db_name='db01' *.instance_name='db01' *.remote_login_passwordfile='exclusive' *.shared_pool_size=31457280 # 30M Shared Pool *.undo_management='AUTO' db01.undo_tablespace='UNDOTBS01' db02.undo_tablespace='UNDOTBS02' ... SPFILES kullanmak PFILE kullanmaktan daha avantajlıdır.Çünkü : • RMAN ile backup‟ı alınabilir.(RMAN, PFILE backup‟ı alamaz) • Server tarafında tutulduğundan ve değişiklik yapılıpta olur verilmeden evvel sistem tarafından kontrol edildiğinden insan kaynaklı hataların önüne geçilmiş olur. • Uzaktan veritabanını başlatmak için lokal makina da bir dosya tutulmasına gerek kalmaz. Oracle veritabanı PFILE‟dan ya da SPFILE‟dan başlatılmış olabilir.bunu anlamak için aşağıdaki sorgu kullanılabilir : SELECT DECODE(value, NULL, „PFILE‟, „SPFILE‟) “Init File Type” FROM sys.v_$parameter WHERE name = ‟spfile‟; PFILE‟dan SPFILE ya da SPFILE‟dan PFILE oluşturmak mümkündür : • CREATE PFILE FROM SPFILE; • CREATE SPFILE FROM PFILE; • CREATE SPFILE=‟/oradata/spfileORCL.ora‟ from PFILE=‟/oradata/initORCL.ora‟;
  • 22. Hem PFILE hem SPFILE şu şekilde sistemde adlandırılır. PFILE için initSID.ora SPFILE için SPFILESID.ora Burada SID dediğimiz database‟in ismi yada kimliği olarak adlandırılabilir. ORACLE ‘IN BAŞLATILMASI VE DURDURULMASI Oracle „ın başlatılması ve durdurulması çeşitli adımlarla gerçekleşmektedir. Bu aşamada SPFILE yada PFILE dosyadan okunur,ve instance buradaki parametrelere göre başlatılır. Database‟in bu aşaması Database ve Control file oluşturmak için vardır. Bu aşamada ise Control file ilgili dosyadan okunur.Ve database‟in yapısı hakkında instance bilgi sahibi olur.Bu aşamada ilgili DataFile‟ların ismi değiştirilebilir,Redolog Arşivleme Enable yada Disable edilebilir.Database‟in full database kurtarması yapılabilir.
  • 23. Bu aşamada ise Bütün file‟lar ilgili lokasyonlarından okunur ve database tamamiyle başlamış olur. Herhangi bir kurtarma ihtiyacı varsa SMON bu aşamada devreye girer ve otomatik kurtarma işlemini gerçekleştirir. Komut satırından bu işlemler şu şekilde olmaktadır. Kapalı bir Database de ; CMD > sqlplus / as sysdba; SQL > startup nomount; SQL > alter database mount; SQL > alter database open; Yada kapalı bir database „i direk olarak CMD > sqlplus / as sysdba; SQL > startup; Diyerekte açabiliriz. Database‟i PFILE yada SPFILE‟dan açma şansımız vardır.Defaultta SPFILE tanımlıysa otomatik olarak SPFILE başlar.Ama istersek database‟i PFILE‟danda başlatabiliriz. SQL > STARTUP PFILE=$ORACLE_HOME/dbs/initdb01.ora Startup parametreleri aşağıda görüldüğü gibidir. STARTUP [FORCE] [RESTRICT] [PFILE=filename] [OPEN [RECOVER][database] |MOUNT |NOMOUNT]
  • 24. FORCE : Mevcut olan instance‟i acil olarak kapatıp yeni istance‟ı başlatır. RESTRICT Kullanıcıların RESTRICTED SESSION hakkı ile database‟e erişmeleri sağlanır. RECOVER : Recover yapmak için başlatılan moddur. SQL > alter database open read only; SQL > STARTUP RESTRICT; SQL > ALTER SYSTEM ENABLE RESTRICTED SESSION; Read Only modda database üzerinde sorgu çalıştırılabilir,İlgili data file‟lar offline yada online yapılabilir.Offline bir datafile recovery yapılabiliriz. Database‟in durdurulması için tek adım vardır.Yapılacak tek şey SHUTDOWN komutunun çalıştırılmasıdır. Shutdown aşamasında ise yukarıda görüldüğü gibi 4 tip kapatma işlemi mevcuttur. Shutdown Normal • Yeni bağlantı açılamaz • Oracle server shutdown olmadan bağlı olan kullanıcıların disconnect olmalarını bekler. • Database ve redo buffers diske yazılır • Background processesleri durdurulur, ve SGA memory‟den çıkarılır. • Oracle İnstance kapatmadan önce database‟i dismount ve close eder. • Gelecek Startup aşamasında recovery‟e ihtiyaç yoktur. Shutdown Transactional • Yeni bağlantı açılamaz,yeni bir transaction da başlatılamaz. • Client açtığı transaction‟u kaparsa ,bağlantıyı koparmış olur. • Tüm transactionlar kapandıysa,artık instance kapanabilir. • Gelecek Startup aşamasında recovery‟e ihtiyaç yoktur.
  • 25. Shutdown Immediate • Mevcut çalışan Sql statement ların hiçbiri tamamlanamaz. • Oracle Server kullanıcıların disconnect olmalarını beklemez. • Oracle Aktif transactionların hepsini rollback yapar. • Oracle İnstance kapatmadan önce database‟i dismount ve close eder. • Gelecek Startup aşamasında recovery‟e ihtiyaç yoktur. Shutdown Abort • Mevcut çalışan Sql statement ların hiçbiri tamamlanamaz. • Oracle Server kullanıcıların disconnect olmalarını beklemez. • Database ve redo buffers diske yazılmaz. • Commit edilmeyen transactionların hepsini rollback yapar. • İlgili dosyalar kapanmadan instance kapatılır. • Oracle İnstance kapatmadan önce database‟i dismount ve close eder. • Gelecek Startup aşamasında recovery‟e ihtiyaç yoktur. ALERT VE TRACE DOSYALARI Database‟in açıp kapatmasında yada yürüyen adımlarında herhangi bir hata olması durumununda oluşan hatanın bilgileri, Database „de alertSID.log dosyasına yazılır.Bu dosyada database ile ilgili tüm bilgiler mevcuttur. Default yeri $ORACLE_HOME/rdbms/log altındadır. Lokasyonu BACKGROUND_DUMP_DEST parametresi ile belirlenebilir. BACKGROUND TRACE Arka Planda yürüyen proseslerde oluşan hatalar sonucunda oluşurlar.Bu dosyaların da lokasyonu BACKGROUND_DUMP_DEST parametresi ile bleirlenir.Formatı sid_processname_PID.trc şeklinde verilir. db01_lgwr_23845.trc buna bir örnektir. USER TRACE Kullancılardan yani User Proseslerinden oluşan hatalar sonucunda oluşurlar.Bu dosyaların da lokasyonu USER_DUMP_DEST parametresi ile bleirlenir.Formatı sid_ora_PID.trc şeklinde verilir. db01_ora_23845.trc buna bir örnektir. MAX_DUMP_FILE_SIZE parametresi ile alınabilcek maximum büyüklük belirlenebilir. User Trace işlemi yine bizde parametrelerce belirlenip yürütülebilen bir bilgidir. Session bazlı olarak, SQL > ALTER SESSION SET SQL_TRACE = TRUE Komutuyla, Yada Paramatre file‟ından SQL_TRACE = TRUE yapılarak user trace enable edilebilir.