ORACLE Oracle, büyük miktarda veriyi çok kullanıcılı ortamda, birçok kullanıcının aynı anda aynı veriye erişmesine izin verecek şekilde idare edebilen.

Slides:



Advertisements
Benzer bir sunumlar
Veritabanı Nedir?
Advertisements

Hüseyin Gömleksizoğlu
VERİTABANLARI ÜZERİNDEN ÇOK KULLANICILI YAZILIMLAR İLE TİCARİ VE MÜHENDİSLİK VERİLERİNİN ANALİZLERİNİN GETİRDİĞİ FAYDALAR Dr. YILMAZ YÖRÜ Yük.Mak.Müh.
T sql-diğer komutlar Metin Akbulut.
VERİ TABANI 1 DERS 1.
4 SQL- Yapısal Sorgulama Dili
VB.net ile SQL SERVER’a bağlanmak
Microsoft SQL Server.
A. Betül Oktay Elif Edoğan Zeliha Çetin
MySQL Veritabanı Sunucusu ve MySQL Veritabanı Kullanımı
Performance Tuning Performans Düzenleme Teknikleri.
Windows işletim sistemi ve sürümlerinin incelenmesi
VERİ TABANI YÖNETİMİ Ders 11: PL/SQL’e Giriş
Microsoft Danışman Öğrenci
VERİ TABANI YÖNETİMİ Ders 10: Oracle Nesneleri
EkoPC Bilişim Ltd. Eğitim Hizmetleri
İŞLETİM SİSTEMLERİ KONTROL: PROF.DR.ASAF VAROL DÖNE KARAOĞLAN BİLGİSAYAR SİSTEMLERİ Bilgisayar Öğretmenliği (Gece) - 4.
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
Java Performans Yönetimi
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
SQL (STRUCTURED QUERY LANGUAGE)
Bilgisayar Mühendisliği Bölümü
Çevre ve Orman Bakanlığı Bilgi İşlem Dairesi Başkanlığı
Veritabanı Temel Kavramlar ve
Management Studio Kullanımı
VIEW (BAKIŞ) OLUŞTURMA
VIEW lerle çalışmak 11.BÖLÜM.
Veri Tabanı Yönetim Sistemleri 2 Ders 1 Oracle Veritabanı Mimarisi
Bilgisayar Mühendisliği Bölümü
SQL Dili ve MySQL Komutları
Ankara T.C. MİLLÎ EĞİTİM BAKANLIĞI EĞİTİM TEKNOLOJİLERİ GENEL MÜDÜRLÜĞÜ Bilişim Teknolojileri Formatör Öğretmen Eğitimi Programı Bilişim Teknolojileri.
İşletim Sistemleri Tanım: Kullanıcı ile bilgisayar donanımı arasında bağlantıyı sağlayan özel bir yazılımdır.
BİLGİSAYAR AĞLARI.
Veri Tabanı Yönetim Sistemleri 2 Ders 2 Oracle 12c Kurulumu
VeriTabanı Uygulama.
PHP ve MYSQL Veritabanı Sunucusu
AĞ İŞLETİM SİSTEMLERİ Öğr. Gör. Mustafa SARIÖZ
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
SQL SERVER Giriş A. Betül Oktay Ayşe Betül Oktay 2006.
SQL Sibel SOMYÜREK.
SQL Komutları (2) Uzm. Murat YAZICI.
VERİTABANI MİMARİSİ Talip Hakan ÖZTÜRK Bank ASYA – ORACLE DBA
VERİTABANI MİMARİSİ Talip Hakan ÖZTÜRK BANKASYA – ORACLE DBA
GRANT RESOURCE TO ayse; GRANT CONNECT TO ayse;
Create Directory:  Server’daki bir directory’e alias atamak ve bu alias üzerinden bu directory’e db’deki bir dosyayı yazmak veya dosyayı buradan db’ye.
DISASTER RECOVERY SOLUTION
Bilgisayar Mühendisliği Bölümü
Gizem Tanış Bozok Üniversitesi Öğr. Görevlisi.  Veri erişimi için ADO.NET kodunu yazmak ve yönetmek zordur.  Microsoft, uygulamada veritabanı aktivitelerini.
Bilgisayar Mühendisliği Bölümü
Update UPDATE tablo_ismi SET sutun1=‘deger1’ WHERE sutun=deger.
Veritabanı Yönetim Sistemleri - I
Veritabanı Yönetim Sistemleri
CA VISUAL OBJECTS ORACLE, MS SQL & MY SQL BAĞLANTıSı Suat ÇELİK Mak. Yük. Müh İskenderrun, © Suat ÇELİK.
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı Arş. Gör. Pınar CİHAN.
PRODECURE, TRIGGER, INDEX, BACKUP
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Sunum Planı 2 Veri Temelleri Veri & Bilgi Dijital Veri & Sayısallaştırma Dijital Veri Saklama Veritabanı Veri Saklama VTYS SQL Veri Yönetimi Veri Ambarı.
EurobankTekfen SQL Server DBA Turgay Sahtiyan.
Bilgisayar Mühendisliği Bölümü
Asp.Net Veritabanı İşlemleri
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
haZIRLAYAN: ELİF KARAOĞLU
ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
VIEW lerle çalışmak 11.BÖLÜM.
Bilgisayar Mühendisliği Bölümü
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
Asp.Net Veritabanı İşlemleri
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
Genel PHP Akademik Bilişim 2003 Adana, Şubat 2003 Hidayet Doğan
Transaction.
Sunum transkripti:

