Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 832 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
832
On Slideshare
822
From Embeds
10
Number of Embeds
1

Actions

Shares
Downloads
40
Comments
0
Likes
0

Embeds 10

http://anargodjaev.wordpress.com 10

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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 ilgiliproblemleri çözmede anahtar roldedir. Genel olarak bir sunucu, büyük miktardaki veriye çok kullanıcılı birortamda, 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şimiengeller 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 vetablespacelerdir.Ş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ıksalyapılardır (Şema ve tablespace arasında bir bağlantı yoktur. Aynışemadaki nesneler farklı tablespacelerde bulunabileceği gibi tablespacelerde farklı şemalara ait nesnelerbulunabilir.). Başlıca şema nesneleri şunlardır:Tablolar : Oracle veritabanındaki en temel veri saklama birimidir. Veritabanı tabloları, kullanıcılartarafından ulaşılabilecek tüm veriyi bulundururlar. Her tablonun kolonları ve satırları vardır. Oracle 256veya daha az kolon içeren bir veritabanı tablosunun her satırını bir veya daha fazla satır parçası halindesaklar. Örnek olarak, çalışanların bilgilerini tutan tabloda, çalışan numarası diye bir kolon varsa, okolondaki her satır bir çalışanın çalışan numarasını tutar.Viewler : Viewler bir veya birden fazla tablo yada viewdeki verinin özelleştirilmiş bir gösterim şeklidir. Birview aynı zamanda saklanmış bir sorgu olarak da değerlendirilebilir. Viewlar aslında veri içermezler. Bununyerine 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 birseviye sağlar.İndeksler : İndeksler tablolarla ilişkilendirilen opsiyonel yapılardır. Data erişim performansını arttırmakiç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ı yadahepsini 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 Milyardan yüksek olan tüm çalışanlar). İndeksler bir tablonunbir veya
  • 2. birden çok kolonu üzerinde yaratılır. İndeksler yaratıldıktan sonra Oracle tarafından otomatik olarakbakılır ve kullanılır. Tablolar üzerinde yapılacak olan değişiklikler otomatik olarak ilişkili indekslereyansı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ırayasokuyor.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ğusistemin 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 proseslerininbir 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ı=İnstanceServerda 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 SERVEROracle Server bahsedildiği gibi sistemin genel mimarisini oluşturmaktadır.Oracle server bir veya birden fazla makine üzerinde çalışabilmektedir.Bu mimari Client-applicationServer-Database,Client – Server,Host Based olabilmektedir.Client-Application Server-Server: (Three-tier) Kullanıcılar kendi bilgisayarlarından ApplicationServer‟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ınaerişebilmektedirer.Host-Based: Bu yapıda ise kullanıcılar kendi bilgisayarlarından direk kendi makinelarında kurulu olanveritabanına ulaşabilmektedirler.ORACLE INSTANCEDatabase açıldığında otomatik olarak başlamaktadır.Oracle‟ı ilgilendiren Memory ve Proses parçalarınıntamamı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 sessionyaratılmaktadır.Session dediğimiz kavram kullanıcın kullandığı bir programla bu SQL PLUS yada herhangi birdevelopment tool‟u olabilir.Aradaki bağlantıdan dolayı Session başlamış olur.ORACLE DATABASEOracle 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ıdamuhafaza edilmektedir.Redologlar ise yaptığımız transcationları tutmaktadır.Commit edilmiş edilmemiş her bilgi bu yapıdadurmaktadı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ı vediğ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 vePFİLE olarak 2 farklı versiyonu vardır.Password file kullanıcıların sisteme otantike olmaları için vardır.Burdaki bilgilerden örneğin kimindatabase‟i açıp kapatamıyacağını görürüz.Arşiv Redologlar redologların depolanmış halidir.Normalde Redologlar büyüklükleri kadar ancaktransaction‟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ıkoluş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şımaaçı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 iyiperformansı 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‟datutulan 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 bytesFixed Size 6543794 bytesVariable Size 19521536 bytesDatabase Buffers 16777216 bytesRedo Buffers 73728 bytesSGA‟nın yapısını ise DB_CACHE_SIZE,LOG_BUFFER,SHARED_POOL_SIZE ve LARGE_POOL_SIZEoluş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 planihazirlanir. Isletilen sorgular bu alanda saklanir. Ayni sorgu birkez daha isletilmek istenirse bu çalistirmaplani dogrudan uygulanabilir. Büyüklüğü SHARED_POOL_SIZE parametresi ile belirlenir.Varsayılanolarak 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 deyimleriniSQL ve PL/SQL deyimlerinin ayristirilmis halleriniSQL ve PL/SQL deyimleri için çalistirma planlariniveri 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 etmeyeuğ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 aslatoplam SGA değeri SGA_MAX_SIZE‟ı aşmamalıdır.LİBRARY CACHELibrary 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.İştebu bilgilerin hafıza da tutulduğu yere “dictionary cache” denir.Bu bilgiler bir de “library cache”‟te detutulmaktadı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 ileoynanmalıdır.Oracle in kullandığı sql ve pl / sql parçacıklarını tutar.DATABASE BUFFER CACHEDatafile‟dan okunan veriler SGA içersinde bu alanda tutulur. Mantıksal olarak kendi içinde parçalaraayrılarak kullanılır.Veritabanı üzerinde işlem yapan tüm kullanıcılar burayı kullanırlar.Bu durumdayapılan işlemlerin belli bir sistematikte yapılması gerekmektedir.Bunu sağlamak için database buffercache‟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 vepinned 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 direkolarak okunur.Eğer yok ise veri ilgili datafile‟ın bloğundan okunur.Ama bunu yapabilmesi için öncehafızada boş alan bulunması gerekir.Bunun için LRU listesine bakılır. Boş bir alan bulunana ya datanı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ılarakilgili veri bulunan boş alanına yazılır.Boş alan bulunamadığı esnada belirlenen eşik değerine ulaşılıncaLRU listesinde arama bitirilir ve DBW0 background process‟ine bir takım dirty buffer alanını diskeyazması 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 buradanokur.SQL > ALTER SYSTEM SET DB_CACHE_SIZE = 96M; ile büyüklük değiştirilebilmektedir.REDOLOG BUFFER CACHEINSERT,UPDATE,DELETE,CREATE,ALTER ve DROP işlemleri sonucu meydana gelen değişikliklerihafızada tutulduğu kısımdır.Yapılan değişikliklerin geri alınmasında ve gerektiğinde “recovery” işlemleriiç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_BUFFERparametresi 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 POOLVeri 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ınazemin 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 = TRUEparametreleri set edilebilir.JAVA POOLJava kodlarının veritabanı içerisinde anlamlandırılması için kullanılmaktadır.PL/SQL kodlarına benzerbiç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 bilgiOracle konfigürasyonuna bağlıdır.
  • 8. PGA tarafında proses mantığında istekte bulunan User Proses buna karşılık gelen Server tarafındaServer Proses ve İnstance başladığında işlem gören Background prosess mevcuttur.Parametrenin büyüklüğü pga_aggregate_target ile belirlenir.USER PROSESSUser 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 üzerindenyürür.SERVER PROSESSUser 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 PROSESSBu 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 buffercache „i yönetir. degisiklige ugramis tüm verileri veri kütüklerine yazar. Yakin zamanda kullanilan veribloklarini bellekte tutmak için LRU (Least Recently Used) algoritmasini kullanilir. Giris/çikis islemleriniiyilestirebilmek 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 islenmedencommit edilmis sayilmaz. DBWR görevi, veri bloklarini veritabanina geri yazmadan önce yapilandegisiklikleri 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 prosesiişaretlenir.Datafile Header Checkpint anında update edilir.Aynı şekilde Control file larda Check Pointanı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 tavsiyeedilir. Eger bu görev çalistiriliyorsa veritabani ARCHIVELOG kipinde çalisiyor demektir. Bu seçenek;tablespace „lerin çevrim-içi (on-line) yedeklenmesinemedya 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 YAPIOracle‟ın logical yapısı hiyerarşik olarak Tablespace,bunun altında Segments bunun altında Extentsbunun altında Bloklardan oluşur.Veri blokları, extentler ve segmentlerden oluşan mantıksal saklama yapıları sayesinde Oracleın diskalanı ü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 veribloğu, fiziksel veritabanı alanında belirli sayıdaki bytea 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ıdakiardışı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 extentlerdolduğunda, Oracle dinamik olarak yeni yer tahsis eder. Başka bir deyişle, bir segmente ait bütünextentler dolduğunda, Oracle bu segment için yeni bir extent tahsis eder. Extentler gerekduyulduğunda tahsis edildiğinden, segmente ait extentlerin ardışık olma zorunlulukları yoktur. Üç çeşitsegment tipi vardır:Veri Segmenti : Her kümelenmemiş tablonun bir segmenti vardır. Tablonun bütün verisi, verisegmentinin 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 segmentindetutulur.İndeks Segmenti : Her indeksin kendi verisinin tutulduğu bir indeks segment vardır. Bölümlenmiş birindeksin 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 biralana ihtiyaç duyulduğunda Oracle tarafından yaratılır. SQL cümlesinin çalıştırılması tamamlandığındatemporary segment yeniden kullanılabilmesi için sisteme geri verilir.Rollback Segment : "Automatic Undo Management" modundayken, veritabanı sunucusutablespaceleri 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. Rollbacksegmentlerdeki 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 İNSTALLEROracle 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ırWindows Sistemlerde Programlar Altında bulunur,Yada yeni bir kurulum yapılacaksaCD „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,$ ./runInstallerKurulumun 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=falseSHOW_SUMMARY_PAGE=falseSHOW_INSTALL_PROGRESS_PAGE=falseSHOW_REQUIRED_CONFIG_TOOL_PAGE=falseSHOW_OPTIONAL_CONFIG_TOOL_PAGE=falseSHOW_END_SESSION_PAGE=false
  • 16. NEXT_SESSION=trueSHOW_SPLASH_SCREEN=trueSHOW_WELCOME_PAGE=falseSHOW_ROOTSH_CONFIRMATION=trueSHOW_EXIT_CONFIRMATION=trueINSTALL_TYPE="Typical”s_GlobalDBName="u01.us.oracle.com"s_mountPoint="/u01/app/oracle/ora9i/dbs"s_dbSid="db09"b_createDB=trueDATABASE CONFIGURATION ASSISTANTBu tool ise yeni bir database yaratmak,mevcut bir database‟i konfigüre etmek,yeni bir tMplate 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 USERSVeritabanı ilk kurulduğunda iki tane default sistem kullanıcısı yaratılmaktadır.Bunlardan biri SYS diğeriise SYSTEM‟dir.Bilinmesi gereken tek olay SYS kullanıcısı Veritabanını açıp kapayabiliyorken SYSTEM user‟ı bunuyapamamaktadır.SQL PLUSBu tool ise Oracle kurulumu ile beraber gelen üzerinde sorgulamalar ve yönetim yapabileceğimiz biruygulamadır.Database‟i bu tool ile kapatabilir ve açabiliriz.CMD > SQLPLUS /NOLOGSQL> connect user/sifre;CMD > SQLPLUS deneme/denemeCMD > SQLPLUS sys/deneme as sysdba;CMD > SQLPLUS user/sifre@DB
  • 18. ORACLE ENTERPRISE MANAGEROracle üzerinde tüm yönetimsel işleri yaptığımız toldur.10G ve öncesi sürümlerde JAVA tabanlı biruygulamaydı.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çinCMD > 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 memoryalanı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.Veburada 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 parameterfile‟dır. init.ora server tarafta bulunur.Ancak client‟tan (uzak erişim) ile veritabanın ulaşmak içingereklidir, 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.oradb_name = db01instance_name = db01control_files = ( /u03/oradata/db01/control01db01.ctl,/u03/oradata/db01/control02db01.ctl)db_block_size = 4096db_block_buffers = 500shared_pool_size = 31457280 # 30M Shared Pooldb_files = 1024max_dump_file_size = 10240background_dump_dest = /u05/oracle9i/admin/db01/bdumpuser_dump_dest = /u05/oracle9i/admin/db01/udumpcore_dump_dest = /u05/oracle9i/admin/db01/cdumpundo_management = autoundo_tablespace = undtbs...
  • 21. 9i sürümüyle birlikte “Server Parameter File(SPFILE) (Binary) ” kavramı geldi.SPFILE PFILEs‟danoluş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 gerekkalmamaktadı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çinSCOPE 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/oradata/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=AUTOdb01.undo_tablespace=UNDOTBS01db02.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 kontroledildiğ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 sorgukullanı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.oraSPFILE için SPFILESID.oraBurada SID dediğimiz database‟in ismi yada kimliği olarak adlandırılabilir.ORACLE ‘IN BAŞLATILMASI VE DURDURULMASIOracle „ı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 sahibiolur.Bu aşamada ilgili DataFile‟ların ismi değiştirilebilir,Redolog Arşivleme Enable yada Disableedilebilir.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şleminigerç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 olarakCMD > 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 olarakSPFILE başlar.Ama istersek database‟i PFILE‟danda başlatabiliriz.SQL > STARTUP PFILE=$ORACLE_HOME/dbs/initdb01.oraStartup 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 onlineyapı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 DOSYALARIDatabase‟in açıp kapatmasında yada yürüyen adımlarında herhangi bir hata olması durumunundaoluş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 TRACEArka Planda yürüyen proseslerde oluşan hatalar sonucunda oluşurlar.Bu dosyaların da lokasyonuBACKGROUND_DUMP_DEST parametresi ile bleirlenir.Formatı sid_processname_PID.trc şeklindeverilir. db01_lgwr_23845.trc buna bir örnektir.USER TRACEKullancılardan yani User Proseslerinden oluşan hatalar sonucunda oluşurlar.Bu dosyaların da lokasyonuUSER_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 maximumbü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 = TRUEKomutuyla,Yada Paramatre file‟ındanSQL_TRACE = TRUE yapılarak user trace enable edilebilir.