ORACLE Oracle, büyük miktarda veriyi çok kullanıcılı ortamda, birçok kullanıcının aynı anda aynı veriye erişmesine izin verecek şekilde idare edebilen bir ilişkisel veri tabanı yönetim sistemidir (İVTYS-RDBMS). Yüksek performansı, yetkisiz kullanıcıların girişlerini engellemesi ve beklenmedik durumlarda oluşabilecek veri kaybını engelleyecek çözümler sunması en önemli özelliklerinden bazılarıdır. Sadece Windows işletim sistemi ile değil, farklı işletim sistemleri ile de (Özellikle Unix&Linux platformları ile) çalışabilmesi nedeniyle MS SQL Server’a göre kullanım oranı daha yüksektir (Tüm dünyada %48’lik pazar payı ile en çok kullanılan İVTYS’dir. *) * “Gartner 2009 Worldwide RDBMS Market Share Reports” verilerine göre Rakipleri: IBM DB2 (%21) Microsoft SQL Server (%18.5) Sybase SQL Server (%3.5) Teradata Database (%3.3)

Veritabanı Yapısı Mantıksal Fiziksel Veritabanı Veri Tablespace Dosyası Tablespace Mantıksal Segment Fiziksel Extent Block: Veri blokları, Oracle veritabanında verinin saklandığı en küçük yapıdır. Oracle block’ları, işletim sistemi bloklarına eşit veya onların katları olabilir. DB_BLOCK_SIZE parametresi ile bu büyüklük belirlenebilir. Extent: Bir extent (uzantı), 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. Extent’ler sadece bir veri dosyasında bulunabilirler. Segment: Segment (bölüm), 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. Bir segment, aynı tablespace’e ait olan dosyalar arasında bölüşülebilir. Segment tipleri; Table, Index, Temporary ve Rollback. Tablespace: Tablespace yönetimsel işleri kolaylaştırmak için bütün uygulama nesnelerini birlikte gruplar. Kullanıcılara yer tahsis etmek, verinin ulaşılabilirliğini kontrol etmek, veri saklanmasını farklı disklere bölerek I/O performansını arttırmak, kısmi backup ve kısmi recovery işlemlerini gerçekleştirmek gibi kullanım alanları vardır. Her tablespace sadece bir veritabanına ait olabilir, ve bir yada daha çok işletim sistemi dosyasından oluşur. Veritabanı çalışırken tablespace’ler offline konumuna getirilebilir. “Oracle Storage Manager” ile tablespace yaratılabilir. Veri Dosyası: Her tablespace bir yada daha çok veri dosyası içerir. Bir veri dosyası sadece bir tablespace’e ait olabilir. Veritabanı yöneticisi, bir veri dosyasının büyüklüğünü, o dosyanın yaratılmasından sonra da değiştirebilir, veya tablespace nesnesinin büyümesiyle orantılı olarak büyümesini sağlayabilir. Oracle block O/S Block

Process’ler ve Instance SGA Shared pool DBWn LGWR Server process PGA User process Kontrol dosyaları Veri dosyaları Online redo log dosyaları Kullanıcı SQL*Plus gibi bir araç veya veritabanını kullanan bir uygulama çalıştırdığında, istemci makinede bir user process başlatılır. Kullanıcı, adını, şifresini ve ulaşmak istediği veritabanının ismini girerek Oracle Sunucusuna bağlanır ve o anda sunucu makinede bir server process yaratılır (Eğer Dedicated Server değil de Shared Server yapısı kullanılıyorsa her user process için ayrı bir server process oluşturulmaz. Her oturum dispatcher tarafından paylaşımlı server process havuzuna yönlendirilerek, user process’in faaliyette olan bir server process ile ilişkilendirilmesi sağlanır). User process isteklerini server process’e iletir. Server process istekleri yerine getirir, ve sonucunu user process’e verir. Kullanıcı bağlantıyı kestiğinde server ve user process’ler bitirilir. Oracle sunucusunda server process dışında, disk girdi/çıktı işlemleri gibi arkaplan işlemlerini gerçekleştiren background process’ler de vardır. Bunlar user process ile doğrudan ilişkili değildirler. Belirli zaman aralıklarında veya belirli koşulların sağlanması durumunda çalışırlar. Her çalışan Oracle veritabanı bir instance (an / örnek) ile ilişkilendirilir. ORACLE_SID ile işletim sistemine tanıtılan instance, belirli bir zamanda sadece bir veritabanını açıp kullanabilir. Veritabanı

Oracle Hafıza Mimarisi Server process 1 Server process 2 Background process PGA PGA PGA Data Dictionary cache SGA Shared SQL area Library cache Other Redo log buffer Shared pool Free memory I/O Buffer Database buffer cache Instance, System Global Area (SGA) adında bir hafıza yapısına sahiptir. SGA tüm sunucu ve arkaplan işlemleri tarafından paylaşılır. SGA’nın içindeki bileşenler: Database Buffer Cache: Veritabanından elde edilen veri bloklarını saklar. Redo Log Buffer: Instance’ın veritabanında yaptığı değişikliklerin kaydedildiği bölgedir. Gerektiğinde recovery işleminde kullanılmak üzere bu bilgiler belirli zaman aralıklarında redo log dosyalarına aktarılır. Shared Pool: En son çalıştırılan sorgu ve veri kütüphanesinden en son kullanılan veri gibi bilgileri saklar. Large Pool: Backup/Recovery işlemleri ve I/O sunucu işlemleri gibi bazı büyük işlemler için büyük miktarda hafıza tahsisi gerektiğinde kullanılan bölgedir. Java Pool: Java Sanal Makinesi (JVM) tarafından kullanılan tüm oturum-bazlı Java kodu ve verisini saklar. Streams Pool: Yakalama (capture) ve uygulama (apply) işlemleri için gerekli olan bilgileri saklamak için Oracle Stream’leri tarafından kullanılır. Process Global Area (PGA), bir server process'i veya bir arkaplan process'i için veri ve kontrol bilgilerini içeren hafıza bölgesidir. Birçok process tarafından paylaşılabilen SGA'nın tersine, PGA sadece kendisini başlatan process tarafından kullanılabilir. Response queue Request queue Java pool Streams pool Large pool

Veritabanı Saklama Mimarisi Kontrol dosyaları Veri dosyaları Online redo log dosyaları Parametre dosyası Yedek dosyaları Arşivlenmiş redo log dosyaları Kontrol dosyaları: Kontrol dosyasında veritabanının fiziksel yapısı ile ilgili bilgiler (veritabanının adı, veri dosyaları ve redo log dosyalarının yerleri ve adları, …) tutulur. Bir veritabanı en az bir kontrol dosyası içerir. Veri dosyaları: Veri kütüphanesini, kullanıcı (şema) nesnelerini ve transaction’lar tarafından değiştirilen eski değerleri saklar. Bir veritabanı en az bir veri dosyasına sahiptir. Online redo log dosyaları: Beklenmedik durumlar karşısında veri kaybını önlemek ve veritabanını yeniden oluşturmayı sağlamak için veritabanında olan değişikliklerin kaydını tutar. Bir veritabanına en az 2 redo log gereklidir. Parametre dosyası: Bir Oracle instance’ının kendisini başlatırken gerek duyduğu tanımların saklandığı metin tabanlı dosyadır. Şifre dosyası: SYS gibi ayrıcalıklı veritabanı kullanıcılarının şifrelerini saklar. Yedek dosyaları: Orijinal veri dosyasının hasar görmesi durumunda kullanılır. Arşivlenmiş redo log dosyaları: Redo log dosyalarının offline kopyalarıdır. Disk bozukluğu gibi durumlarda kurtarma işlevi görür. Trace dosyaları: Her process kendisi ile ilişkilendirilen trace (iz) dosyasına hata durumlarının kaydını yazar. Gerekli olduğu durumlarda veritabanı yöneticisi veya Oracle destek birimi çalışanı tarafından incelenir. Alert log dosyası: Veritabanındaki hataların kronolojik olarak yazıldığı dosyadır. Belirli aralıklarla göz atılması tavsiye edilir. Şifre dosyası Alert log ve trace dosyaları

Parametre Dosyası db_name = VT1 control_files = (c:\data\control01.con, d:\data\control02.con) db_block_size = 8192 db_block_buffers = 200 # 550 (ORTA), 3200 (BÜYÜK) db_files = 100 # 400 (ORTA), 1000 (BÜYÜK) shared_pool_size = 3000000 # 5000000 (ORTA), 9000000 (BÜYÜK) log_buffer = 8192 # 32768 (ORTA), 163840 (BÜYÜK) processes = 50 # 100 (ORTA), 200 (BÜYÜK) db_file_multiblock_read_count = 8 # 16 (ORTA),32 (BÜYÜK) log_checkpoint_interval = 10000 # 10 saniyede 1 checkpoint max_dump_file_size = 10240 # en fazla 5MB olabilir background_dump_dest = (d:\oracle\admin\ORCL\backdump) user_dump_dest = (d:\oracle\admin\ORCL\userdump) # audit_trail = true # timed_statistics = true ... DB_NAME: 8 yada daha az sayıda karakterden oluşur. Veritabanını tanımlar. ORACLE_SID ile aynı olmak zorunda değildir, ama CREATE DATABASE’de kullanılan isimle aynı olmalıdır. CONTROL_FILES: Kontrol dosyalarının listesini belirler. (Eğer mümkünse farklı disklerde yer alan en az 2 kontrol dosyası yaratın. Bu aşamada kontrol dosyasının var olup olmaması önemli değildir. Oracle Server veritabanını yaratırken, yeni işletim sistemi dosyaları yaratabilir.) DB_BLOCK_SIZE: Veritabanı block genişliğini belirler. (Veritabanı yaratıldıktan sonra bu büyüklük değiştirilemez.) Yukarıdaki 3 parametreyi instance’ı başlatabilmek için mutlaka tanımlamak gerekir. Seçimlik parametrelerin bazıları: DB_BLOCK_BUFFERS: SGA’daki block sayısı. Varsayılan ve en az değer 50. SHARED_POOL_SIZE: Paylaşım havuzunun byte cinsinden büyüklüğü. Varsayılan değeri 3500000. MAX_DUMP_FILE_SIZE: Kullanıcı işaret dosyalarının (trace files) alabileceği en büyük değer. (birimi: işletim sistemi bloğu) BACKGROUND_DUMP_DEST: Arkaplan işaret dosyasının ve ALERT dosyasının yerini belirler. USER_DUMP_DEST: Kullanıcı isteği ile yaratılacak işaret dosyalarının yerini belirler.

Trace dosyaları ve Alert log dosyası Oracle instance'ı çalışırken bir hata oluşursa, mesajlar ALERT dosyasına kronolojik olarak yazılır. Veritabanı açılırken, eğer ALERT dosyası yoksa Oracle bir tane yaratır. Eğer hata bir arkaplan işlemi tarafından tespit edildiyse, bilgi bir iz (trace) dosyasına yazılır. İz dosyaları aynı zamanda kullanıcının isteği ile server işlemleri tarafından da yaratılabilir. Bu dosyalara kullanıcı iz dosyaları (user trace files) denir. Bu dosyaların konumu parametre dosyasındaki USER_DUMP_DEST ile, alabileceği en büyük değer ise MAX_DUMP_FILE_SIZE ile belirlenebilir. Aşağıdaki komut belirli bir oturum için bir işaret dosyasının kullanılmasını sağlar. ALTER SESSION SET SQL_TRACE = TRUE;

Arkaplan (background) Process’leri Arkaplan İşlemleri Server Server Server Server Server Sunucu process’leri SGA Shared pool Database buffer cache Redo log buffer Library cache SGA Data dict. cache CKPT RECO PMON SMON DBWn LGWR ARCn Others Her Oracle instance’ı, farklı arkaplan işlemlerine sahip olabilir. RAC (Real Application Clusters) ve ASM (Automatic Storage Management) kullanılmadığı durumlarda instance içinde yer alan arkaplan işlemleri: Database Writer process (DBWn) Log Writer process (LGWR) Checkpoint process (CKPT) System Monitor process (SMON) Process Monitor process (PMON) Recoverer process (RECO) Job Queue processes Archiver processes (ARCn) Queue Monitor processes (QMNn) Eğer RAC veya ASM kullanılıyorsa daha fazla sayıda arkaplan işlemi kullanılır. V$BGPROCESS görünümü içinde arkaplan işlemleri ile ilgili bilgiler yer alır. Bazı arkaplan işlemleri instance başladığında otomatik olarak yaratılırken, bazıları ise gerekli olduğu durumlarda başlatılır. Arkaplan (background) Process’leri

Database Writer (DBWn) Instance SGA Shared pool DBWR Database buffer cache Veri Dosyaları Kontrol dosyaları Redo log dosyaları Database Writer (DBWn): Server Process, değişiklikleri database buffer cache’deki veri ve rollback bloklarına kaydeder. Database Writer (DBWR), dirty buffer’ları database buffer cache’ten veri dosyalarına yazar. Yeterli sayıda serbest buffer’ın (Server process’in veri dosyalarından blok okuması gerektiğinde, üstüne yazılabilecek buffer’lar) database buffer cache’de bulunmasını sağlar. Server process direkt olarak veri dosyalarına ulaşmadığı için performans artar. DBWR aşağıdaki olaylardan biri gerçekleşince çalışır: 1 Dirty buffers sayısı eşik değerine ulaştığında 2 Bir işlem belirli sayıda boş blok arayıp bulamadığında 3 Bir zamanaşımı oluştuğunda 4 Veritabanı kapanırken

Log Writer (LGWR) Instance SGA Shared pool Redo log buffer LGWR Veri Dosyaları Kontrol dosyaları Redo log dosyaları Log Writer (LGWR): Girdileri redo log buffer’dan redo log dosyalarına yazan arkaplan işlemidir. Aşağıdaki durumlarda LGWR redo log dosyasına sıralı yazma işlemi gerçekleştirir. 1 Redo log buffer'ın 1/3'ü dolduğunda 2 Bir zamanaşımı oluştuğunda (her 3 saniyede bir defa) 3 DBWR değişen blokları database buffer cache'ten veri dosyalarına aktarmadan önce 4 Bir transaction commit edildiğinde (işlendiğinde) System Monitor (SMON): Veritabanı açıldığında recovery gerekip gerekmediğini araştırır. Veritabanının tutarlılığını kontrol eder. Process Monitor (PMON): Process’lerden biri sonlanmazsa bu process’in kullandığı tüm kaynakları temizler. Checkpoint process (CKPT): Buffer cache’teki değişiklikler veritabanına kaydedildiğinde, veritabanının durum bilgisini günceller.

Bir Sorgunun İşlenmesi Parse Statement Handle Execute SELECT * FROM emp ORDER BY ename; Handle Fetch OK OK Results User process Server process 1 Parse Bu bölümde, kullanıcı process'i sorguyu server process'e, yazım kontrolü için bir istek ile gönderir veya sorguyu işler. Server process, komutun geçerliliğini kontrol eder, ve SGA'daki Shared Pool alanını ifadeyi derlemek için kullanır. Bu safhanın sonunda server process user process'e olumlu yada olumsuz bir yanıt gönderir. Parse aşamasında kullanılan Shared Pool içinde bulunan Library Cache, en son kullanılan SQL ifadeleri ile ilgili bilgileri saklar. Bir ifade yeniden çalıştırılırken, eğer çalıştırma planının üzerine başka ifadelerin çalıştırma planları yazılmadıysa, server process ifadeyi yazım açısından incelemek (parse) zorunda kalmaz. Data Dictionary Cache ise, tablo ve kolon tanımlamaları, kullanıcı isimleri ve şifreler, ve ayrıcalıklar gibi en son kullanılan veri kütüphanesi bilgilerini içerir. 2 Execute Bu safhada server process veriyi almak için hazırlar. 3 Fetch Sorgu tarafından seçilen satırlar bu safhada server'dan user'a gider. Transfer için kullanılan hafızanın büyüklüğüne bağlı olarak, sorgunun sonucunu kullanıcıya aktarmak için bir yada daha çok fetch (alıp getirme) gereklidir.

Bir DML İfadesinin İşlenmesi 3 UPDATE emp SET sal=sal*1.1 WHERE empno=7369 Instance SGA Shared pool Library cache Redo log buffer Database buffer cache Data dictionary cache 4 5 Server process 2 1 Kontrol dosyaları Redo log dosyaları Veri dosyaları Veritabanı Bir DML (Data Manipulation Language) ifadesi (UPDATE, DELETE, INSERT) sadece Parse ve Execute safhalarını içerir. 1 Server process, veri ve rollback bloklarını buffer cache’de bulamazsa, bu blokları veri dosyalarından okur. 2 Okunan blokları buffer cache’e kopyalar. 3 Server process veriyi kilitler. 4 Server process, yapılan değişikliği, redo log buffer içindeki rollback (önceki değer) ve veri (yeni değer) kısımlarına kaydeder. 5 Server process, database buffer cache içindeki rollback bloğuna önceki değeri kaydeder ve veri bloğunu da günceller. Buffer cache’teki her iki blok, diskteki ilgili bloklarla aynı değerlere sahip olmadıklarını belirtmesi için, dirty buffers olarak işaretlenir. Database Buffer Cache: En son kullanılan veri bloklarını saklamak için kullanılır. Her bir buffer'ın büyüklüğü, DB_BLOCK_SIZE parametresi ile belirlenen blok boyutu ile aynıdır. Buffer sayısı DB_BLOCK_BUFFERS ile belirlenir. Oracle server Buffer Cache'de yeni blok alanları temin etmek için Least Recently Used (LRU) algoritmasını kullanır.

COMMIT İşlemi 1 4 3 2 Server process User process Instance SGA Shared pool Server process Database buffer cache Redo log buffer 4 2 3 LGWR User process Kontrol dosyaları Redo log dosyaları Veri dosyaları Veritabanı 1 Server process, redo log buffer’a bir commit kaydı yapar. Bu kaydı yaparken SCN (System Change Number) kullanır. Bir transaction commit edildiğinde, Oracle Server bu transaction’a, veritabanı için unique olan ve devamlı artan bir SCN verir. 2 LGWR redo log buffer girdilerini, commit kaydı ile beraber, redo log dosyalarına yazar. Bu noktadan sonra, dosya okuma hatası oluşmadıkça, Oracle server değişiklerin kaybolmayacağını garanti eder. 3 COMMIT’in tamamlandığı kullanıcıya bildirilir. 4 Server process, transaction’ın bittiğine ve kilitlerin kaldırılabileceğine dair bilgiyi kaydeder. COMMIT’in avantajları: Log dosyalarına sıralı yazmak, veri dosyalarındaki farklı bloklara yazmaktan daha hızlıdır. Log dosyalarına yazılan değişiklikleri kaydeden bilgi çok küçüktür. Bunun yanında veri dosyalarına yazmak, verinin tüm bloklarının yazılmasını gerektirir. Transaction’ın büyüklüğü COMMIT işleminin harcadığı zamanı etkilemez.

Veritabanının Yaratılması CREATE DATABASE VT1 MAXLOGFILES 32 MAXLOGMEMBERS 5 MAXDATAFILES 100 MAXLOGHISTORY 100 LOGFILE GROUP 1 ('c:\oradb\log1a.rdo','d:\oradb\log1b.rdo') SIZE 1 M, GROUP 2 ('c:\oradb\log2a.rdo','d:\oradb\log2b.rdo') SIZE 1 M DATAFILE 'c:\oradb\system01.dbf' size 32M autoextend on CHARACTER SET WE8ISO8859P9 NATIONAL CHARACTER SET WE8ISO8859P9; MAXLOGFILES Veritabanı için yaratılabilecek en fazla log dosyası grubu sayısı MAXLOGMEMBERS Bir log dosyası grubu için en fazla üye sayısı MAXDATAFILES Veritabanı için yaratılabilecek en fazla veri dosyası sayısı MAXLOGHISTORY Oracle Parallel Server’ın otomatik recovery yapması için oluşturabileceği en fazla redo log sayısı LOGFILE GROUP Kullanılacak log dosyalarının ve ait oldukları grupların isimlerini belirler DATAFILE Kullanılacak veri dosyalarını tanımlar AUTOEXTEND ON Otomatik büyümeye izin verir OFF Otomatik büyümeye izin vermez CHARACTER SET Veritabanının veriyi saklamak için kullanacağı karakter kümesi (örneğimizdeki WE8ISO885P9, Türkçe karakter setidir)

Database Configuration Assistant Veritabanını “Configuration and Migration Tools” altında yer alan “Database Configuration Assistant” uygulamasını kullanarak ta yaratabiliriz. Bu uygulama ilgili servisleri başlatır, parametre dosyasını yaratır ve düzenler, veritabanını yaratır, veri sözlüğünü oluşturmak için ve PL/SQL için gerekli olan tüm script’leri yürütür. Bu uygulama aynı zamanda veritabanlarını ve servisleri sistemden kaldırmak için de kullanılabilir.

Startup ve Shutdown OPEN STARTUP MOUNT NOMOUNT SHUTDOWN SHUTDOWN Bu instance için control dosyası tarafından tanımlanan tüm dosyalar açıldı. MOUNT Bu instance için control dosyası açıldı. NOMOUNT SHUTDOWN Instance başladı. SHUTDOWN NOMOUNT Veritabanı yaratılırken, veya kontrol dosyaları tekrar yaratılırken kullanılır. Instance başlarken; parametre dosyası (init<SID>.ora) okunur, SGA oluşturulur, arkaplan işlemleri başlatılır, trace ve ALERT dosyaları açılır. MOUNT Özel bakım işlemlerini gerçekleştirmek için kullanılır. Örneğin veritabanı şu işlemler için, açılmadan, sadece mount edilmelidir; Veri dosyalarının isimlerinin değiştirilmesi Redo log arşivleme seçeneklerinin değiştirilmesi Veritabanının yedeğinin alınması Mount edilirken; önceden açılmış instance ile veritabanı ilişkilendirilir, parametre dosyasında belirtilen kontrol dosyaları açılır, veri ve redo log dosyalarının durumlarını ve isimlerini elde etmek için kontrol dosyası okunur. OPEN Veritabanı açılınca tüm kullanıcılar veritabanına bağlanabilir. Veritabanı açılırken; online veri dosyaları ve online redo log dosyaları açılır.

Shutdown Seçenekleri Shutdown Modu Yeni bağlantılara izin verme Session’ların bitmesini bekleme Transaction’ların bitmesini bekleme Checkpoint ile tüm dosyaları kapama A I T N Shutdown modu: A Abort I Immediate T Transactional N Normal Normal Default kapanma modudur. Yeni bağlantılara izin verilmez. Oracle Server tüm kullanıcıların bağlantılarını kesmelerini bekler. Oracle instance’ı kapatmadan önce veritabanını dismount eder ve kapatır. Bir sonraki startup instance recovery gerektirmez. Transactional Hiçbir istemci yeni bir transaction’a başlayamaz. Devam eden transaction’ı biten istemcinin bağlantısı kesilir. Tüm transaction’lar bittiğinde shutdown immediate oluşur. Bir sonraki startup instance recovery gerektirmez. Immediate Devam etmekte olan SQL ifadeleri bitirilmez. Oracle Server, veritabanına bağlı olan kullanıcıların, bağlantılarını kesmelerini beklemez. Aktif transaction’lar rollback edilir ve bağlı tüm kullanıcıların bağlantısı kesilir. Oracle instance’ı kapatmadan önce veritabanını dismount eder ve kapatır. Bir sonraki startup instance recovery gerektirmez. Abort Diğer 3 yöntemle kapanma gerçekleştirilemezse, veritabanı instance’ı gözardı edilerek kapatılabilir. Devam etmekte olan SQL ifadeleri derhal sonlandırılır. Oracle, veritabanına bağlı olan kullanıcıların, bağlantılarını kesmelerini beklemez. Commit edilmeyen transaction’lar rollback edilmez. Dosyalar kapatılmadan instance sonlandırılır. Bir sonraki startup instance recovery gerektirir.

Dinamik Performans Görünümlerine Erişim OPEN Veri sözlüğü (Data dictionary) MOUNT Veriyi diskten okuyan dinamik performans görünümleri NOMOUNT Hafızadan okunan dinamik performans görünümleri SHUTDOWN Veritabanı açık ve kullanımda olduğu sürece güncellenen görünümlere (view) dinamik performans görünümleri denir. Sadece veritabanı yöneticisine açık olan bu görünümlerin içerikleri performansla doğrudan ilgilidir. Dahili disk yapıları ve hafıza yapıları hakkında veri sağlarlar. Dinamik performans görünümleri V_$ ile başlar (V$ ön eki ile başlayan eş anlamlı (synonym) görünümler de vardır). Instance NOMOUNT konumunda açıldığında, hafızadan okunan V$ görünümlerine erişilebilir. Kontrol dosyasından okunan görünümler ise veritabanının mount edilmesine ihtiyaç duyarlar. V$FIXED_TABLE, tüm dinamik performans görünümlerini görüntüler.

Dinamik Performans Görünümlerinden Örnekler V$PARAMETER V$SGA V$OPTION V$PROCESS V$SESSION V$VERSION V$INSTANCE SGA V$THREAD V$CONTROLFILE V$DATABASE V$DATAFILE V$DATAFILE_HEADER V$LOGFILE Control file 1) NOMOUNT konumunda erişilebilen dinamik performans görünümleri V$PARAMETER Başlangıç parametresi hakkında bilgi içerir V$SGA SGA üzerine özet bilgi içerir V$OPTION Oracle Server ile kurulan seçenekleri listeler V$PROCESS Aktif haldeki işlemler hakkında bilgi içerir V$SESSION O anki oturum bilgisini listeler V$VERSION Sürüm numarası ve bileşenleri listeler V$INSTANCE O anki instance’ın durumunu görüntüler 2) MOUNT konumunda erişilebilen dinamik performans görünümleri V$THREAD Bağ bilgisini içerir (Örneğin redo log grupları) V$CONTROLFILE Kontrol dosyalarının isimlerini listeler (NOMOUNT konumun-da kullanılabilmesine rağmen, hiç satır döndürmez) V$DATABASE Veritabanı bilgisini içerir V$DATAFILE Kontrol dosyasından veri dosyası bilgisini içerir V$DATAFILE_HEADER Kontrol dosyasından veri dosyası başlığı bilgisini görüntüler V$LOGFILE Online redo log dosyaları hakkında bilgi içerir

Veri Sözlüğü Veri sözlüğü aşağıdaki bilgileri içerir: Mantıksal ve fiziksel veritabanı yapısı İsimler, tanımlar, ve şema nesnelerinin alan tahsis etmesi Bütünlük sınırlamaları Veritabanı kullanıcıları ve yetkileri İzleme (Auditing) Veri Sözlüğü, ilgili veritabanı hakkında bilgiler sağlayan tablolar ve görünümler içerir. Veritabanı kullanıcıları, yöneticileri ve Oracle sunucusu için bilgi kaynağı merkezidir. Bir DDL komutu çalıştırıldığında, veri sözlüğü Oracle sunucusu tarafından güncellenir. Veri sözlüğünün sahibi SYS kullanıcısıdır, ve SYSTEM tablespace’inde bulunur. Temel tablolar ve veri sözlüğü görünümleri içerir. Temel Tablolar: Temel veri sözlüğü tabloları, veritabanı yaratılırken sql.bsq* script’i ile yaratılırlar. Bu tablolara Oracle sunucusu şifreli olarak bilgi yazar (DDL). INSERT, UPDATE ve DELETE gibi DML ifadeleri bu tablolar üzerinde çalıştırılmamalıdır. Veri Sözlüğü Görünümleri: catalog.sql* script’inin yürütülmesiyle yaratılırlar. Temel veri sözlüğü tablolarındaki bilgileri deşifre edip özetlerler. Kullanıcıların kolayca erişebilmesi için, bu görünümlerin eşanlamlıları da yaratılır. Çoğu kullanıcı veri sözlüğünü tablolarla değil görünümlerle sorgular. Veri sözlüğü görünümleri 3 değişik ön eke sahip olurlar. USER ön ekli olanlar, kullanıcının sahip olduğu nesneleri gösterirler (örnek: USER_TABLES). ALL ön ekli olanlar, kullanıcının sahip olduklarını ve erişmesine izin verilen tüm nesneleri gösterirler (örnek: ALL_TABLES). DBA ön ekli olanlar, veritabanındaki tüm nesneleri gösterirler. Veritabanı yöneticileri ve SELECT ANY TABLE sistem ayrıcalığına sahip kullanıcılar tarafından sorgulanabilirler (örnek: DBA_TABLES, DBA_USERS, DBA_ROLES). * Bu scriptler ve diğer gerekli scriptler %ORACLE_HOME%\rdbms80\admin dizininde yer alırlar.

PL/SQL PL/SQL, Oracle'ın normal SQL'e yaptığı prosedürel programlama eklentilerinden oluşur. SQL'in kullanım kolaylığı ve esnekliği ile yapısal programlama dillerinin prosedürel fonksiyonalitesini birleştirmiştir. Veritabanı uygulaması dizayn ederken PL/SQL'in şu avantajları vardır: PL/SQL kodu direkt olarak veritabanında saklanabildiği için performansı çok daha iyidir. PL/SQL kodu içinde veri erişimi kontrol edilebilir. Bu sayede PL/SQL kullanıcıları veriye uygulama geliştiricisinin istediği şekilde ulaşırlar. Normal SQL'de olduğunun aksine cümle cümle yollamak yerine PL/SQL bloklar halinde yollanabilir, bu da kompleks işlemlerde gereksiz network trafiği yapılmasını engeller. Prosedürler ve Fonksiyonlar : Belirli işleri yapmak veya belirli bir problemi çözmek üzere bir araya getirilmiş PL/SQL ve SQL cümleleri kümeleridir. Bunlar derlenmiş bir şekilde veritabanında saklanır ve kullanıcılar yada veritabanı uygulamaları tarafından kullanılabilirler. Paketler : Birbiriyle ilişkili olan prosedürlerin, fonksiyonların, değişkenlerin ve diğer yapıların bir bütün haline getirildiği ve veritabanında saklandığı yapıdır. Bir global değişkenin tanımlanıp paket içindeki herhangi bir prosedürde çağrılabilmesi gibi ekstra özellikler sağlar. Ayrıca paketler bir bütün halinde bir kerede parse edilip, derlenip, belleğe yüklendiği için performans artışı da sağlar. Veritabanı Tetikleri: Bir tablo veya görünümde değişiklik olduğunda, bir kullanıcı yada veritabanı sistemi aksiyonu gerçekleştiğinde, veritabanı tarafından otomatik olarak çağrılan, PL/SQL, Java veya C prosedürleridir. Veritabanı tetikleri, veritabanı yönetimi için çeşitli yollar sağlar. Örneğin, veri yaratmayı otomatik hale getirmek, veri değişimini izlemek, kompleks güvenlik yetkilendirilmesi sağlamak gibi amaçlar için kullanılabilir. Bağımsız Bloklar : Bağımsız veritabanı hareketleri PL/SQL bloklarının içinden çağırılabilirler. Bir bağımsız PL/SQL bloğuna girildiğinde, onu çağıran veritabanı hareketi geçici olarak durdurulur. Bu operasyon, bu blok içinde yada bu blok içinden çağırılan diğer bloklarda yapılan işlemlerin, onları çağıran veritabanı hareketinin durumunu etkilememesini sağlar.

Oracle Developer Suite Oracle’da veritabanının ve onu kullanan çeşitli uygulamaların geliştirilmesine yardımcı olan araçların bulunduğu üründür. (Eski isimleri: Oracle Power Objects, Oracle Developer 2000). Bu üründe bulunan araçlardan bazıları: Oracle JDeveloper Oracle Forms Oracle Reports Oracle Designer Oracle Discoverer Oracle Software Configuration Manager Oracle Business Intelligence Beans JDeveloper Java tabanlı yazılım geliştirme aracıdır. Genellikle web-tabanlı yazılım geliştirmede kullanılır. Forms Kullanıcıların veri girişi yapmaları için veya var olan verileri sorgulamaları için kullanacakları arayüzlerin geliştirildiği uygulamadır. Reports Veritabanından elde edilen bilgiler ile fatura, evrak gibi dokümanlar (raporlar) hazırlamaya yarayan uygulamadır. Designer Veritabanı nesnelerinin görsel olarak oluşturulabilmesi için geliştirilmiş bir uygulamadır.

Automatic Storage Management Taşınabilir ve yüksek performanslı dosya sistemi Oracle veritabanı dosyalarını idare eder. Yükü dengelemek için veriyi diskler arasında paylaştırır. Diskler arasında eşleme (mirroring) yapan entegre bir mekanizmaya sahiptir. Saklama idaresi ile ilgili birçok sorunu çözer ASM File system Volume manager Operating system Application Database Oracle Database 11g: Administration Workshop II 1 - 23