Oracle Veritabanı Yönetim Sistemi ne Giriş

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Oracle Veritabanı Yönetim Sistemi ne Giriş"

Transkript

1 Oracle Veritabanı Yönetim Sistemi ne Giriş

2 İçerik 1. Oracle Veritabanı Yönetim Sistemine Giriş.. 4 Veritabanı Yapısı ve Alan Yönetimi Veri Erişimi Tablespaceler Uygulama Mimarisi Dağıtılmış Veritabanları Eşzamanlı ve Tutarlı Veri Erişimi Veritabanı Güvenliği Veritabanı Yönetimi Veri Ambarı İçerik Yönetimi 2. Veri Blokları, Uzantılar (Extents), ve Segmentler 53 Veri blokları, uzantılar ve segmentlere giriş Veri bloklarını gözden geçirme Uzantıları gözden geçirme Segmentleri gözden geçirme 3. Tablo Alanları, Veri Dosyaları, ve Kontrol Dosyaları. 77 Tablo alanlarına, veri dosyalarına, ve kontrol dosyalarına giriş Tablo alanlarını Gözden Geçirme Veri Dosyalarını Gözden Geçirme Kontrol Dosyalarını Gözden Geçirme 4. Veritabanı ve Oracle Anını Açma ve Kapama Oracle Instance ına Giriş Oracle Instance ı ve Veritabanının Başlatılması Veritabanı ve Oracle Instance ının Kapatılması

3 5. Küme Veritabanı İşletimi Temel İlkeleri 114 Real Application Clusters a Giriş Real Application Clusters Sistemlerin Mimarisi Real Application Clusters Yazılım Mimarisi Real Application Clusters ta Ölçeklenirlik 6. Bölümlenmiş Tablolar ve Indeksler. 141 Bölümlemeye giriş Bölümleme yöntemleri Bölümlenmiş indeksler Performansı arttırmak için Bölümleme 3

4 Oracle Veritabanı Yönetim Sistemine Giriş Bu bölümde aşağıdaki konular anlatılacaktır; Veritabanı Yapısı ve Alan Yönetimi Veri Erişimi Tablespaceler Uygulama Mimarisi Dağıtılmış Veritabanları Eşzamanlı ve Tutarlı Veri Erişimi Veritabanı Güvenliği Veritabanı Yönetimi Veri Ambarı İçerik Yönetimi 4

5 Veritabanı Yapısı ve Alan Yönetimi: 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ı 5

6 ş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 6

7 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. - Kümeler : Kümeler, fiziksel olarak birlikte saklanan bir veya birden fazla tablonun oluşturduğu gruba denir. Bu tablolar ortak kolonlar içerir ve genelde birlikte kullanılır. Birbiriyle ilişkili satırlar fiziksel olarak bir arada saklandığı için, disk erişim süresinde bir kazanç sağlar. İndekslerde olduğu gibi kümeler uygulama dizaynını etkilemez. Tablonun bir kümeye dahil olup olmaması kullanıcılar ve uygulama tarafından bilinmez. Kümelenmiş edilmiş bir tablodaki veriye SQL ile aynı kümelenmemiş bir tabloya erişildiği gibi erişilir. Veri Blokları, Extentler ve Segmentler: 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. Bunun dışında en çok 5 adet blok büyüklüğü belirtilebilir. - 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. 7

8 - 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. 8

9 Tablespaceler Her veritabanı, tablespace adı verilen ve biribiriyle ilişkili mantıksal yapıları gruplayan mantıksal depolama birimlerine bölünmüştür. Örneğin, tablespaceler genelde yönetimsel işleri kolaylaştırmak için bütün uygulama nesnelerini birlikte gruplar. Tablespace içindeki tüm mantıksal yapıları fiziksel olarak tutması için bir veya birden fazla datafile yaratılır. Datafileların toplam büyüklüğü, tablespace'in toplam depolama kapasitesini verir. Tablespacelerin toplam depolama kapasitesi, database'in toplam depolama kapasitesini verir. Şekil 1'de Veritabanları, tablespaceler ve datafilelar arasındaki ilişki gösterilmektedir. Şekil 1 - Veritabanları, Tablespaceler, ve Datafilelar Bir tablespace online(erişilebilir) yada offline(erişilemez) olabilir. Tablespaceler, kullanıcıların içindeki veriye ulaşabilmesi için, genelde online durumdadır. Fakat bazı durumlarda veritabanının bir kısmını erişilemez hale getirmek için tablespacelerin bir kısmı offline hale getirilir. Bu birçok yönetimsel işlerin yapılmasını kolaylaştırır. 9

10 Fiziksel Veritabanı Yapıları Oracle veritabanında kullanılan fiziksel yapılar şunlardır: - Datafilelar : Her Oracle veritabanı bir veya birden fazla fiziksel datafile içerir. Datafilelar bütün veritabanının verisini tutar. Tablo ve indeksler gibi mantıksal yapıların verileri, fiziksel olarak veritabanı için tahsis edilmiş datafilelarda saklanır. Bir datafile ancak bir veritabanı ile ilişkilendirilebilir. İçlerindeki boş yer bittiğinde otomatik olarak büyümelerini sağlayacak şekilde yaratılabilirler. Datafile'lardaki veri normal veritabanı işlemleri sırasında belleğe okunur. Değişikliğe uğramış yada yeni girilen verilerin hemen datafile'lara yazılması gerekmez. Disk erişim sayısını azaltmak ve performansı arttırmak için, verinin bir kısmı bellekte tutulur ve gereken datafile'lara bir kerede yazılır. - Redo Log dosyaları : Her Oracle veritabanında iki veya daha fazla redo log dosyası bulunur. Bu redo loglar kümesine genel olarak veritabanının redo logu olarak bilinir. Bir redo log, redo kayıtlarından oluşur. Redo logun ana görevi veri üzerinde yapılan tüm değişikliklerin kaydını tutmaktır. Bir sebepten dolayı bellekteki veriler datafile'lara yazılamazsa, değişiklikler redo loglardan elde edilebilir, yani yapılan iş hiçbir zaman kaybolmaz. Redo logları da içeren bir hata durumu oluşması halinde, redo bilgilerini kurtarmak için Oracle "Multiplexed Redo Log" tutulmasına izin verir. Bunun anlamı bir redo logun aynı anda iki yada daha fazla kopyasının tutulmasıdır. Redo log dosyasındaki bilgiler sadece sistem yada medya hatası nedeniyle datafile'lara 10

11 yazılamayan verileri kurtarmak için kullanılır. Redo log'daki bilgiler kullanılarak veri kurtarılmasına "Rolling Forward" denir. - Kontrol Dosyaları : Her Oracle veritabanının bir kontrol dosyası vardır. Kontrol dosyasında veritabanının fiziksel yapısı ile ilgili bilgileri tutulur. Veritabanı, redo log dosyalarında olduğu gibi kontrol dosyalarının da birden fazla kopyasının tutulmasını desktekler. Kontrol dosyalarında tutulan bilgilerin bazıları veritabanının adı, redo log dosyalarının yerleri ve adları, veritabanın yaratıldığı zamandır. Oracle veritabanı örneğinin her açılışında, kontrol dosyası veritabanı ve redo dosyalarının yerlerinin bulunup veritabanı işlemlerine açılması için kullanılır. Eğer veritabanının fiziksel yapısında bir değişiklik olursa, kontrol dosyası Oracle tarafından otomatik olarak değiştirilir. Kontrol dosyası veritabanının kurtarılmasında da kullanılır. - Veri Araçları : Oracle veritabanının altkümesinin başka bir veritabanına taşınması için kullanılabilecek araçlar Export, Import ve SQL*Loader araçlarıdır. Export aracı yazalım ve donanım ayarları birbirinden tamamen farklı, farklı işletim sistemleri üzerinde çalışan veritabanları arasında veri taşımak için kullanılır. Export, nesne tanımlarını ve tablo verilerini Oracle veritabanından çıkarır ve bunu özel bir formatta binary bir dosyaya yazar. Bu dosya, çeşitli taşıma yöntemleriyle başka bir makinaya taşınabilir. İmport aracı, export aracı tarafından yaratılmış olan export dosyasındaki veri nesnelerini, veritabanına aktarmak için kullanılır. Export dosyaları ancak import aracı tarafından okunabilir. İmport sadece export dosyalarını okuyabilir. Eğer elinizde formatı belli bir ASCII veya delimited dosya varsa, bunun içindeki veriyi SQL*Loader aracını kullanarak veritabanına aktarabilirsiniz. SQL*Loader bir çok formattaki dosyayı input olarak alıp, filtereden geçirip, bir seferde birden fazla veritabanı tablosuna yükleme yapabilir. 11

12 Veri Sözlüğü Her Oracle veritabanının bir veri sözlüğü vardır. Oracle veri sözlüğü, veritabanı hakkında referans bilgisi içeren tablolar ve view'lar kümesinden oluşur. Örnegin, veri sözlüğü veritabanının mantıksal ve fiziksel yapıları hakkindaki bilgileri tutar. Veri sözlüğü aşağıda belirtilen bilgileri de tutar: - Veritabanı Kullanıcıları - Tablolar üzerinde tanımlanmış bütünlük kısıtlamaları - Şema nesneleri için tahsis edilmiş yer miktarı ve bu alanın ne kadarının kullanılmakta olduğu Veri sözlüğü, veri tabanının yaratılması sırasında yaratılır. İçindeki bilginin daima doğru kalabilmesi için belirli durumlarda Oracle, veri sözlüğünde gerekli değişiklikleri otomatik olarak yapar. Veritabanı yürümekte olan işleri kaydetmek ve onaylamak için Veri sözlüğünü kullanır. Örneğin, bir kullanıcının belli bir tabloya erişmek için yeterli yetkiye sahip olup olmadığını kontrol etmek için Oracle, veri sözlüğünü kullanır. Veri Erişimi SQL Veritabanını tanımlamak ve yönlendirmek için kullanılan programlama dili SQL'dir. SQL veritabanları ilişkisel veritabanlarıdır. Bunun anlamı verinin basit ilişkiler kümesi içinde depolanmasıdır. Oracle veritabanındaki tüm işlemler SQL cümleleriyle gerçekleştirilir. SQL cümleleri 6 kategoriye ayrılır: 12

13 - Veri Tanımlama Dili Cümleleri (DDL) : - Kullanıldığı yerler Şema nesnesi yaratmak, saklamak ve silmek gibi işlemler Kullanıcılara veritabanı içindeki nesneler için yetki verilmesi - Veri Değiştirme Dili Cümleleri (DML) : - Kullanıldığı yerler Varolan veriyi sorgulamak, değiştirmek, silmek Yeni veri girmek - Veritabanı Hareketi Kontrol Cümleleri : DML cümlelerinin veritabanına yansıma şeklini kontrol eden cümlelerdir. Örneğin, COMMIT, ROLLBACK, SAVEPOINT. - Oturum Kontrol Cümleleri : Kullanıcıların varolan oturumun özelliklerini kontrol etmelerini sağlayan cümlelerdir. - Sistem Kontrol Cümleleri : Oracle sunucu örneğine ait özellikleri kontrol etmek için kullanılan cümlelerdir. - Gömülü SQL Cümleleri : DML, DDL ve veritabanı hareketi kontrol cümlelerinin prosedürel programlama dillerinin içinde gömülü olarak kullanılmasıdır. 13

14 Nesneler Varolan veritabanı tipleri yada daha önceden tanımlanmış nesne tipleri ve nesne referansları kullanılarak yeni nesne tipleri yaratılabilir. Kullanıcılar tarafından tanımlanmış tiplerinin bilgileri, SQL, PL/SQL, Java gibi arayüzlerin de erişebilecekleri şekilde şemalarda saklanır. Nesne tiplerinin SQL veri tiplerinden en önemli farkı bunların kullanıcılar tarafından tanımlanmış olmalarıdır. Nesne tipleri gerçek hayattaki varlıkları sembolize ederler. Örneğin, satınalma talebi. Nesne tipleri ve onlarla ilgili nesne yönelimli özellikler, verinin organize edilmesi ve erişimi için daha üst seviyede yollar sağlar. Nesne katmanının altında veri gene tablolardaki kolonlarda tutulur ama siz veriyle daha anlamlı olan gerçek dünya varlıkları olarak çalışmaya devam edersiniz. Örneğin, bir sorguyu yazarken tablo ve kolonlarla düşünmek yerine direk olarak bir müşteriyi sorgulayabilirsiniz. Arka planda yazdığınız sorgular, gene temel SQL cümleleri olarak çalışır. Aynı anda hem nesne yönelimli özellikleri hemde ilişkisel veritabanı özelliklerini kullanabilirsiniz. Genel olarak nesne tipi modeli C++ ve Java'daki class mekanizmasına benzemektedir. Class'larda olduğu gibi, nesneler kullanılarak kompleks gerçek dünya ticari varlıklarının ve mantığının modellenmesi çok daha kolaydır ve nesnelerin yeniden kullanılabilmesi veritabanı uygulamalarının geliştirilmesini hızlandırmakta ve kolaylaştırmaktadır. Veritabanında nesne tiplerini direk olarak desteklenmesi, uygulama geliştirenlerin uygulamalarındaki veri yapılarına direk olarak erişmelerini sağlamaktadır. Bu sayede ilişkisel veritabanındaki kolon ve tablolarla uygulamadaki nesneler arasında bir eşleştirmeye gerek 14

15 kalmaz. Ayrıca nesneler sayesinde uygulamalar çok daha kolay anlaşılır hale gelir. 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 direk 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. Başlıca PL/SQL program birimleri şunlardır: - 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 kullancılar yada veritabanı uygulamaları tarafından kullanılabilirler. Fonksiyonlar ve prosedürler arasındaki tek fark, fonksiyonların en sonda bir değer geri dönmesidir. - 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 15

16 veritabanında saklandığı yapıdır. Bu global değişken tanımlanıp paket içindeki herhangi bir prosedürde çağrılabilme gibi ekstra fonksiyonaliteler 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 view'da değişiklik olduğunda, bir kullanıcı yada veritabanı sistemi aksiyonu gerçekleştiğinde, veritabanı tarafından otomatik olarak cağırılan, PL/SQL, Java veya C prosedürleridir. Veritabanı tetikleri, veritabanı yönetimi için çeşitli yollar sağlar. Örnegin, veri yaratmayı otomatize etmek, 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ı haraketleri 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. Java Java, nesne yönelimli programlama yapabilen uygulama seviyesinde bir programlama dilidir. Java'nın en önemli özellikleri kolaylık, taşınabilirlik, otomatik bellek yönetimi, değişkenlerin önceden tanımlanma zorunluluğu, pointer kullanılmaması, istisnaların işlenebilmesi, güvenlik, ilişkisel veritabanlarına ulaşmak için JDBC gibi standartlara sahip olmasıdır. 16

17 XML XML, web üzerinde verinin tanımlanması ve ayırt edilebilmesi için standart yöntemdir. Ayrıca XML, insan tarafından okunabilen, makinalar tarafından anlanabilen hiyerarşik veri tanımlamaya yarayan, birçok uygulama tipine uygun genel bir söz dizimidir. Oracle sunucusu "Oracle XML DB" denilen, yüksek performanslı XML depolama ve sorgulama teknolojileri kümesi içermektedir. XML DB, W3C XML veri modelinin tamamını deskteklemekle birlikte, yeni standart erişim metodlarıda içermektedir. Tüm ilişkisel veritabanı teknolojileriyle birlikte aynı anda XML teknolojilerini de kullanmak mümkündür. Oracle veritabanında XML ile ilgili en anahtar özellikler şunlardır: - Depolamak ve yönlendirmek için XMLTYPE isimli bir veri tipi olması - XML için SQL operatörlerinin olması ve sorgu sonuçlarını XML formatında almak için PL/SQL paketleri içermesi - XML havuzu sayesinde versiyonlamayla birlikte klasörleme, erişim kontrolü, FTP ve WebDav protokol desteği. Oracle sunucusu XML DB ile birlikte kullanılmak üzere XDK adı verilen ve uygulama geliştirme araçlarından oluşan bir küme içerir. Oracle XDK, XML dökümanlarını okumak, yönlendirmek, dönüştürmek ve göstermek için gereken arayüzleri içerir. XDK'nin, Java, JavaBean, C, C++ ve PL/SQL için arayüzleri mevcutttur. 17

18 Veritabanı Hareketleri Veritabanı hareketleri, tek bir kullanıcı tarafından çalıştırılan bir veya daha fazla SQL cümlesinden oluşan mantıksal iş birimidir. Oracle'ın da deskteklediği ANSI/SQL SQL standardına göre, bir veritabanı hareketi bir kullanıcı tarafından çalıştırılan ilk SQL cümlesiyle başlar ve kullanıcı tarafından Commit yada Rollback edilene kadar devam eder. Bir bankacılık uygulamasını ele alalım. Bir müşterinin yatırım hesabından, çek hesabına para aktarması işlemi üç aşamadan oluşan bir veritabanı hareketidir. Bunlar yatırım hesabından para çekilmesi, paranın çek hesabına aktarılması ve yapılan işlemin kaydının girilmesi. Oracle bu üç işlemin de başarılı bir şekilde tamamlanmasını ve müşterinin hesaplarında bir yanlışlık olmamasını sağlamaktır. Bu üç aşamanın herhangi bir noktasında problem yaşandığında, diğer işlemlerin veri üzerinde o ana kadar yaptığı değişikliklerin geri alınması gerekir. Buna "Rolling Back" denir. Veritabanı hareketi içeren SQL cümlelerinin yaptığı değişiklikler ya Commit edilmeli yada Rollback edilmelidir. Bir veritabanı hareketi Commit yada Rollback edildikten sonra sıradaki veritabanı hareketi içindeki sıradaki SQL cümlesi çalışmaya başlar. Commit işlemi gerçekleştiğinde veritabanı hareketi tarafından yapılan değişiklikler kalıcı ve diğer kullanıcılarında görebileceği hale getirilir. Rollback işlemi gerçekleştiğinde veritabanı hareketi tarafından yapılan tüm değişiklikler geri alınır. Diğer kullanıcılar sanki bu veritabanı hareketi hiç çalıştırılmamış gibi bu değişiklikleri hiç görmez. 18

19 Savepoints sayesinde çok uzun ve kompleks bir veritabanı hareketini daha küçük parçalara bölmek mümkün olur. Veritabanı hareketinin çalışması devam ederken, hareketin tamamını değil belirlenmiş noktalara kadar Rollback yapılmasını mümkün kılar. Böylece yarıda kalan bir hareketi tamamem iptal etmek yerine belli bir noktadan devam etmesi sağlanabilir. Veritabanı hareketleri sayesinde, kullanıcıların veri üzerinde tutarlı değişiklikler yapması garanti edilir. Bir veritabanı hareketi mantıksal bir iş biriminin tüm adımlarını içermelidir. Veritabanı hareketi başlamadan önce ve sonra referans edilen tablolardaki veri tutarlı bir durumda olmalıdır. Veritabanı hareketleri veri üzerinde tek bir tutarlı değişiklik içeren SQL cümlelerinden oluşmalıdır. Veri Bütünlüğü Veri, veritabanı yöneticisi ve uygulama geliştiricisi tarafından tanımlanmış iş kurallarına uygun olmalıdır. Veri üzerinde, veri bütünlüğüne uygun olmayan bir değişiklik yapılmak istendiğinde, Oracle yapılan değişiklikleri geri alır ve bir hata mesajı verir. Oracle veri bütünlüğü kurallarını yönetebilmek için bütünlük kısıtlamalarını ve veritabanı tetiklerini sağlar. Oracle ın desteklediği veri bütünlüğü kısıtlamaları ve onların açıklamaları şöyledir: - NOT NULL : Boş bırakılamaz - UNIQUE KEY : Çifte kayıt girilemez - PRIMARY KEY : Çifte kayıt girilemez ve boş bırakılamaz - FOREIGN KEY : Bir kolondaki tüm değerler bağlı olunan diğer bir ilişkili tablonun bir kolonunda bulunmalıdır. 19

20 - CHECK : Önceden belirtilmiş mantıksal bir ifadeyi sağlamayan değer girilemez. Anahtarlar çeşitli veri bütünlüğü tanımlamalarının tanımlarında kullanılır. Bir anahtar bir veya daha fazla kolondan oluşabilir. Anahtarlar ilişkisel veritabanlarında farklı tabloların kolonları arasında ilişki kurmak için kullanılır. Dört çeşit anahtar vardır: - Primary key : Tablo için PRIMARY KEY kısıtlaması tanımlanırken kullanılan kolon veya kolon kümesidir. Primary Key'in değeri tablonun her bir satırı tek başına belirtmek için kullanılır. Her tablo için bir primary key tanımlanabilir. - Unique key : UNIQUE kısıtlaması tanımlanırken kullanılan kolon veya kolon kümesidir - Foreign key : FOREIGN KEY kısıtlaması tanımlanırken kullanılan kolon veya kolon kümesidir - Referenced key : FOREIGN KEY kısıtlamasının referans ettiği aynı yada farklı tablodaki unique yada primary key. SQL*Plus SQL*Plus, veritabanı cümlelerini girmek ve çalıştırmak için kullanılan bir araçtır. SQL*Plus kullanarak yapilabilecekler şunlardır: - SQL cümleleri ve PL/SQL bloklarının girilmesi, değişitirilmesi, saklanması ve çalıştırılması - Sorgu sonuçlarının formatlanması - Tabloların kolon tanımlarının listelenmesi - Son kullanıcılara mesaj yollanması ve onlardan cevap alınması - Veritabanı yönetimi 20

21 Bellek Yapısı ve İşlemleri Oracle sunucusu, bellek yapılarını ve işlemlerini veritabanını yönetmek ve erişmek için kullanır. Bütün bellek yapıları, veritabanı sisteminin bulunduğu bilgisayarın ana belleğinde tutulur. İşlemler bilgisayarların belleklerinde çalışan işlerdir. Bu bölümde anlatılacak olan mimari özellikler, Oracle sunucusunun şunları desteklemesini sağlamaktadır: - Çok sayıda kullanıcının aynı anda tek bir veritabanına ulaşmaları - Aynı anda çok sayıda kullanıcının ve uygulamanın bağlandığı bir veritabanının ihtiyaç duyduğu yüksek performans Şekil 2 Oracle sunucusunun temel bellek ve işlem yapılarını göstermektedir. Şekil 2 Oracle ın Bellek Yapıları ve İşlemleri 21

22 Oracle sunucusu bir veritabanı ve bir sunucu örneğinden oluşur. Oracle veritabanının her açılışında, bellekte sistem global alanı (SGA) tahsis edilir ve Oracle arkaplan işlemleri başlatılır. Bu işlemler ve tahsis edilen tampon belleğin birleşimi Oracle örneğini oluşturur. Bazı donanım mimarileri, veri, uygulama veya aygıtların birçok bilgisayar tarafından paylaşılmasına olanak verir. Gerçek Uygulama Kümeleri (RAC) bu tür mimarilerden faydalanarak, tek bir fiziksel veritabanına bağlı olarak birden fazla örneğin çalışmasına olanak verir. RAC birden fazla makina üzerindeki kullanıcıların tek bir veritabanına ulaşmalarına olanak vererek performans artışı sağlar. RAC yüksek devamlılık özelliği taşıyan sistemlerin bir türevidir. RAC a benzeyen ortamlara sahip olan sistemler, planlı veya plansız kesintilere karşın kesintisiz hizmet vermeye devam edebilirler Not: RAC sadece Oracle9i Enterprise Edition da mevcuttur Bellek Yapıları Oracle, çeşitli işleri tamamlayabilmek için çeşitli bellek yapıları yaratır ve kullanır. Örneğin, çalıştırılacak program kodu ve kullanıcaların paylaşacağı veriler bellek üzerinde saklanır. En temel iki bellek yapısı Sistem Global Alanı ve Program Global Alanı dır. 22

23 Sistem Global Alanı (SGA) 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. Bu yapılar ve içlerinde tuttukları bilgiler şöyledir: - Veritabanı Tampon Önbelleği : İçinde en yakın zamanda kullanılmış olan veri blokları tutulur. Bunun amacı, genelde en yakın zamanda kullanılmış veri blokları aynı zamanda en sık kullanılanlar olduğu için, bu blokları bellekte saklayıp disk okuma yazmasını azaltmaktır. - Redo Log Tampon Belleği : Database üzerinde yapılan değişikliklerin kayıtları tutulur. Belli aralıklarla içeriği o anda kullanımda olan ve veritabanının kurtarılmasında kullanılan Redo Log dosyasına aktarılır. - Ortak Havuz : Sisteme gönderilmiş olan SQL cümlelerinin parse tree ve çalıştırma planı gibi bilgilerinin tutulduğu, tüm uygulamalar tarafından paylaşılan alandır. - Büyük Havuz : 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. 23

24 - Cümle tanıtıcıları veya Kursörler : Kursör belirli bir cümle için tahsis edilmiş olan bellek için yaratılmış bir göstergedir. Uygulama geliştiriciler kursörleri kullanarak, SQL cümlesinin çalıştırılma aşamalarında daha fazla kontrol sağlayıp uygulama performansını arttırabilirler. Program Global Alanı (PGA) 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. İşlem Mimarisi İşlem, işletim sisteminde belirli adımları çalıştırabilen mekanizmaya verilen isimdir. Her işlemin kendisi için ayrılmış bellek alanı vardır. Oracle sunucusunda genel olarak iki tip işlem vardır. Bunlar kullanıcı işlemleri ve Oracle işlemleridir. Kullanıcı İşlemleri Kullanıcı işlemleri, uygulama kodunu veya Enterprise Manager gibi bir Oracle aracını çalıştırmak için yaratılır. Kullanıcı işlemi ayrıca sunucu işlemiyle olan iletişimi de sağlar. 24

25 Oracle İşlemleri Oracle işlemleri, diğer işlemler tarafından çeşitli fonsiyonları yerine getirmeleri için çağrılır. İki tip Oracle işlemi vardır. Bunlar sunucu işlemleri ve arkaplan işlemleridir. Sunucu işlemleri, kullanıcı işlemlerinden gelen isteklerle ilgilenmesi için Oracle tarafından yaratılır. Bir sunucu işlemi, kullanıcı işlemiyle iletişime geçip ondan gelen isteğin Oracle tarafından yerine getirilmesini sağlar. Her kullanıcı işlemine karşılık yaratılacak sunucu işlemi sayısı konfigürasyona göre değişir. Oracle, her veritabanı örneği için belli sayıda arkaplan işlemi başlatır. Bunlar her kullanıcı işleminin ortak olarak ihtiyaç duyduğu bazı fonksiyonları yerine getirirler. Performans ve güveninirliği arttırmak için diger Oracle işlemlerini izleyerek parelelliği arttırmaya çalışırlar. Bir Oracle örneğinin kullanabileceği arkaplan işlemleri şunlardır: - Veritabanı Yazıcısı (DBWn) : Veritabanı tampon önbelleğindeki değişikliğe uğramış blokları datafile lara yazar. Normalde bir tane yeterlidir ama çok değişiklik yapılan sistemlerde yazma performansını arttırmak için istendiğinde DB_WRITER_PROCESSES parametresi kullanılarak sayısı arttırılabilir. - Log Yazıcısı (LGWR) : Redo Log tampon belleğindeki bilgileri belli aralıklarla o anda kullanımda olan Redo Log dosyasına aktarır Checkpoint (CKPT) : Belirli zamanlarda SGA daki herşey datafile lara yazılır. Bu duruma checkpoint denir. Checkpoint işlemi,

26 belirlenen zamanlarda bu işlemi yapar ve kontrol dosyalarına en son checkpoint işleminin ne zaman yapıldığını kaydeder. - Sistem Monitörü (SMON) : Oracle örneğinin bir hata sonucu kapanması durumunda oluşan problemleri gidermek için örnek yeniden açılırken kurtarma işlemi yapar. RAC ortamında, bir örneğin SMON işlemi diğer örneklerde örnek kurtarma işlemi yapabilir. SMON un diğer görevleri kullanılmayan temporary segmentlerin temizlenmesi, dosyalara ulaşılamadığı için kurtarması yarım kalanların ulaşılabilir hale geldiklerinde kurtarılmasıdır. - İşlem Monitörü (PMON) : Kullanıcı işlemlerinin başarıyla tamamlanmasını engelleyen bir durum olduğunda işlem kurtarma görevini yapar. İşlemin kullandığı tampon belleği temizler, işlem tarafından tutulan kaynakları serbest bırakır. Ayrıca sunucu işlemlerinden başarısız olanları yeniden başlatır. - Arşivleyici (ARCn) : Sistemde Log Switch denilen işlem gerçekleştiğinde boştaki redo log dosyalarının kopyalarını arşiv depolamak için belirtilen yere alır. Sadece sistem arşiv modundaysa aktif hale gelir. - Kurtarıcı (RECO) : Ağ yada sistem problemi yüzünden beklemekte olan dağıtılmış veritabanı hareketlerini tamamlamakla görevlidir. Uzaktaki veritabanına belli aralıklarla ulaşıp yarım kalan hareketi tamamlamaya çalışır. - İş Kuyruğu İşlemleri (Jnnn) : İş kuyruğuna atılan işlerin belirlenen zamanlarda çalıştırılmasıyla görevlidir. 26

27 - Dağıtıcı (Dnnn) : Sadece paylaşımlı sunucu konfigurasyonu yapıldığında çalışır. Kullanıcı işlemlerinden gelen istekleri varolan paylaşımlı sunucu işlemlerinden birine yönlendirmekle, geri dönen cevabı da gereken kullanıcı işlemine iletmekle görevlidir. - Kilit Yönetim Sunucusu (LMS) : RAC ortamında veritabanı örnekleri arasındaki kilitleme mekanizması için kullanılır. - Kuyruk Monitörü (QMNn) : Oracle Advanced Queuing opsiyonuna ait olan mesaj kuyruklarını izlemesi için yaratılan opsiyonel işlemlerdir. En çok on adet kuyruk mönitörü işlemi tanımlanabilir. Program Arayüzü Mekanizması Kullanıcı işlemleriyle sunucu işlemlerinin iletişim kurmasını sağlayan mekanizmadır. İki fonksiyonu vardır: - Veri talebi, veri aktarımı, hataların yakalanıp bildirilmesi gibi işlemlerin iletişim formatını düzenler - Değişik bilgisayar yada kullanıcı programları arasında verinin dönüştürülmesini sağlar. Kullanıcı ve sunucu işlemleri ayrı makinalardaysa yada kullanıcı işlemi paylaşımlı sunucu işlemine dağıtıcı üzerinden bağlanıyorsa, bu işlemler iletişim için Oracle Net Services protokolünü kullanırlar. Oracle Net Services tüm bilinen önemli ağ protokollerinin üzerinde çalışabilir. 27

28 Uygulama Mimarisi Bir veritabanı sistemi, istemci/sunucu ve.ok katmanlı olmak üzere iki temel şekilde kurulabilir. İnternet in yaygınlaşmasıyla birlikte veritabanı yönetim sistemlerinin çoğu çok katmalı yapıya yönelmişlerdir. İstemci/Sunucu Mimarisi Bu mimaride, veritabanı sistemi iki parçaya ayrılmıştır. Ön uçta istemci bulunurken, arka uçta ise sunucu bulunur. İstemci, kullanıcıların klavye, ekran ve fare gibi bir gösterge aracı kullanarak ulaştıkları ön uç veritabanı programıdır. Veritabanı tarafından yönetilen veri, istemci tarafından talep edilir, işlenir ve gösterilir. İstemci makinası, yapılacak işe göre optimize edilebilir. Birden fazla istemci bir sunucu üzerinden çalışabilir. Oracle yazılımını çalıştıran ve eşzamanlı paylaşımlı veri erişimi fonksiyonlarını yerine getiren arka uç sunucudur. Sunucu, istemciden gelen SQL ve PL/SQL komutlarını alır ve işler. Sunuculuk görevini yerine getiren makina da yaptığı işe göre optimize edilebilir. Çok Katmanlı Mimari: Uygulama Sunucuları Çok katmanlı mimari şu bileşenlerden oluşur: - Operasyonu başlatacak bir istemci yada başlatıcı işlem 28

29 - Operasyonun bazı parçalarını yürütecek bir veya daha fazla uygulama sunucusu. (Bir uygulama sunucusu, istemci için veri erişimini ve sorgu işlemeni yapar ve bu sayede veritabanı sunucusu üzerindeki yükün bir kısmını alır. Ayrıca istemciyle birden fazla sayıda veritabanı arasında arayüz görevi görerek, ekstra bir güvenlik seviyesi sağlayabilir.) - Operasyon sırasında kullanılan verinin büyük bir kısmının bulunduğu veritabanı sunucusu. Bu mimari uygulama sunucusunun şu amaçlar için kullanılmasını sağlar: - Kullanıcının yetkilerinin kontrol edilmesi - Oracle veritabanına bağlanılmasını - İstenilen işlemin istemci adına yerine getirilmesi Dağıtılmış Veritabanları Dağıtılmış veritabanı, birçok veritabanı sunucusu tarafından yönetilen bir veritabanları ağıdır. Genelde tek bir mantıksal veritabanı gibi görülmezler. Dağıtılmış veritabanındaki veritabanlarına aynı anda erişilip değişikliler yapılabir. Dağıtılmış veritabanlarının en önemli yararı, fiziksel olarak ayrılmış veritabanlarının mantıksal olarak birleştirilebilmesi ve ağ üzerindeki tüm kullanıcıların kullanımına açılabilmesidir. Dağıtılmış veritabanındaki veritabanlarını yöneten herbir bilgisayara düğüm adı verilir. Kullanıcaıların direk olarak bağlı oldukları veritabanına yerel veritabanı, bu kullanıcının ulaştığı diğer veritabanlarına ise uzaktaki veritabanları denir. Yerel bir veritabanı uzaktaki bir veritabanına bilgi almak için ulaştığında, uzaktaki sunucunun istemcisi durumuna gelir. 29

30 Veritabanı bağı, bir veritabanından diğer veritabanına olan yolu tarif eder. Veritabanı bağları, dağıtılmış veritabanlarındaki global nesnelere ulaşılmak istenildiğinde kullanılır. Dağıtılmış veritabanı ağ üzerindeki büyük miktardaki veriye ulaşılmasını sağladığı gibi, ulaşılan verinin yerini ve ona ulaşmaktaki karmaşık işlemleri gizlemelidir. Buna lokasyon saydamlığı denir ve Oracle a ait bir çok özellik bunu destekler. Ayrıca dağıtılmış bir veritabanı sistemi, her yerel veritabanın sanki dağılmış bir sistemin parçası değilmiş gibi yönetilebilmesinin getirdiği avatajların kullanılmasına izin vermelidir. Buna bölge özerkliği denir. Oracle dağıtılmış veritabanı mimarisi her türlü DML operasyonunu desteklemektedir. Uzaktaki bir veriye ulaşmak için tek yapmanız gereken uzaktaki nesnenin global nesne adını vermektir. Örneğin, uzaktaki satis veritabanındaki calisan tablosunu sorgulamak için yazmanız gereken sorgu şöyledir: SELECT * FROM calisan@satis; Oracle normal bir veritabanında olduğu gibi dağıtılmış bir ortamda da veri tutarlığını tam olarak sağlar. Bunun için iki aşamalı commit mekanizmasını kullanır. Replikasyon Replikasyon, tablo gibi bazı veritabanı nesnelerinin kopyalarının birden fazla veritabanında tutulmasıdır. Nesneler üzerinde yapılan değişiklikler daha sonra uzaktaki veritabanlarına gönderilmek üzere yerel veritabanında saklanır. Bu özellik Oracle sunucusuna tamamen entegre olarak çalışır, ayrı bir sunucu gibi çalışmaz. 30

31 Replikasyon, işlemlerini yürütmek için dağıtılmış veritabanı teknolojisini kullanır ama bu iki teknoloji farklı konseptlerdir. Replikasyonda bir nesnenin kopyası birden fazla yerde bulunabilirken, dağıtılmış veritabanında bir nesne sadece bir yerde bulunabilir. Yoğun bir şekilde sorgulanan tabloların kopyalarının birden fazla düğümde bulunması büyük miktarda ağ trafiğini azalttığı için performansa önemli derecede katkı yapar. Veri replikasyonu için materialized view denilen nesnelerde kullanılabilir. Oracle da, hiyerarşik ve değiştirilebilir materialized view desteğide mevcuttur. Birden fazla yerde değiştirilmiş veride çıkabilecek uyumsuzlukları çözümlemek için sistemde önceden tanımlanmış metodlar kullanılabileceği gibi kullanıcılar kendi metodlarınıda yazabilirler. Streams Oracle Streams, verinin ve olayların veri akımları şeklinde iki veritabanı arasında yada aynı veritabanı içinde paylaşılmasını sağlar. Akım, belirlenmiş bir bilginin belirlenmiş bir yere yönlendirilmesini sağlar. Aynı anda Oracle Streams in tüm özelliklerini bir arada kullanabilirsiniz. Streams kullanarak, akıma hangi bilginin koyulacağını, akımın nasıl akacağını, nereden nereye gideceğini ve akımın nasıl sonlanacağını belirleyebilirsiniz. Streams, veritabanındaki DML ve DDL değişikleri gibi birçok şeyi yakalayabildiği gibi kullanıcı tarafından tanımlanan olaylarıda yakalayıp akımın içine yerleştirebilir. Streams i şu işler için kullanabilirsiniz: 31

32 - Veritabanındaki değişikliklerin yakalanması - Yakalanan olayların bir kuyruğa atılması - Kuyruğa atılan olayların aynı veya farklı veritabanlarındaki başka kuyruklara gönderilmesi. - Olayların kuyruktan çekilmesi - Çekilen olaya göre gereken işlemin veritabanında gerçekleştirilmesi Advanced Queuing Oracle Advanced Queuıing, dağıtılmış uygulamaların birbirleriyle asenkronize mesajlar aracılığıyle konuşabilecekleri bir altyapı sağlar. Oracle Advanced Queuıing, mesajları Oracle sunucusunun sonradan alıp işlemsi için kuyruklarda saklar. Bu ekstra bir yazılıma gerek duymadan güvenilir ve verimli bir kuyruk sistemi sağlar. Mesajlar istemci ve sunucu arasında gidip gelebileceği gibi farklı serverlardaki işlemler arasında da gidip gelebilir. İki tür mesajlaşma sistemi olabilir: - Senkronize İletişim : İstek/Cevap paradigmasına göre çalışır. Bir program diğer bir programa bir mesaj gönderir ve ondan cevap gelene kadar bekler. - Asenkronize İletişim : Bu tür iletişimde, programlar isteklerini bir kuyruğa atar ve çalışmaya devam ederler. Heterojen Servisler Heterojen sistemler, Oracle dışı veritabanı sistemlerine ulaşılmasını sağlar. Oracle dışı veritabanı sistemlerden kastedilenler şunlardır: - C programlama diliyle yazılmış PL/SQL prosedürler aracılığıyla erişilen sistemler (Dış prosedürler aracılığıyla) 32

33 - SQL aracılığıyla erişilen sistemler (Oracle aracılığıyla) - Prosedürel olarak erişilen sistemler (Prosedürel Geçitler aracılığıyla) Heterojen servisler şunları mümkün kılar: - SQL cümleleri ile Oracle dışı sistemlerden veri çekilmesi - Oracle dağıtılmış ortamı içinden Oracle prosedürleri ile Oracle dışı sistemlere, servislere veya API lere ulaşılması Genelde heterojen sistemler iki şekilde kullanılır: - Oracle tarafından belirli bir Oracle dışı sistem için yazılmış Transparent Gateway ile birlikte heterojen servisler kullanılması. Örneğin Sybase için yazılmış geçit kullanılarak Oracle içinden Sybase veritabanına ulaşılması. - - ODBC veya OLE DB gibi arayüzler kullanılarak Oracle dışı veritabanlarına ulaşılması Eşzamanlı ve Tutarlı Veri Erişimi Eşzamanlı Erişim Çok kullanıcılı bir veritabanı yönetim sistemi için dikkat edilmesi gereken en önemli nokta, çok sayıda kullanıcının aynı veriye aynı anda ulaşmaları anlamına gelen eşzamanlı erişimdir. Sistemde gerekli kontroller olmazsa veri yanlış bir şekilde değiştirilebilir ve verinin bütünlüğü bozulabilir. 33

34 Eşzamanlılığı sağlamanın bir yolu, birden fazla kullanıcı aynı veriye erişmek istediğinde herkesin belli bir sırayla veriye erişmelerini sağlamaktır. Veritabanı sisteminin görevi her kullanıcı için bekleme süresini hissedilir seviyenin altına çekmektir. Bunu yaparken verinin yanlış bir şekilde değiştirilmesine izin verilmemelidir. Performanstan da veri bütünlüğünden de ödün verilemez. Oracle bu meseleyi çeşitli tiplerdeki kilitler ve çok versiyonlu tutarlılığa dayalı bir model ile çözmektedir. Bu özellikler, veritabanı hareketi konseptine dayanır. Okuma Tutarlılığı Oracle tarafından deskteklenen okuma tutarlılığı şunları yapar: - Bir veritabanı cümlesinin gördüğü veri kümesi zaman içinndeki belirli bir noktaya göre tutarlıdır ve cümlenin çalışması bitene kadar değişmez. - Veritabanı verisini okumak isteyenler, aynı veriye yazmaya yada okumaya çalışanları beklemez. - Veritabanı verisine yazmak isteyenler, aynı veriyi okumaya çalışanları beklemez. - Veritabanı verisine yazmak isteyenler, sadece aynı data üzerinde eşzamanlı bir veritabanı hareketi varsa diğer yazanları beklerler. Oracle ın bu yaklaşımını, her kullanıcının kendi veritabanı kopyası olması gibi düşünebiliriz. Buna çok versiyonlu tutarlılık modeli denir. 34 Bir veride değişiklik yapıldığında, bu değişikliğin yapıldığı veritabanı hareketi commit edilene kadar diğer kullanıcılara tutarlı bir görüntü

35 gösterebilmek için bu veritabanının undo kayıtları arasına kaydedilir. Başka bir kullanıcı bu sırada veriye erişmek istediğinde undo kayıtları kullanılarak verinin okuma tutarlı hali oluşturulur ve kullanıcıya bu görüntü gösterilir. Ancak veritabanı hareketi commit edildikten sonra o hareket tarafından yapılan değişiklikler kalıcı hale gelir. O andan itibaren kullanıcılar sadece commit edilmiş veriyi görür. Oracle bir veritabanı cümlesi içindeki okuma tutarlılığını garanti eder fakat bazı durumlarda bir veritabanı hareketinin tamamında okuma tutarlılığı olsun istenebilir. Bu durumda kullanmamız gerek mekanizma Salt-Okunur Veritabanı hareketidir. Bunun için hareketin içinde bunun belirtilmesi gerekir. Kilitleme Mekanizması Oracle eşzamanlı veri erişimini sağlamak için kilitleri kullanır. Gerekli kilitlemeler SQL cümleleri için otomatik olarak Oracle tarafından yapılır. Oracke ın kilit yöneticisi tablo verisini sıra bazında kilitler. Bu sayede, aynı veri için mücadele minimize edilmiş olur. Hangi işlem için kilitin alındığına göre kilit yöneticisi değişik tipteki kilitler arasından en uygun olanı seçer. Genel olarak iki temel kilit vardır. Bunlar salt kilitler ve paylaşımlı kilitlerdir. Bir sistem kaynağı üzerinde sadece bir tane salt kilit alınabilir ama çok sayıda paylaşımlı kilit alınabilir. Hem salt kilitler hemde paylaşımlı kilitler veri üstünde sorguya izin verir ama başka bir işlemin yapılmasına izin vermez. Bazı durumlarda kullanıcılar, varolan kilitlemeyi manuel olarak ezmek isteyebilir. Oracle kullanıcıların hem satır bazında hemde tablo bazındaki kilitleri elle ezmelerine olanak verir. 35

36 Quiesce Veritabanı Veritabanı yönetimi için yapılacak bazı işlemler, veritabanı üzerinde veritabanı yöneticilerinin işlemleri dışında eşzamanlı işlem olmamasını gerektirebilir. Bu durumda yapılabilecek şeylerden biri veritabanını kapatıp, sınırlandırılmış olarak açmaktır. Fakat devamlı açık kalması gereken sistemler için bu çoğu zaman mümkün değildir. Bu tür durumlar için Oracle Quiesce Veritabanı özelliğini sağlar. Veritabanı açıkken çalıstırılarak bir süreliğine veritabanı yöneticileri dışındaki kullanıcıların eşzamanlı iş çalıştırmaları geçici süreyle engellenebilir. Veritabanı Güvenliği Oracle, veritabanına nasıl erişileceğini ve kullanılacağını kontrol eden güvenlik özellikleri içerir. Her veritabanı kullanıcısı ile ilişkilendirilmiş ve kendisiyle aynı ismi taşıyan bir şema vardır. Temelde her kullanıcı kendi şeması içinde nesneler yaratır ve erişir. Bir kullanıcının diğer şemalarda herhangi bir işlem yapabilmesi için gereken yetkilere sahip olması gerekir. Veritabanı güvenliği iki kategoriye ayrılabilir. Bunlar sistem güvenliği ve veri güvenliğidir. Sistem güvenliği, veritabanının sistem seviyesinde kullanımıyla ilgili mekanizmaları kontrol eder. Örneğin, doğru kullanıcı adı ve şifreleri, kullanıcıya ait şema nesneleri için ayrılan yer miktarı, kullanıcı için ayrılan kaynak miktarları. 36

37 Sistem güvenliği mekanizmaları şunları kontrol eder: - kullanıcının bağlanmaya yetkisi varmı - veritabanı denetlemesi aktif mi - kullanıcı hangi sistem operasyonlarını yapabilir Veri güvenliği, veritabanının şema nesneleri seviyesinde kullanımıyla ilgili mekanizmaları kontrol eder. Örneğin, kullanıcı hangi şema nesnelerine erişebilir, kullanıcı belli bir şema nesnesi üzerinde hangi işleri yapmaya yetkilidir. Oracle veritabanı güvenliğini şunları kullanarak yönetir: - Veritabanı kullanıcıları ve şemaları : Bir kullanıcının veritabanına bağlanabilmesi için veritabanında tutulmakta olan geçerli bir kullanıcı adı ve şifresi vermelidir. Kullanıcının yapabileceği işlemlerin oluşturduğu kümeye kullanıcının güvenlik alanı denir. - Yetkiler : Yetki, belli bir tipteki SQL cümlesini çalıştırabilme hakkıdır. Örneğin, veritabanına bağlanabilme, kendi şeması içinde tablo yaratabilme veya bir başkasına ait olan tabloyu sorgulayabilme. İki tür yetki vardır. Bunlar sistem yetkileri ve şema yetkileridir. Sistem yetkileri, sistem genelinde yapılacak işler içindir ve genelde sadece sistem yöneticilerine verilir. Şema yetkileri, belirli bir şemadaki belirli bir nesne üzerinde yapılabilecek işler için verilir. Bu yetkiler direk olarak kullanıcalara verilebildiği gibi yetkiler kümesi olarak tanımlanabilecek olan roller aracılığıylada verilebilir. - Roller : Oracle yetki yönetimini roller aracılığıyla kolaylaştırmaktadır. Roller, kullanıcılara ve diğer rollere verilecek, birbiriyle alakalı, isimlendirilmiş yetkiler kümesidir. 37

38 - Depolama Ayarları ve Kotalar : Her kullanıcı yaratılırken bir varsayılan birde geçici tablespace ile ilişkilendirilir. Bir nesne yaratılacağı sırada eğer tablespace adı belirtilmezse kullanıcının varsayılan tablespace inde yaratılır. Bir SQL cümlesi çalıştırılırken geçici segmente ihtiyaç duyulursa bu kullanıcının ilişkilendirilmiş olduğu geçici tablespace içinde yaratılır. Kullanıcıların tablespace ler içinde kullanabilecekleri yer miktarı ise o kullanıcıya o tablespace üzerinde verilmiş kotayla sınırlıdır. - Profiller ve Kaynak Limitleri : Veritabanı kaynaklarının gereksiz yere harcanmaması için her kullanıcıya kaynak kullanım limitlerini belirleyen bir profil atanır. Profilin içereceği kayanaklardan bazıları şunlardır: o Kullanıcının aynı anda açabileceği maksimum oturum sayısı o Kullanıcının oturumu ve çalıştıracağı SQL cümleleri için kullanabileceği CPU zamanı ve manatıksal giriş çıkış miktarı o Kullanıcının bir iş yapmadan bekleyebileceği süre o Kullanıcının bağlı kalabileceği süre o Kaç başarısız bağlanma denemesinden sonra kullanıcı hesabının kilitleneceği, şifrenin ne kadar süre geçerli olduğu veya ne tür şifrelere izin verileceği gibi şifre kısıtlamaları - Seçilmiş Kullanıcını Hareketlerinin Denetlenmesi : Üç farklı seviyede denetleme yapılabilir. Bunlar cümlelerin, yetkilerin ve şema nesnelerinin denetlenmesidir. Cümle denetlemesi, belli veya tüm kullanıcıların belirli tipteki SQL cümlelerinin denetlenmesini sağlar. Yetki denetlemesi, belli veya tüm kullanıcılaların sistem yetkilerini kullanımlarının denetlenmesini sağlar. Şema nesnelerinin denetlenmesi, belli şemalardaki belli nesneler üzerinde yapılacak işlerin 38

39 denetlenmesini sağlar. Denetlemeler sonucunda elde edilen bilgiler denetleme tablolarına yazılır. Kullanıcılar tanımlayacakları veritabanı tetikleri ile daha karmaşık denetleme mekanizmaları kurabilirler. - Ayrıntılı Denetleme : Erişilen verinin içeriğine göre denetleme yapılmasını sağlar. Denetleme sırasında önceden belirlenen durumlar tespit edildiğinde kullanıcının bu durum için tanımladığı veritabanı prosedürlerinin çağrılması sağlanabilir. Ayrıntılı denetleme, uygulamalar içinden DBMS_FGA paketi kullanılarak gerçekleştirilebilir. Veritabanı Yönetimi Oracle veritabanı sistemi, veritabanın yaratılması ve problemsiz bir şekilde çalışmasını sağlamakla görevli veritabanı yöneticileri tarafından yönetilir. Enterprise Manager Eterprise Manager, heterojen ortamlarınızın merkezi yönetimi için kullanılan entegre bir sistem yönetim aracıdır. Grafik konsolu aracılığıyla Oracle ürünlerinin yönetimi için tasarlanmıştır. Konsolu ile yapılabilecek işlemler şunlardır: - Oracle a ait veritabanı, uygulama sunucusu, uygulamalar ve servislerinden oluşan komple bir ortamın yönetimi - Çok sayıda veritabanının izlenmesi, değişiklikler yapılması ve ayarlanması - Çok sayıda sistem üzerinde değişken zaman aralıklarında çeşitli işlemlerin zamanlanması - Ağ üzerindeki veritabanlarının durumlarının izlenmesi - Birçok yerdeki çok sayıda ağ düğümü ve servisinin yönetilmesi - Belirli işlerin diğer yöneticilerle paylaşılması 39

40 - Belirli hedeflerin bir arada gruplanarak yönetilmesi - Entegre Oracle ve üçüncü parti araçların çalıştırılması - Enterprise Manager ın görüntüsünün kişiselleştirilebilmesi Veritabanı Yedekleme ve Kurtarma Her vertabanı sistemi, sistem yada donanım hatası olasılığıyla karşı karşıyadır. Bir hata oluşup veritabanına zarar verdiğinde, veritabanının hızlı bir şekilde kurtarılabilmesi gerekmektedir. Hata oluştuktan sonraki amaç commit edilmiş tüm verinin kurtarılması ve en kısa sürede normal işleyişe geri dönülmesidir. Oracle veritabanının durmasına sebep olacak en önemli hata tipleri şunlardır: - Kullanıcı Hatası : Hatanın oluştuğu andan daha geri zamana kadar kurtarma gerektirir. Oracle, zamanda tam olarak belirli bir noktaya göre kurtarmaya olanak verir. Bu hata tipine kullanıcının bir tabloyu yanlışlıkla silmesi örnek olarak verebiliriz. - Cümle Hatası : Bir Oracle programı içindeki cümle işlenirken oluşan mantıksal hatalardır. Oracle tarafından otomatik olarak cümlenin etkileri geçersiz kılınır. - İşlem Hatası : Oracle a erişen kullanıcı işleminin beklenmedik şekilde sonlanması durumdur. PMON arakaplan işlemi otomatik olarak bu durumu farkeder ve commit edilmemiş değişikleri geri alır ve işlemin tuttuğu kaynakları serbest bırakır. - Veritabanı Örneği Hatası : Örneğin çalışmasını engelleyecek bir durum oluştuğunda ortaya çıkar. Hatanın sebebi, elektriklerin kesilmesi gibi bir donanım probleminden kaynaklanabileceği gibi işletim sisteminden kaynaklanan bir yazılım problemide olabilir. Bu durumda 40

41 Oracle otomatik olarak örnek kurtarma gerçekleştirir. Veritabanı açılırken tüm redo bilgileri yeniden veritabanına uygulanır. - Medya (Disk) Hatası : Oracle ın diske yazma veya okuma yapmasına engel olan bir durum olduğunda ortaya çıkar. Bu durum veritabanına ait birçok dosyaya zarar verebilir. Bu tip hatalarda zarar gören dosyalar geri yüklendikten sonra medya kurtarması işlemi uygulanır. Örnek kurtarmasının aksine medya kurtarmasını kullanıcının başlatması gerekir. Medya kurtarma işlemi geri yüklenen dosyalarda değişiklikler yaparak onları hata oluşumundan önceki son haline kadar getirebilir. Eger sadece datafileların bir kısmında hata oluşursa tüm veritabanını kapatmaya gerek kalmadan kurtarma işlemi uygulanabilir. Böylece zarar görmeyen dosyalardaki veriler kullanıcıların erişimine açık kalır. Kurtarma İşleminde Kullanılan Yapılar Oracle, örnek yada disk hatalarında komple bir kurtarma sağlayabilmek için şu yapıları kullanır: - Redo Loglar : Veritabanı üzerinde yapılan değişikliklerin tutulduğu dosyalardır. İki parçadan oluşurlar kullanımda olanlar ve arşivlenmiş olanlar. Kullanımda olanlar iki yada daha fazla sayıda dosyadan oluşur. Geçici olarak redo log tampon belleğinde tutulurlar ve LGWR arkaplan işlemi tarafından belli aralıklarla diske yazılırlar. Dolan redo log dosyaları elle yada otomatik olarak arşivlenebilir. Arşivlenen bu dosyalara arşivlenmiş redo log dosyaları denir. Veritabanı arşiv modundayken arşivleme işlemi otomatik olarak sistem tarafından gerçekleştirilir. Arşiv modundan çalışan bir veritabanı her türlü hata 41

42 durumunda komple kurtarılabilir. Fakat arşiv modunda olmayan bir veritabanı ancak örnek hatası durumunda komple kurtarılabilir. - Geri Alma Kayıtları : Undo tablespacelerinde yada rollback segmentlerde depolanırlar. Veritabanı geri alma kayıtlarını, commit edilmemiş veritabanı hareketleri tarafından değiştirilmiş veritabanı bloklarının eski görüntülerini oluşturmak gibi çeşitli işlerde kullanılırlar. Veritabanı kurtarılması sırasında, Oracle redo loglardaki tüm değişiklikleri uyguladıktan sonra commit edilmemiş veritabanı hareketlerinin etkilerini kaldırmak için geri alma kayıtlarından faydalanır. - Kontrol Dosyaları : Bu dosyalar tuttukları diğer bilgilerin yanında veritabanı dosyalarının yapısını ve o andaki LGWR tarafından yazılan log sıra numarasını tutar. Normal kurtarma işlemleri sırasında kontrol dosyalarındaki bilgiler, kurtarma işleminin ilerlemesinin otomatik yönlendirilmesi için kulanılır. - Veritabanı Yedekleri : Hatalar bir veya daha fazla fiziksel dosyanın bozulmasına sebep olabileceği için medya kurtarma işlemi en son alınan veritabanı yedeğindeki bazı dosyaların geri yüklenmesine ihtiyaç duyabilir. Yedekleme için Oracle ın Kurtarman Yöneticisi (RMAN) isimli aracını yada işletim sistemi araçlarını kullanabilirsiniz. Veri Ambarı Veri ambarı, veritabanı hareketinden çok sorgulama ve analiz için kullanılmak üzere dizayn edilmiş ilişkisel bir veritabanıdır. Genelde hareket verisinden elde edilmiş tarihi bilgiler içerdiği gibi başka kaynaklardan gelen bilgilerde içerebilir. Veritabanı hareketlerinden kaynaklanan iş yüküyle analiz yükünü birbirinden ayırır ve bu sayede 42

43 değişik kaynaklardan toplanan bilgilerin daha kolay bir şekilde organize edilmesine olanak sağlar. Veri Ambarı ile OLTP Sistemler Arasındaki Farklar Veri ambarı ve OLTP sistemlerin ihtiyaçları birbirinden çok farklıdır. Tipik bir veri ambarı ile OLTP sistemler arasındaki bazı farklar şunlardır: - İşyükü : Veri ambarında ne tür bir iş yük olacağını önceden bilmek zordur, bu sebeple veri ambarını muhtemel bir çok farklı sorguya göre optimize etmeniz gerekir. Ama OLTP sistemlerin karşılaşacağı operasyonlar önceden bellidir. Uygulamanızı özellikle bu operasyonlara göre ayarlayabilirsiniz. - Veri Değişimi : Veri ambarında uç kullanıcılar direk olarak değişiklik yapmaz. Veri ambarında veri değişiklikleri günde veya haftada bir kere olacak şekilde toptan yapılır. OLTP sistemlerde ise uç kullanıcılar devamlı veri üzerinde değişiklik yapar ve sistemde herzaman en güncel bilgi bulunur. - Şema Dizaynı : Veri ambarlarında, sorgu performansını arttırmak için genelde denormalize veya kısmen denormalize şemalar kullanılır. OLTP sistemlerdeyse, veri değişimini optimize etmek ve veri tutarlılığını garanti etmek için tamamen normalize edilmiş şemalar kullanılır. - Tipik Operasyonlar : Tipik bir veri ambarı sorgusu binlerce hatta milyonlarca satır tarar ama OLTP sistemlerdeki operasyonlarda çok az sayıda satıra erişilir. 43

44 - Tarihi Bilgi : Tarihi analizleri destekleyebilmek için veri ambarlarında aylarca hatta yıllarca zamanlık veri depolanır. Ama OLTP sistemlerde en fazla birkaç haftalık yada aylık bilgi depolanır. Veri Ambarı Mimarisi Veri ambarları ve onların mimarileri organizasyonların durumuna göre değişkenlik gösterir. Üç temel mimari şunlardır: - Veri Ambarı Mimarisi (Basit) : Uç kullanıcılar değişik kaynaklardan toplanan veriye direk ulaşırlar. OLTP sistemlerden gelen veri, metaveri ve ham veri olarak sistemde tutulur. Sistemde depolanan bir diğer tipteki veri ise meta ve ham verinin işlenmesi sonucu elde edilen ve veri amabarı için çok önemli olan özet veridir. Oracle da özetlere materialized view denir. - Veri Ambarı Mimarisi (Sahneleme alanı içeren) : Operasyonel verinin veri ambarına atılmasından önce temizlenmesi ve bir ön işlemeden geçirilmesi gerekir. Bu iş için bir sahneleme alanı kullanılır. Bu özet verinin çıkartılmasını ve veri ambarı yönetimini kolaylaştırır. - Veri Ambarı Mimarisi (Sahneleme alanı ve veri çarşısı içeren) Organizasyon içindeki değişik gruplara göre veri ambarının mimarisi kişiselleştirilmek istenebilir. Bunu sağlamak için kullanılan yapılara veri çarşısı denir. Veri çarşısı, yürütülmekte olan işin belirli alanları için dizayn edilmiş sistemlerdir. Örneğin, veri ambarında satış yada satın almayla ilgili verilere uç kullanıcılar ayrı ayrı ulaşmak isteyebilir. 44

45 Materialized View lar Bu yapı bir sorgunun sonuçlarını ayrı bir şema nesnesi içinde tutarak tablolara dolaylı bir erişim sağlar. Yer kaplamayan normal viewların aksine, bunlar bir veya daha fazla temel tablo yada viewden yapılan sorgunun sonucunda oluşan satırları saklarlar. Sorgunun temel tablolarıyla aynı veya farklı veritabanlarında olabilirler. OLAP Oracle, ticari bilgi desteği verebilmek için veritabanı ile çevirimiçi analitik işlemeyi (OLAP) entegre etmiştir. Bu entegrasyon, Oracle veritabanının yönetilebilirlik, ölçeklenebilirlik ve güveninirlik gibi temel özelliklerini korurken, ona çok boyutlu veritabanı gücü sağlamaktadır. İlişkisel yönetim sistemi ve Oracle OLAP, raporlama ve analitik uygulamalar için tamamlayıcı bir fonksiyonalite sunmaktadır. Oracle OLAP, çok boyutlu hesaplamalar, öngörü, modelleme gibi işler için kullanılabilir. Bu hesaplamalar sayesinde, uygulama geliştiriciler çok gelişmiş analitik ve planlama uygulamaları geliştirebilirler. Veri ilişkisel tablolarda yada çokboyutlu nesnelerden hangisi performans ve kaynak kullanımı açısından daha uygunsa onda depolanabilir. OLAP makinası, verinin nerede tutulduğunu bakmaksızın Java ve SQL aracılığıyla veriye ulaşabilir. İlişkisel ve çok boyutlu nesneler arasında replikasyona gerek yoktur. 45

46 Oracle OLAP şu parçalardan oluşur: - Hızlı hesaplamalar için optimize edilmiş hesaplama makinaları - Çok boyulu veriyi geçici yada kalıcı olarak depolamak için analitik çalışma alanı - Çok boyutlu veri üzerinde matematiksel, istatiksel modelleme ve diğer dönüştürme işlemlerini yapabilmek için OLAP veriyle oynama dili - Çok boyutlu veriye SQL ile ulaşabilmek için Oracle OLAP a SQL arayüzü - Ticari bilgi için java uygulaması geliştirebilmek için OLAP API si - OLAP API sine çok boyutlu veriyi tanımlamak için OLAP metaveri havuzu. Veri Değişimi Yakalanması Veri Değişimi Yakalanması özelliği ile Oracle değişikliğe uğrayan yada yeni eklenen veriyi çok verimli bir şekilde yakalar ve uygulamaların kullanımına sunar. Oracle yakaladığı değişimleri değişim tabloları içine atar ve bunları uygulamarın kullanımına açar. Veri ambarı sistemlerinin tüm tabloları her seferinde yeniden işlemek yerine sadece değişiklikleri işlemesi çok daha verimli olur. Veri değişimi yakalama özelliği sayesinde bu işi çok bir şekilde halledilebilir. Yüksek Devamlılık 46 Kesintisiz çalışacak şekilde konfigüre edilen bilgisayar ortamlarına yüksek devamlılıktaki sistemler denir. Bu tür sistemlerde hata durumlarına rağmen bulunur kalabilmesi için genelde fazladan donanım ve yazılım bulunur. Hata durumuna karşı bulundurulan yedek parçalar aslıyla aynı tipte olmalıdır.

47 Bir hata anında işlemler hatalı parçadan yedek parçaya geçerler. Bu işlemler sistem genelindeki kaynakları yeniden dağıtır, yarım kalan yada kesilen hareketleri kurtarır ve sistemi olabildiğince hızlı bir şekilde normal haline geri getirirler. Bu geçiş kullanıcılar için ne kadar saydam olursa sistemin bulunurluluğu o kadar yüksek demektir. Oracle ın yüksek devamlılık için çok sayıda ürünü vardır. Bunlardan bazıları: - Saydam Uygulama Geçişi (TAF) : TAF sayesinde bağlantı kesildiğinde uygulama kullanıcısı otomatik olarak yeniden bağlanır. O sırada aktif olan hareketlerin etkileri geri alınır ama bağlantı kesilmemiş gibi çalışma devam eder. Hangi uygulamanın hangi veritabanı örneğinde çalışacağına ve geçiş sıralamasına veritabanı yöneticisi karar verir. - Çevirimiçi Yeniden Yapılandırma Mimarisi : Oracle, kullanıcılar tablolara tam olarak ulaşabilirlerken bu tablolar üzerinde birçok operasyonun yapılmasına olanak tanır. Bu mimari şu olanakları sağlar : o Tablonun herhangi bir fiziksel özelliği değiştirilebilir. Örneğin, tablonun yeri veya organizasyon şekli değiştirilebilir. o Tablonun birçok mantıksal özelliğide değiştirilebilir. Örneğin, kolon isimleri, tipleri ve büyüklükleri değiştirilebilir. o İndeks ile organize edilmiş tablolar (IOT) için ikincil indeksler yaratılabilir yada yeniden organize edilebilir. o Aynı anda hem indeks yaratıp hemde analiz işlemi yapılabilir. o IOT lerdeki ikincil indekslerinde saklanan mantıksal sıra numaralarının fiziksel tahmin parçaları düzeltilebilir. 47

48 - Veri Koruyucu : Oracle Veri Koruyucu, her türlü tehdide karşı var olan veritabanının gerçek zamanlı kopyası olan ve bekleme modunda en çok dokuz tane veritabanı sağlayabilir. Eğer ana veritabanında bir problem olursa bekleme modundadakilerden birini ana veritabanı haline getirebilirsiniz. Ayrıca sistem üzerinde önceden planlanmış çalışmalar sırasında kapalı olma zamanını, bekleme modundaki vertabanlarını çalışma sırasında ana veritabanı haline getirip çalışmadan sonra geri alarak, minimize edebilirsiniz. Veri koruyucusu, ana veritabanında redo log dosyalarına kaydedilen değişiklerin log taşıma servisleri ile bekleme modundaki veritabanlarına taşınması ve burda log uygulama servisleri ile veritabanlarına uygulanması prensibiyle çalışır. Log uygulama servislerinin değişiklikleri kurtarma modunda uyguladığı veritabanlarına fiziksel bekleme modundaki veritabanı denirken, değişiklerin SQL cümleleriyle uygulandığı veritabanlarına mantıksal bekleme modundaki veritabanı denir. Fiziksel bekleme modundaki veritabanları, ana veritabanıyla tamamen aynıdır ve ya kurtarma modunda yada sadece raporlama işlemleri için açık konumda olabilir. Mantıksal bekleme modundaki veritabanları, ana veritabanıyla birebir aynı değildir ve açık durumdadır ama ana veritabanıyla mantıksal tutarlılığı koruyacak şekilde çalışır. Oracle bekleme modundaki veri tabanlarının izlenmesi ve yönetilmesi için veri koruyucu simsarı isimli bir araç sağlamaktadır. Veri koruyucu konfigurasyonunu yapmak için iki arayüz vardır. Bunlar komut satırından çalışan DGMGRL ve enterprise manager içine entegre olarak çalişan Veri Koruyucu Yöneticisidir. - Log Madencisi : Yöneticilerin SQL kullanarak log dosyalarını okumalarını, analiz etmelerini sağlayan ilişkisel bir araçtır. Hem kullanımdaki hemde arşivlenmiş log dosyaları için kullanılabilir. Enterprise Manager içinde Log Madencisi Görüntüleyicisi adında grafik 48

49 bir arayüze sahip bir uygulama vardır. Log Madencisini kullanarak yapılabilecek bazı işlemler şunlardır: o Veritabanında yapılmış değişiklerin hareket, kullanıcı, tablo, zaman gibi şeylere göre izlenmesi o Veritabanında yapılmış olan hatanın yerinin tam olarak tesbit edilmesi. o Ayarlama ve kapasite planlaması için ekstra bilgi sağlaması o Karmaşık uygulamaların çalışmalarının kontrol edilmesi Gerçek Uygulama Kümeleri (RAC) : RAC yüksek devamlılık sistemlerinin türevidir. RAC gibi küme ortamları planlı yada plansız kesinti durumlarında kesintisiz servis verirler. RAC, standard Oracle özelliklerinin üzerine yüksek seviyelerde devamlılık yapısı inşa eder. Tek örnekli sistemlerdeki yüksek devamlılık özelliklerinin tamamı RAC tada geçerlidir. Bütün standart Oracle özelliklerinin yanında kümelemenin sağladığı olarak sayesinde n düğümden oluşan bir kümede n-1 düğüm çökse bile sistem çalışmaya devam eder. Yani kümede tek bir düğüm kalsa bile kullanıcılar verinin tümüne erişebilirler. RAC çalıştıran bir veritabanı sunucusu, Oracle veritabanı, RAC yazılımı ve kullanıcı isteklerini kabul eden Oracle Net dinleyicilerden oluşur. Bu yazılımlar kümenin her düğümünde çalışır ve bunlar donanım, işletim sistemi ve küme yöneticisinin sağladığı servisleri kullanırlar. Küme yöneticisi düğümleri izler ve kümedeki düğümlerin durumları hakkında raporlar. - Gerçek Uygulama Kümeleri Koruyucusu : Oracle Gerçek Uygulama Kümeleri Koruyucusu, RAC ın entegre bir parçasıdır ve şu sağladığı fonsiyonlar şunlardır: 49

50 o Oracle örneğinin durmasına neden olan hatalarda otomatikleştirilimiş, hızlı kurtarma ve sınırlı kurtarma zamanı o Belirli hata durumları için otomatik teşhis verisinin toplanması o Zorlanmış Birincil/İkincil konfigürasyonu. Oracle Net Service üzerinden bağlanan kullanıcıların ikincil düğümlerden birine bağlansa bile her zaman birincil düğüme yönlendirilmesi. o Hata durumunda bağlantının yeniden sağlanması sırasında kullanıcıların yaşadığı zaman kaybının en aza indirilmesi. İçerik Yönetimi Oracle, kişiselleştirilmiş zengin içerik yaratmak, yönetmek ve sunmak gibi işlerin hepsini yapmak üzere tek bir platform sağlar. Döküman, mültimedya, sunum, e-posta ve HTML dosyaları gibi değerli şirket bilgileri için özel sunucular yada özel dosya sistemlerine ihtiyaç yoktur. Otomatik arama yetenekleri sayesinde nerede ve hangi dilde olursa olsun değerli içeriğe ulaşılabilir. Oracle ın içerik yönetim özellikleri şunları içerir: - Oracle İnternet Dosya Sistemi (IFS), hem içeriğinin veritabanında tutulduğu ve yönetildiği bir dosya sistemi hemde içerik yönetme uygulamaları geliştirmek için bir uygulama geliştirme platformu sağlar. - Oracle intermedia, resim, ses ve video dosyalarından metaveri çıkarılmasını ve bu dosyaların veritabanı içinde yönetilmesini sağlar. - Oracle Text, veritabanında saklanan metinlerin içeriklerinin indekslenmesi ve bu indekslerin üzerinden içeriğe dayalı gelişmiş sorgulamalar yapılmasına olanak verir. MS Office, Adobe PDF, HTML ve XML gibi 150 döküman tipini ve 40 tan fazla dili destekler. 50

51 - Oracle Ultra Search, Oracle Text i kullanarak veritabanı, dosya sistemi ve web sitelerinde tutulan içeriğin sorgulanabilecek şekilde indekslenmesini sağlar. - Oracle elocation, içeriğe bölgesel metaveri eklenmesi ve uzaysal aramalar gerçekleştirilmesini sağlar. - Dinamik servisler ve Syndication Server, içeriğin bir araya getirilmesi ve üyelere dağıtılmasını sağlar. - Çalışma alanları, veritabanındaki verinin versiyonlandırılmasını sağlar. - Oracle XML ayrıştırıcısı gibi XML servisleri, XML içeriğinin ayrıştırılması ve XML tabanlı içeriğin diğer formatlara dönüştürülmesini sağlar. - Oracle Portal, içeriğin intranet ve internete dağıtılmasını sağladığı gibi içerik sağlayıcılar için de bir yayınlama çatısı sağlar. - Oracle9i Wireless Edition, veritabanından gelen içeriğin kablosuz araçlara gönderilmesini sağlar. Oracle İnternet Dosya Sistemi (IFS) Kritik ticari bilgilerin çoğu genelde dökümanlarda, hesap çizelgelerinde, e-postalarda ve web sayfalarında tutulur. Bu veriler genelde oraganizayondan habersiz olarak birisinin dizüstü bilgisayarında yada bölümünün dosya sunucularında tutulur. Oracle İnternet Dosya Sistemi, bütün verileriniz için güvenli ve ölçeklenebilir bir dosya servisi sağlar. 51

52 - IFS, şirket dosya yönetim işlemlerinize ekstra fonksiyonalite ve akıl katar. Örneğin, kullanıcılar dökümaların içinde kelime ve ibare bazında arama yapabilirler. - Oracle içinde saklanan veri ve dosyalara standart bir tarayıcı, windows istemcisi veya e-posta sunucusundan özel bir eğitim gerektirmeden ulaşmanızı sağlar. İnternet Dosya Sistemi HTTP, WebDAV, SMB, FTP, NFS, IMAP4 ve SMTP gibi en popüler endistüri standartlarını destekler. - IFS, içeriğin güvenli bir şekilde saklanması ve yönetimi için Oracle ın çok seviyeli güvenlik modelini kullanmaktadır. - Uygulama geliştirenler IFS i, yeni döküman tiplerinin desteklenmesi veya şirketler arası XML tabanlı iş kurallarının onaylanması ve dönüştürülmesi gibi belirli uygulamarı destekleyecek şekilde özellleştirebilirler. 52

53 Veri Blokları, Uzantılar (Extents), ve Segmentler Bu bölüm Oracle sunucusundaki mantıksal depo yapıları arasındaki ilişkiyi ve doğallığını tanımlar. Bu bölümün içerdikleri: Veri blokları, uzantılar ve segmentlere giriş Veri bloklarını gözden geçirme Uzantıları gözden geçirme Segmentleri gözden geçirme 53

54 Veri blokları, uzantılar ve segmentlere giriş Oracle bir veritabanındaki bütün veriler için mantıksal veritabanı alanı ayırır. Veri blokları, uzantılar ve segmentler veritabanı alanı ayırma birimleridir. Şekil 2-1 veri yapıları arasındaki ilişkiyi gösterir. Şekil 2-1 Segmentler, uzantılar ve veri blokları arasındaki ilişkiler 54

55 En ince düzeyde, Oracle veriyi veri bloklarında depolar (aynı zamanda mantıksal bloklar, Oracle blokları veya sayfalar olarak da adlandırılır). Bir veri bloğu disk üzerindeki fiziksel veritabanı alanında belirli sayıda bayta karşılık gelir. Mantıksal veritabanı alanından sonraki düzeye uzantı denir. Uzantı, belirli türde bilgiyi depolamak için ayrılan belirli sayıdaki bitişik veri bloklarıdır. Uzantının üstündeki mantıksal veritabanı deposuna segment adı verilir. Her biri belirli veri yapıları için ayrılan ve hepsi aynı tablo alanında depolanan uzantılar kümesine segment denir. Örneğin, her bir indeksdeki veri kendine ait indeks segmentinde depolanırken, her bir tablodaki veri kendisine ait veri segmentinde depolanır. Eğer tablo yada indeks bölümlenirse, her bir bölüm kendine ait segmentde depolanır. Oracle, segmentler için uzantı birimlerinde alan ayırır. Varolan segmentteki uzantılar dolduğu zaman, Oracle o segment için başka uzantı ayırır. Çünkü uzantılar gerektikçe ayrılırlar. Bir segmentteki uzantılar disk üzerinde bitişik olabilir veya olmayabilir. Bir segment ve onun bütün uzantıları bir tablo alanı(tablespace) içinde depolanırlar. Bir tablo alanı içinde, bir segment birden fazla dosyadan uzantılar içerebilir; yani segment veri dosyalarına yayılabilir.bununla birlikte, her bir uzantı sadece bir veri dosyasından veri kapsayabilir. Ek uzantılar ayırabilmenize rağmen, bloklar ayrı olarak ayrılırlar. Eğer belirli bir Oracle anına(instance) bir uzantı ayırırsanız, bloklar hemen boş listeye ayrılırlar. Bununla birlikte, eğer uzantı belirli bir Oracle anına ayrılmazsa, o zaman sadece high water mark hareket ettiğinde 55

56 bloklar ayrılırlar. Segment içindeki kullanılmış veya kullanılmamış alanlar arasındaki sınıra high water mark denir. Veri Bloklarını Gözden Geçirme Oracle bir veritabanının veri dosyaları içindeki depo alanını veri blokları adı verilen birimlerle yönetir. Veritabanı tarafından kullanılan en küçük veri birimine veri bloğu denir. Buna karşılık, işletim sistemi seviyesinde bütün veriler bayt olarak depolanır. Her bir işletim sistemi bir blok büyüklüğüne sahiptir. Oracle, çoklu Oracle veri blokları içindeki veriden istekte bulunur, işletim sistemi bloklarından istekte bulunmaz. Standart blok uzunluğu başlangıç parametresi DB_BLOCK_SIZE tarafından belirlenir. Ayrıca, standart olmayan beş blok büyüklüğüne kadar belirleyebilirsiniz. Gereksiz giriş/çıkıştan kaçınmak için, veri blok uzunluğu, maksimum sınırlar içinde işletim sisteminin blok uzunluğunun bir kaç katı olmalıdır. Oracle ın kullandığı veya ayırdığı en küçük depo birimi Oracle veri bloğudur. Veri Blok Formatı Oracle veri blok formatı veri bloğu, tablo veya kümelenmiş(clustered) veri kapsamasına önem vermeyerek benzerdir. Şekil 2-2 de veri bloklarının biçimi resimlendirilmiştir. 56

57 Şekil 2-2 Veri Blok Formatı Ortak ve Değişken Başlık (Header) Başlık, blok adresi ve segmentin türü gibi genel blok bilgisini içerir(örneğin, veri veya indeks). Tablo Dizini Veri bloğunun bu bölümü, bu blok içerisinde satırları olan tablolar hakkında bilgi içerir. 57

58 Satır Dizini Veri bloğunun bu bölümü, blok içindeki gerçek satırlar hakkında bilgi verir (satır veri alanı içindeki her bir satır parçası için adresleri içerir). Bir veri bloğunun ek yükünün(overhead) satır dizininde alan ayrıldıktan sonra, satır silindiğinde bu alan geri istenmez. Dolayısıyla, halihazırda boş olan ama bir kere 50 satıra sahip olmuş bir blok satır dizini için başlıkta(header) yüz bayt ayırmaya devam eder. Sadece bloğa yeni satırlar eklendiğinde, Oracle bu alanı tekrar kullanır. Ek Yük(Overhead) Veri blok başlığı, tablo dizini ve satır dizini toplu ek yük olarak ilgilendirilir. Bazı blok ek yükünün büyüklüğü sabittir, toplam blok ek yükü büyüklüğü degişkendir. Ortalama olarak, sabit ve değişken veri blok ek yükünün payı toplamda 84 den 107 bayta kadardır. Satır Verileri Bu veri bloğunun payı tablo yada indeks veriyi kapsar. Satırlar bloklara yayılabilirler. Boş Alan Yeni satır eklemeler ve satırlara yapılan güncellemeler için boş alan ayrılmaktadır(örnegin, sondaki boşluk, boşluk olmayan bir değerle güncellendiğinde). Gerçekten verilen veri bloğu içinde ekleme oluşup oluşmadığı, bu veri bloğu içindeki mevcut boş alanın fonksiyonu ve alan yönetimi parametresi PCTFREE nin değeridir. 58

59 Veri bloklarında, tablo veya kümelerin(cluster) veri segmenti veya indeksin indeks segmenti için yer ayrılır, boş alanlarda hareket girişlerinide (transaction entry) tutabilirler. Bir veya birden çok satırlara erişim her bir INSERT, UPDATE, DELETE, ve SELECT FOR deyimleri blok içinde hareket girişi gerektirir. Hareket girişleri için gerekli olan alan işletim sistemine bağımlıdır. Bir çok işletim sisteminde hareket girişleri yaklaşık olarak yirmi üç bayt gerekir. Boş Alan Yönetimi Boş alanlar otomatik olarak veya el ile(manually) yönetilebilir. Boş alanlar veritabanı segmentlerinde otomatik olarak yönetilebilirler. Boş listelere karşılık olarak segmentteki boş kullanılabilir alan biteşlem(bitmap) kullanılarak takip edilir. Otomatik segment-alan yönetimi aşağıdaki yararları sunar; Kullanım Kolaylığı Daha yararlı alanlar, özellikle cok değişgen büyük satırlı nesneler için Eşzamanlı erişimdeki değişimi sağlamak için çalıştırmayı daha iyi ayarlama Performans/alan yararı bakımından daha iyi çok-anlı(multiinstance) davranış Yerel yönetimli tablo alanı yarattığınızda, otomatik segment-alan yönetimini belirlersiniz. Bu belirleme daha sonra bu tablo alanından yaratılmış bütün segmentlere uygulanır. 59

60 Veri Bloklarında Kullanılabilirlik ve Boş Alanların Sıkıştırılması DELETE ve UPDATE deyimleri ile bir veya birden çok veri bloklarının boş alanı arttırılabilir. Bunlar varolan değerleri daha küçük değerlerle günceller. Deyimlerin bu türlerinden serbest kalan alan aşağıdaki koşullarda INSERT deyimleri için kullanıma hazır hale gelir: Eğer INSERT deyimi aynı harekette(transaction) ve alanı boşaltan deyimden sonra ise, o zaman INSERT deyimi kullanıma hazır hale gelen alanı kullanabilir. Eğer INSERT deyimi alan boşaltan deyimlerden farklı hareketlerde(transaction) ise(başka bir kullanıcı tarafından çalıştırılıyor olabilir), INSERT deyimi müsait alanları kullanabilir sadece diğer hareketler kaydedildikten(commit) sonra ve sadece alan gerekirse. Serbest kalan alan veri bloklarındaki boşlukların ana alanı ile bitişik olabilir yada olmayabilir. Oracle veri bloğunun boş alanını sadece -(1) INSERT veya UPDATE deyimleri yeni satır parçası kapsayacak kadar yeterli boş alan kapsayan blok kullanmaya kalkıştığında ve (2) boş alanlar satır parçasının bloğun bitişik bir bölümüne eklenemeyeceği kadar parçalanmışsa- birleştirir. Oracle bu sıkıştırmayı sadece böyle durumlarda yapar. Aksi takdirde veri bloklarının boş alanının sürekli sıkıştırılmasından dolayı veritabanı sisteminin performansı düşer. 60

61 Satır Zincirleme(Row Chaining) ve Geçirme(Migrating) İki durumda, tablonun bir satırındaki veri tek veri bloğuna sığmak için çok büyük olabilir. Birinci durumda satır ilk eklendiğinde bir veri bloğuna sığmak için çok büyüktür. Böyle olursa Oracle satır için gerekli veriyi bu segment için ayrılmış zincirlenmiş veri blokları gibi depolar. Satır zincirleme çoğunlukla büyük satırlarda meydana gelir. Örneğin veri türü LONG veya LONG RAW olan satırları kapsayan satırlar. Böyle durumlarda satır zincirleme kaçınılmazdır. Bununla beraber ikinci durumda, başlangıçta bir veri bloğuna sığacak satır güncellenir. Öyle ki, bir uçtan bir uca satır uzunluğu artar ve bloğun boş alanı önceden tamamen dolar. Oracle bütün satırın yeni bloğa sığacağını varsayarak bütün satır için veriyi yeni veri bloğuna geçirir (migrate). Oracle orijinal satırı korur, geçirilmiş satırın bir kısmı geçirilmiş satırları kapsayan yeni bloğu işaret eder. Geçirilmis satırların satır kimlik numarası (ROWID) değişmez. Bir satır zincirlendiğinde(chained) veya geçirildiğinde(migrated), bu satıra ait giriş/çıkış başarımı azalır. Çünkü, Oracle satır için gerekli bilgiyi çıkarmak için birden çok veri bloğunu iyice incelemek zorundadır. PCTFREE, PCTUSED ve Satır Zincirleme PCTFREE ve PCTUSED, tablo alanlarını el ile yönetmek için kullanılan iki alan yönetim parametresidir. Bunlar, belirli segmentteki bütün veri bloklarında bulunan satırlara eklemek ve güncellemek için boş alanın kullanımını denetleyebilmemizi sağlar. Tablo veya kümeyi (kendi veri segmentine sahip olan) yarattığınızda veya değiştirdiğinizde bu parametreleri açıkça belirleyebilirsiniz. İndeksi yaratırken veya 61

62 değiştirirken depo parametresi olan PCTFREE yide açıkça belirleyebilirsiniz(kendi indeks segmentine sahip olan). Uzantıları(Extents) Gözden Geçirme Depolanan alanların ayrılması ile belli sayıda bitişik veri bloklarından meydana gelmiş veritabanı mantıksal birimine uzantı denir. Segment bir veya birkaç uzantının bir araya gelmesinden meydana gelir. Segment içinde varolan alan tamamen kullanıldığında, Oracle bu segment için yeni uzantı ayırır. Uzantı Ayrıldığında Tablo yarattığınızda, Oracle bu tablodaki veri segmentine belli sayıda veri bloklarından başlangıç uzantısı ayırır. Henüz yeni satır eklenmemesine rağmen bu tablodaki satırlar için, başlangıç uzantılarına karşılık gelen Oracle veri blokları ayrılır. Eğer yeni veriyi tutmak için segmentin başlangıç uzantısının veri blokları dolmuşsa ve daha fazla alan gerektiriyorsa, Oracle otomatik olarak bu segment için artan uzantı (incremental extent) ayırır. Bu segment içinde önceden ayrılan uzantının büyüklüğünde veya daha büyük olan sonradan gelen uzantılara artan uzantı denir. Bakım amacı için, her bir segmentin başlık(header) bloğu bu segment içindeki uzantıların dizinini kapsar. NOTE:Bu bölüm bir sunucu işleminin(process), SQL deyimin ayrıştırdığı ve çalıştırdığı seri operasyonlar için geçerlidir. Uzantılar, çoklu sunucu işlemleri gerektiren paralel SQL deyimleri içinde biraz farklı olarak ayrılırlar. 62

63 Uzantının Sayısını ve Büyüklüğünü Belirleme Her segmentte tanımlanan depolama parametreleri uzantılar cinsinden ifade edilir. Depolama parametreleri bütün segment türlerine uygulanır. Onlar Oracle ın verilen segment için nasıl boş veritabanı alanı ayıracağını kontrol eder. Örneğin, tablo veri segmenti için başlangıçta ne kadar alan ayrılacağına karar verebilirsiniz, veya uzantı sayısını kısıtlayabilir CREATE TABLE deyiminin STORAGE yantümcesi ile tablonun depolama parametresini belirleyerek tablo ayırabilirsiniz. Eğer tablonun depolama parametresini belirlemezseniz, Oracle tablo alanının varsayılan depolama parametresini kullanır. Oracle 8i ye kadar bütün tablo alanları sözlük düzeninde(dictionary managed) yaratıldı. Sözlük şeklinde tablo alanları alan kullanımını izlemek için veri sözlüğüne güvenirdi. Oracle 8i den itibaren kullanılmış ve boş alanları izlemek için biteşlem(bitmap) kullanan yerel yönetilmiş(locally managed) tablo alanları yaratabilirdiniz. Yerel yönetilmiş tablo alanlarının performansı ve yönetiminin çok daha kolay olması nedeniyle, sistem dışı kalıcı tablolar aksi belirtilmedikçe yerel yönetilmiş kabul edilir. Uzantılarını yerel olarak yöneten bir tabloalanı ya sabit uzantı ebatları veya sistemin otomatik belirlediği değişken uzantı ebatlarına sahip olabilir. Tablo alanı yarattığınızda ayırma türünü UNIFORM veya AUTOALLOCATE(system-managed) yantümce belirler. System-managed uzantılarda başlangıç uzantının büyüklüğünü belirleyebilirsiniz ve Oracle ek uzantıların en uygun büyüklüğüne karar verir. Minimum uzantı büyüklüğü 64 KB dir. Bu kalıcı tablo alanları için varsayılandır. 63

64 Uniform uzantılarda uzantının büyüklüğünü belirliyebilir yada varsayılan değer olan 1MB kullanabilirsiniz. Uzantılarını yerel olarak yöneten geçici tablo alanları sadece bu ayırma türlerini kullanırlar. Depolama parametreleri NEXT, PCTINCREASE, MINEXTENTS, MAXEXTENTS, ve DEFAULT STORAGE yerel yönetilen uzantılar için geçerli değildir. Uzantılar Nasıl Ayrılırlar Oracle yerel yönetilmiş yada sözlüksel yönetilmiş uzantılar için farklı algoritmalar kullanır. Yerel yönetilmiş tablo alanlarında Oracle yeni uzantıyı ayırmak için boş alan bakar, ilk önce tablo alanında aday veri dosyasına karar verir, gerekli komşu boş blokların sayısı için veri dosyasının biteşleminde araştırma yapar. Eğer veri dosyası yeterli sayıda komşu boş alana sahip değilse Oracle başka veri dosyasına bakar. NOTE: Oracle kesinlikle yerel yönetilmiş tablo alanlarının kullanılmasını önerir. Uzantılar Serbest Bırakıldığında Segmentin içinde verisi depolanan şema nesnesi bırakılana (drop) kadar segmentin uzantısı genelde tablo alanına geri donmez(drop TABLE yada DROP CLUSTER deyimlerini kullanarak). Bunun istisnaları aşağıdaki gibidir : 64

65 Bir tablo yada kümenin sahibi yada DELETE ANY hakkı olan bir kullanıcı TRUNCATE DROP STORAGE deyimi ile, bir tablo yada kümeyi kesebilir(truncate). Veritabanı yöneticisi aşağıdaki SQL sözdizimini(syntax) kullanarak kullanılmayan uzantıları serbest bırakabilir: ALTER TABLE tablo_ismi DEALLOCATE UNUSED; Eğer belirlenen en uygun büyüklüğe ( OPTIMAL) sahipse Oracle periyodik olarak bir veya birden çok geri alınan segmentlerin uzantılarını serbest bırakır. Uzantılar serbest bırakıldığında Oracle veri dosyasındaki biteşlemde değişiklik yapar (yerel yönetilmiş tablo alanları için) yada kullanabilir alan olarak tekrar kazanılmış uzantıları yansıtmak için veri sözlüğünü günceller (sözlüksel yönetilmiş tablo alanları için). Bloklardaki serbest kalan uzantılardaki veri erişilemez olur. Kümeli Olmayan Tablodaki Uzantılar Kümeli olmayan tablo varolduğu sürece veya tablo kesilinceye kadar, kendi veri segmentine ayrılmış her veri bloğu tablo için ayrılmış kalır. Eğer blokta yeteri kadar oda varsa Oracle bloğa yeni satırlar ekler. Tablodaki bütün satırlar silindiği halde Oracle tablo alanındaki diğer nesneleri kullanmak için veri bloklarını düzeltmez. Kümeli olmayan tabloyu bıraktıktan(drop) sonra bu alan diğer uzantılara boş alan gerektiğinde geri döner. Oracle tablodaki verinin bütün uzantılarını ve aynı tablo alanlarındaki diğer şema nesneleri için uzantıları kullanılabilir duruma getiren tablo alanları için indeks segmentlerini düzeltir. 65

66 Sözlüksel yönetilmiş tablo alanlarında, segment kullanılabilir uzantılardan daha büyük uzantı gerektirdiğinde Oracle birleşik düzeltilmiş uzantıları daha büyük bir tane formda yapmak için belirler ve birleştirir. Buna bütünleşmiş (coalescing) uzantılar denir. Bütünleşmiş uzantılar yerel yönetilmiş tablo alanları için gerekli değildir. Çünkü bir veya birkaç uzantı düzeltilmiş olup olmamasını önemsemeden bütün bitişik boş alan yeni uzantı ayırmak için kullanılabilir. Kümelenmiş Tablolarda Uzantılar Kümelenmiş tablolar küme için yaratılmış veri segmentindeki bilgiyi depolar. Bu yüzden kümeden bir tablo çıkarırsanız(drop) kümelerdeki diğer tablolar için veri segmenti değişmez ve hiçbir uzantı serbest kalmaz. Ayrıca boş uzantılar için kümeleri kesebilirsiniz. Materialized Views deki uzantılar ve Günlüğü(Logs) Oracle tablolarda ve kümelerde olduğu gibi materialized view in uzantılarını ve materialized view günlüğünü serbest bırakır. İndeksdeki uzantılar İndeks segmenti için ayrılmış bütün uzantılar indeksler varolduğu sürece ayrı kalırlar. İndeksi yada ilgili tablo veya kümeyi çıkardığınızda Oracle tablo alanlarındaki diğer kullanımlar için olan uzantıları düzeltir. 66

67 Geçici Segmentlerdeki Uzantılar Geçici segmentleri gerektiren deyimleri çalıştırmayı bitirdiğinde Oracle otomatik olarak geçici segmentleri çıkarır ve bu segment için ayrılmış uzantıları ilgili tablo alanına geri döndürür. Basit bir sıralama, komutu gönderen kullanıcının geçici tablo alanındaki kendine ait geçici segmentini ayırır ve sonra uzantıları tablo alanına geri gönderir. Bununla beraber çoklu sıralamalarda, sıralamalar için dizayn edilmiş geçici tablo alanlarındaki sıralı segmentleri kullanabilir. Bu sıralı segmentler sadece bir kez Oracle anı(instance) için ayrılırlar ve sıralamadan sonra geri döndürülmezler fakat diğer çoklu sıralamalar için kullanılabilir durumda beklerler. Geçici tablodaki geçici segment tek hareketli veya oturumlu çoklu deyimler için bilgi içerirler. Oracle hareketin veya oturumun sonundaki geçici segmenti bırakır, bu segment için ayrılmış uzantıları ilgili tablo alanına geri gönderir. Geri Alınmış Segmentteki Uzantılar Oracle veritabanındaki geri alınmış segmentleri en uygun büyüklüğünden daha da büyük olduğunu görmek için belli zaman aralıklarıyla kontrol eder. Eğer geri alınmış segment en uygun büyüklüğünden daha büyükse (yani çok sayıda uzantıya sahipse) Oracle geri alınmış segmentlerden bir veya birkaç tane uzantıyı otomatik olarak serbest bırakır. 67

68 Segmentleri Gözden Geçirme Segment tablo alanındaki belirli mantıksal depolanmış yapılar için bütün verileri kapsayan uzantılar kümesidir. Örneğin Oracle her bir tablo için tablonun veri segmentini biçimlendirmek için bir veya birkaç tane uzantı ayırır ve her indeks için, kendi indeks segmentini biçimlendirmek üzere bir veya birkaç uzantı ayırır. Oracle veritabanı aşağıdaki bölümlerde tarif edilen dört çeşit segment kullanır; Veri Segmentlerine Giriş İndeks Segmentlerine Giriş Geçici Segmentlere Giriş Veri Segmentlerine Giriş Oracle veritabanındaki tek veri segmenti aşağıdakilerin bir tanesi için bütün verileri tutar: Bölümlenmemiş yada kümelenmemiş tablo Bölümlenmiş tablonun bölümü Tabloların Kümesi CREATE deyimiyle tablo yada kümeyi yarattığınızda Oracle bu veri segmentini yaratır. 68

69 Tablo yada küme için olan depolama parametreleri veri segmenti uzantılarının nasıl ayrılacağına karar verir. Depolama parametrelerini uygun CREATE yada ALTER deyimleri ile direkt olarak belirleyebilirsiniz. Bu depolama parametreleri veri erişiminin verimliliğini ve nesne ile ilgili veri segmenti için depolamayı etkiler. NOTE: Oracle tablolarda ve kümelerde olduğu gibi materialized view in uzantılarını ve materialized view günlüğünü yaratır. İndeks Segmentlerine Giriş Oracle veritabanındaki her bölümlenmemiş indeks bütün verilerini tutmak için tek indeks segmentine sahiptir. Bölümlenmiş indeks için her bölüm verisini tutmak için tek indeks segmentine sahiptir. CREATE INDEX deyimini yürüttüğünüzde Oracle indeks veya indeks bölümü için indeks segmenti yaratır. Bu deyimle depolama parametrelerini indeks segmentinin uzantısı ve indeks segmenti için yaratılmış tablo alanları için belirleyebilirsiniz.(tablonun segmentleri ve onunla ilgili indeks aynı tablo alanını kullanmamalıdır.) Depolama parametrelerinin direkt olarak belirlenmesi veri erişiminin verimliliğini ve depolamayı etkiler. Geçici Segmentlere Giriş Sorgu işlenirken Oracle SQL deyimini ayrıştırma ve çalıştırma ara aşaması için sık sık geçici çalışma alanı ister. Oracle otomatik olarak geçici segment adı verilen bu disk alanını ayırır. Oracle sıralamak için çalışma alanı olarak geçici segment ister. Eğer sıralama işlemi bellekte yapılırsa veya Oracle indeksleri kullanarak operasyon yapmak için başka bir yol bulursa Oracle segment yaratmaz. 69

70 Geçici Segmentleri Gerektiren İşlemler Aşağıdaki deyimler bazen geçici segmentlerin kullanımını gerektirirler: CREATE INDEX SELECT ORDER BY SELECT DISTINCT SELECT GROUP BY SELECT UNION SELECT INTERSECT SELECT MINUS Bazı indekslenmemiş birleşmeler(joins) ve ilintili(correlated) alt sorgular geçici segmentin kullanımını gerektirebilir. Örneğin sorgu DISTINCT yantümcesi, GROUP BY, ve bir ORDER BY içeriyorsa Oracle iki geçici segment kadar ihtiyaç duyabilir. Uygulamalar sık sık bir önceki listedeki deyimleri yürütüyorsa veritabanı yöneticisi SORT_AREA_SIZE parametresinin başlangıç değerini ayarlıyarak performansı yükseltebilir. Geçici Tablolardaki ve İndekslerindeki Segmentler Oracle geçici tablolar ve geçici tablolarda yaratılmış indeksler için ayrıca geçici segmentlerde ayırır. Geçici tablolar sadece hareket ve oturum süresince var olan veriyi tutarlar. 70

71 Geçici Segmentler Nasıl Ayrılırlar Oracle sorgular ve geçici tablolar için geçici segmentleri farklı olarak ayırır. Sorgular İçin Geçici Segmentlerin Ayrımı Oracle geçici segmentleri kullanıcının geçici tablo alanında kullanıcı oturumu sırasında deyim yürütülürken gerektikçe ayırır. TEMPORARY TABLESPACE yantümcesini kullanarak CREATE USER veya ALTER USER deyimi ile bu tablo alanını belirleyin. NOTE: Kullanıcının geçici tablo alanı olarak kalıcı tablo alanı veremezsiniz. Kullanıcı için geçici tablo alanı tanımlanmamışsa varsayılan tablo alanı sistem(system) tablo alanıdır. Tablo alanını kapsayan varsayılan depo özelliğini bunların geçici segmentin uzantılarına karar verir. Deyim bittiğinde Oracle geçici segmentleri çıkarır. Geçici segmentleri ayırma ve serbest bırakma sık sık olduğundan dolayı geçici segmentler için belirli tablo alanları yaratın. Böyle yapmakla disk aygıtlarına karşılık giriş/çıkışı dağıtabilirsiniz ve sistem ve geçici segmentleri tutan diğer tablo alanlarının parçalanmasını(fragmentation) önleyebilirsiniz. NOTE: Sistem tablo alanı yerel olarak yönetilmişse veritabanı yaratılırken varsayılan geçici tablo alanı tanımlayabilirsiniz. Yerel yönetilmiş sistem tablo alanı varsayılan geçici depo için kullanılamaz. 71

72 Girişleri değişen geçici segmentteki alan yönetim işlemleri hariç sıralı işlemler için kullanılan geçici segmentler yinele günlüğünde (redo log) depolanmazlar. Geçici Tablolar ve İndeksler için Geçici Segmentlerin Ayrılması Tabloya yapılan ilk INSERT yürütüldüğünde Oracle geçici tablolar için segmentler ayırır.(bu CREATE TABLE AS SELECT tarafından yürütülen dahili ekleme işlemi olabilir.) Geçici tabloya yapılan ilk INSERT deyimi tablo ve indeksleri için segmentler ayırır, indeksler için kök sayfası yaratır, herhangi bir LOB segmentleri ayırır. Geçici tablo için segmentler geçici tablo yaratan kullanıcının geçici tablo alanına ayrılır. Oracle hareketin sonunda hareketi belirli geçici tablo için segmentleri çıkarır ve oturumun sonunda oturumu belirli geçici tablo için segmentleri çıkarır. Diğer hareketler veya oturumlar bu geçici tablonun kullanımını paylaşıyorsa verilerini kapsayan segmentler tabloda kalmaya devam eder. Otomatik Geri Alma (Undo) Yönetimi Otomatik geri alma yönetimi geri alma tablo alanı tabanlıdır. Farklı büyüklüklerde birçok geri alma(rollback) segmentleri ayırma yerine, birkaç geri alma(undo) tablo alanları oluşturmak için alan ayırabilirsiniz. Otomatik geri alma yönetimi sizin geri alma süresini net olarak belirlemenizi sağlar. Sistem parametresinin(undo_retention) kullanımı süresince kaydedilmiş geri alma bilgisinin miktarını veritabanında tutmak için belirleyebilirsiniz. Parametreyi saat zamanı 72

73 olarak belirlersiniz(örneğin 30 saniye). Süresini belirleme ile uzun sorguları başarılı bir şekilde çalıştırabilmek için sisteminizi yapılandırabilirsiniz. Geri alma alanının kullanımını daha başarılı yararlanabilmek için V$UNDOSTAT kullanarak veritabanı sisteminizi görüntüler ve yapılandırırsınız. V$UNDOSTAT çeşitli geri almayı ve hareketin istatistiklerini gösterir. Örneğin Oracle anındaki(instance) geri alma alanının tüketilmiş miktarını. NOTE: İlk Oracle yayınlarında, geri alma alan yönetimi geri alma segmentleri kullanılarak yapıldı. Bu yöntem şimdi el ile geri alma yönetimi modu olarak adlandırılır. Geri Alma(Undo) Modu Geri alma modu el ile geri alma yönetiminden otomatik geri alma yönetimine geçiş yolunu daha çok esnek olmasını sağlar. Veritabanı sistemi ya el ile geri alma yönetimi modu yada otomatik geri alma yönetimi moduyla çalışabilir. El ile geri alma yönetimi modunda geri alma alanı geri alma segmentleri boyunca yönetilirler. El ile geri alma yönetimi modu her uygunluk seviyesi altında desteklenir. Oracle9i ye bazı yeni özelliklerini avantaj olarak kullanmak üzere ihtiyacınız varsa ancak otomatik geri alma yönetimi moduna henüz hazır değilseniz, bu modu kullanabilirsiniz. Otomatik geri alma yönetimi modunda geri alma alanı geri alma tablo alanları ile yönetilirler. Otomatik geri alma yönetimi modunu kullanmak için veritabanı yöneticisi sadece her bir Oracle anı için geri alma tablo alanı yaratması ve UNDO_MANAGEMENT başlangıç parametresine AUTO değerini 73

74 vermesi gerekir. Otomatik geri alma yönetimi modu uygunluk seviyesi oracle9i ve üstü için desteklenir. El ile geri alma yönetimi modu desteklenmesine rağmen Oracle kesinlikle sizi otomatik geri alma yönetimi modunu çalıştırmanızı tavsiye eder. Geri Alma Kotası Otomatik geri alma yönetimi modunda sistem sadece geri alma segmentlerindeki hareketlerin görevini ve geri alma segmenti için alan ayırmayı kontrol eder. Zararlı davranışlı hareket potansiyel olarak çok fazla geri alma alanı tüketir böylece bütün sistem felç olur. El ile geri alma yönetimi modunda geri alma segmentlerinin büyüklüğünü küçük MAXEXTENTS değeri ile sınırlayarak böyle olasılıkları kontrol edebilirsiniz. Bununla beraber uzun çalışan hareketleri daha büyük geri alma segmentlerine SET TRANSACTION USE ROLLBACK SEGMENT deyimini kullanarak belirgin bir şekilde atamalısınız. Bu hantal bir yaklaşımdır. Büyük hareketleri kontrol etmek için kaynak yöneticisi(resource manager) direktifi olan UNDO_POOL daha belirgin yoldur. Bu veritabanı yöneticilerine her guruba maksimum geri alma alan sınırı verilen tüketici gruplardaki kullanıcıları ile gruplara ayırmasına izin verir. Toplam geri alma alanı sınırı aşan gurup tarafından tüketildiğinde kullanıcıları son bulan diğer üye hareketler tarafından geri alma alanı serbest bırakılana kadar daha fazla güncelleme yapamazlar. Kullanıcılara geri alma tablo alanının geri alma alanına sahip oluncaya kadar tüketmesine izin verildiğinde varsayılan UNDO_POOL un değeri UNLIMITED dır. Veritabanı yöneticileri UNDO_POOL direktifini kullanarak belirli kullanıcıyı sınırlayabilir. 74

75 Geri Alma Zamanı Kontrolü Uzun süreli çalışan sorgular bazen başarısız olurlar çünkü geri alma bilgisi tutarlı okuma işlemleri gerektirdiği için uzun süre kullanılabilir değillerdir. Bu kaydedilmiş geri alma bloklarının aktif hareketler üzerine yazıldığında meydana gelir. Otomatik geri alma yönetimi geri alma alanı tekrar kullanıldığında belirgin şekilde kontrol etmek için bir yol sağlar, yani ne kadar geri alma bilgisinin tutulacağını. Veritabanı yöneticisi UNDO_RETENTION parametresini kullanarak peryod süresini belirleyebilir. Örneğin UNDO_RETENTION a otuz dakika verilirse sistemdeki bütün kaydedilmiş geri alma bilgisi en azından otuz dakikada elde edilir. Bu bütün sorguların otuz dakika yada daha az çalışacağını garanti eder, normal şartlar altında OER hatası olan snapshot too old ile karşılaşmamanız gerekir. UNDO_RETENTION ya başlangıçta belirleyebilirsiniz yada ALTER SYSTEM deyimiyle dinamik olarak değiştirebilirsiniz. Aşağıdaki örnekte tutma süresi yirmi dakikaya belirlenmiştir; ALTER SYSTEM SET UNDO_RETENTION = 1200; UNDO_RETENTION parametresini belirlemezseniz Oracle sorguları genelde çok büyük olmayan birçok OLTP sistemlerine yetecek kadar küçük varsayılan değer kullanır. Genelde tutma süresini geri alma tablo alanını destekleyebilecek yakın bir değerle belirlenmesi iyi bir fikir değildir, çünkü geri alma segmentleri arasındaki alanın gereğinden fazla hareketi sonuç olabilir. Geri alma alanı olarak tamponun 20% si tavsiye edilir. 75

76 Harici Görünüş (External Views) Hareketleri ve geri alma bilgisini V$TRANSACTION ve V$ROLLSTAT ile gözleyin. Otomatik geri alma yönetimi için V$ROLLSTAT bilgisi, otomatik geri alma yönetimi geri alma segmentlerinin davranışlarını yansıtır. V$UNDOSTAT görünüşü sistemin ne kadar iyi çalıştığını göstermek için istatistiki bilginin histogramını görüntüler. Geri alma tüketim oranı, eşzamanlı hareketi ve Oracle anında çalışan sorguların uzunluğu gibi istatistikleri görebilirsiniz. Bu görüntülemeyi kullanarak hali hazırdaki aşırı çalışma için ne kadar geri alma alanı gerektiğini daha iyi tahmin edebilirsiniz. Bu görüntü otomatik geri alma yönetimi ile el ile geri alma yönetimi modlarında kullanılabilir. 76

77 Tablo Alanları, Veri Dosyaları, ve Kontrol Dosyaları Bu bölüm tablo alanlarının, herhangi bir Oracle veritabanının başlıca mantıksal veritabanı yapıları ve her bir tablo alanına karşılık gelen fiziksel veri dosyalarını analatır. Bu bölümün içerdikleri: Tablo alanlarına, veri dosyalarına, ve kontrol dosyalarına giriş Tablo alanlarını Gözden Geçirme Veri Dosyalarını Gözden Geçirme Kontrol Dosyalarını Gözden Geçirme 77

78 Tablo Alanlarına, Veri Dosyalarına, ve Kontrol Dosyalarına Giriş Oracle tablo alanlarındaki veriyi mantıksal olarak ve tablo alanlarına karşılık gelen ilgili veri dosyalarındaki veriyide fiziksel olarak depolar. Şekil 3-1 de bu ilişki resimlendirilmiştir. Figure 3-1 Veri Dosyaları ve Tablo Alanları Veritabanları, tablo alanları, ve veri dosyaları birbiriyle çok yakın ilgilidirler fakat önemli farklılıklara sahiptirler: 78

79 Oracle veritabanı veritabanındaki, bütün veriyi toplu olarak depolayan tablo alanları adı verilen bir veya birkaç mantıksal depolama birimlerinden meydana gelmiştir. Oracle veritabanındaki her bir tablo alanı Oracle ın çalıştığı işletim sistemine uyumlu fiziksel yapılar olan veri dosyaları adı verilen bir veya birkaç dosyadan meydana gelmiştir. Veritabanındaki veri, her bir tablo alanından meydana gelen veri dosyalarında toplu olarak depolanır. Örneğin, en basit Oracle veritabanı bir tablo alanı ve bir veri dosyasına sahiptir. Başka bir veritabanı her biri iki veri dosyası içeren üç tablo alanına sahip olabilir(toplamda altı adet veri dosyası olur). Oracle Yönetimindeki Dosyalar Oracle ın yönettiği dosyalar, Oracle veritabanını içine alan işletim sistemi dosyalarını direkt olarak yönetmeniz gereğini ortadan kaldırır. Dosya isimleri yerine veritabanı nesneleri yönünden işlemi belirlersiniz. Oracle aşağıdaki veritabanı yapıları için gerektiğinde, dosya yaratmak ve silmek üzere dahili olarak standart dosya sistem arayüzlerini kullanır : Tablo Alanları Erişilebilir yineleme günlük dosyaları(online redo log files) Kontrol Dosyaları 79 Başlangıç parametreleri sayesinde belirli türde dosyalarda kullanabilmek için dosya sistem dizinini belirlersiniz. Oracle bu sayede uzun süre gerekli olmadıkça yaratılan ve silinen tek bir dosya, oracle yönetimindeki dosya, olduğundan emin olur.

80 Veritabanı İçin Daha Çok Alan Ayırma Tablo alanlarının büyüklüğü tablo alanlarından meydana gelen veri dosyalarının büyüklüğüdür. Veritabanının büyüklüğü veritabanını oluşturmak üzere bir araya gelen tablo alanlarının büyüklüğüdür. Veritabanını üç şekilde büyütebilirsiniz: Tablo alanına veri dosyası ekleyerek Yeni tablo alanı ekleyerek Veri dosyalarının büyüklüğünü arttırarak Varolan tablo alanına başka bir veri dosyası eklendiğinizde tablo alanına karşılık ayrılmış bir miktar disk alanı arttırırsınız. Şekil 3-2 de bu türde alan arttırma resimlendirilir. Figure 3-2 Tablo Alanına Veri Dosyası Ekleyerek Veritabanını Büyütme 80

81 Alternatif olarak veritabanının büyüklüğünü büyütmek için yeni tablo alanı(en azından bir ek veri dosyası içeren) yaratabilirsiniz. Şekil 3-3 de bu resimlendirilir. Şekil 3-3 Yeni Tablo Alanı Ekleyerek Veritabanını Büyütme Veritabanını büyütmek için üçüncü seçenek veri dosyalarının büyüklüğünü değiştirmek veya varolan tablo alanlarındaki veri dosyalarına daha çok alan gerektikçe dinamik olarak büyümelerine izin vermek. Bunu varolan dosyaları değiştirerek veya dinamik uzama özelliği ile dosyaları ekleyerek başarırsınız. 81

82 Şekil 3-4 Dinamik Büyüklüklü Veri Dosyaları İle Veritabanını Büyütme 82

83 Tablo Alanlarını Gözden Geçirme Veritabanı tablo alanları adı verilen bir veya birkaç mantıksal depolama birimlerine bölünür. Tablo alanları daha sonra uzantılara bölünen segmentler adı verilen mantıksal depolama birimlerine bölünür. Bitişik bloklar topluluğuna uzantılar denir. Bu bölüm tablo alanları hakkında olan aşağıdaki konuları içerir: Sistem Tablo Alanları Geri Alma(Undo) Tablo Alanları Varsayılan geçici Tablo Alanları Çoklu Tablo Alanlarının Kullanımı Tablo Alanlarındaki Alanın Yönetimi Çoklu Blok Büyüklükleri Erişilebilir(Online) ve Erişilemez(Offline) Tablo Alanları Sadece-okunabilir Tablo Alanları Sıralı İşlemler İçin Geçici Tablo Alanları Veriyapıları Arasında Tablo Alanlarının Taşınması Sistem Tablo Alanları Her Oracle veritabanı sistem adı verilen tablo alanını içerir. Veritabanı yaratıldığında Oracle otomatik olarak yaratır. Veritabanı açıldığında sistem tablo alanı her zaman erişilebilir durumdadır. Yerel yönetilmiş tablo alanlarının yararlarını avantaj olarak kullanabilmek için yerel yönetilmiş sistem tablo alanı yaratabilirsiniz 83

84 yada varolan sözlüksel yönetilmiş sistem tablo alanını yerel yönetilmiş biçime geçirebilirsiniz. Yerel yönetilmiş sistem tablo alanlı veritabanında sözlüksel tablo alanları yaratılamazlar. Sözlüksel yönetilmiş tablo alanını taşınabilir özellik ekleyerek kullanmak mümkündür fakat yazılabilir olamazlar. Note: Tablo alanı bir kere yerel yönetilmiş olduktan sonra sözlüksel yönetilmiş olarak geri döndürülemez. Veri Sözlüğü Sistem tablo alanı bütün veritabanı için her zaman veri sözlüğü tablolarını içerir. Veri sözlüğü tabloları bir nolu veri dosyasında (datafile 1) depolanır. PL/SQL Program Units Description Bütün veri depolanan PL/SQL program birimleri adına sistem tablo alanında dururlar. Veritabanı bunlardan bir çok program birimleri içerirse veritabanı yöneticisi birimleri sistem tablo alanında gerektiği kadar alan sağlamak zorundadır. Geri Alma(Undo) Tablo Alanları Geri alma tablo alanları yalnızca geri alma bilgisini depolamak için kullanılan özel tablo alanlarıdır. Geri alma tablo alanlarında herhangi bir diğer türde(örneğin, tablo yada indeksler) segment yaratamazsınız. Her bir varitabanı sıfır veya birçok geri alma tablo alanları içerir. Otomatik geri alma yönetim modunda her bir Oracle anı sadece bir geri alma tablo 84

85 alanına tahsis edilir. Geri alma verisi otomatik olarak Oracle tarafından yaratılan ve bakımı yapılan geri alma segmentlerini kullanan geri alma tablo alanında yönetilir. İlk DML işlemi bir hareket içerisinde çalıştığında hareket, hali hazırdaki geri alma tablo alanında geri alma segmentine atanır (ve hareket tablosunada atanmış olur). Nadir durumlarda Oracle anı tasarlanmış geri alma tablo alanına sahip değilse hareket sistem geri alma segmentine bağlanır. Dikkat: İlk geri alma tablo alanını yaratmadan ve erişilebilir yapmadan herhangi bir kullanıcı hareketi çalıştırma. Her bir geri alma tablo alanı geri alma dosyaları kümesinden meydana gelir ve yerel yönetilmişlerdir. Diğer türlerdeki tablo alanlarına benzer şekilde geri alma blokları uzantılar içinde gruplanır ve her bir uzantının durumu biteşlemde temsil edilir. Zamanın herhangi bir anında uzantı ya hareket tablosuna ayrılır(ve tarafından kullanılır) yada boştur. Geri Alma Tablo Alanlarının Yaratılması Veritabanı yönetici CREATE UNDO TABLESPACE deyimini kullanarak geri alma tablo alanlarını teker teker yaratır. Ayrıca veritabanı yaratıldığında CREATE DATABASE deyimini kullanarakda yaratılabilir. Dosyalar kümesi her bir yeni yaratılmış geri alma tablo alanına atanır. Sıradan tablo alanlarına benzer şekilde geri alma alanlarının öznitelikleri (attributes) ALTER TABLESPACE deyimi ile değiştirilebilir ve DROP TABLESPACE deyimi ile de çıkartılabilir. 85

86 Note: Geri alma tablo alanı herhangi bir Oracle anı tarafından kullanılıyorsa veya hareketleri kurtarmak için gerekli herhangi bir geri alma bilgisi içeriyorsa çıkartılamaz. Geri Alma Tablo Alanlarının Atanması Geri alma tablo alanını Oracle anına iki yoldan biriyle atarsınız: Oracle anı başladığında. Başlangıç dosyasında geri alma tablo alanını belirleyebilirsiniz veya sistemin sürekli geri alma tablo alanı seçmesini sağlarsınız. Oracle anı çalışırken. ALTER SYSTEM SET UNDO_TABLESPACE deyimini kullanarak aktif geri alma tablo alanına bir başka geri alma tablo alanı ile değiştirilir. Bu yöntem nadiren kullanılır. Geri alma tablo alanına, ALTER TABLESPACE deyimi ile veri dosyası ilave ederek, daha fazla alan ekleyebilirsiniz. Birden çok geri alma tablo alanına sahip olabilirsiniz ve bunları kendi içlerinde değiştirebilirsiniz. Geri alma tablo alanlarına kullanıcı kotaları oluşturmak için veritabanı kaynak yöneticisini kullanın. Geri alma bilgisi için tutma süresini belirleyebilirsiniz. Varsayılan Geçici Tablo Alanı Sistem tablo alanı yerel yönetilmiş olduğundan veritabanı yaratılırken varsayılan geçici tablo alanı tanımlamalısınız. Varsayılan geçici depolama için yerel yönetilmiş sistem tablo alanı kullanamazsınız. 86

87 Sistem sözlüksel yönetilmişse ve veritabanı yaratılırken varsayılan geçici tablo alanı tanımlanmamışsa sistem hala varsayılan geçici depolama için kullanılır. Bununla beraber ALERT.LOG dosyasında yazan şu uyarıyı alırsınız: varsayılan geçici tablo alanı tavsiye edilir ve gelecekte Oracle sürümleri için gerekli olacaktır. Varsayılan Geçici Tablo Alanının Belirlenmesi Veritabanı yaratıldığında DEFAULT TEMPORARY TABLESPACE uzantısını kullanarak CREATE DATABASE deyiminde varsayılan geçici tablo alanını belirleyin. Varsayılan geçici tablo alanını çıkardığınızda sistem tablo alanı varsayılan geçici tablo alanı olarak kullanılır. Note: Varsayılan geçici tablo alanını kalıcı ve erişilmez yapamazsınız. Çoklu Tablo Alanları Kullanımı Çok küçük bir veritabanı sadece sistem tablo alanına ihtiyaç duyabilir, bununla beraber Oracle, veri sözlüksel bilgiden ayrılmış kullanıcı verisini depolamak için en azından bir ek tablo alanı yaratmanızı tavsiye eder. Bu size çeşitli veritabanı yönetimi işlemlerinde çok esneklik sağlayacak ve aynı veri dosyaları için sözlüksel nesneleri ve şema nesneleri arasındaki uğraşmalarınızı azaltacaktır. Aşağıdaki görevleri yapabilmek için çoklu tablo alanları kullanabilirsiniz: 87 Veritabanındaki veri için disk alanı ayırma kontrolü Veritabanı kullanıcıları için belirli alan kotası atama

88 Tek tek tablo alanlarının erişilebilir veya erişilemez olduğuna bakarak verinin sürekliliğini kontrol etme Kısmi veritabanı yedeklemesini veya kurtarma işlemlerinin gerçekleştirilmesini Performansı yükseltmek için karşılıklı aygıtlara veri depolamanın ayrılması Veritabanı yöneticisi aşağıdaki işleri yapabilmek için tablo alanlarını kullanabilir: Yeni tablo alanı yaratılması Tablo alanlarına veri dosyaları eklenmesi Tablo alanında yaratılmış segmentler için varsayılan segment depolama ayarlarının belirlenmesi veya değiştirilmesi Tablo alanının sadece-okuma veya okuma/yazma durumuna alınması Tablo alanının geçici veya kalıcı yapılması Tablo alanlarının çıkarılması Tablo Alanlarındaki Alanın Yönetimi Tablo alanları uzantılarda alan ayırır. Tablo alanları boş ve kullanılan alanı takip etmek için iki farklı yöntem kullanır: Yerel yönetilmiş tablo alanları: Tablo alanı tarafından uzantı yönetimi Sözlüksel yönetilmiş tablo alanları: Veri sözlüğü tarafından uzantı yönetimi 88

89 Tablo alanı yarattığınızda bu alan yönetim yöntemlerinden birini seçersiniz. Seçtiğiniz yöntemi ileriki zamanlarda değiştiremezsiniz. Note: Tablo alanı yarattığınızda bu alan yönetim yöntemlerinden birini belirlemezseniz varsayılan olarak yerel yönetilmiş kullanılır. Yerel Yönetilmiş Tablo Alanları Kendine ait uzantıların yönetimini yapan tablo alanı veri dosyasındaki boş veya kullanılmış blokları takip etmek için her bir veri dosyasındaki biteşlemin bakımını yapar. Biteşlemdeki her bit bloğa yada bloklar grubuna karşılık gelir. Uzantı ayrıldığında veya yeniden kullanım için boşaltıldığında Oracle blokların yeni durumunu göstermek için biteşlem değerlerini değiştirir. Bu değişimler geri alma bilgisi üretmez çünkü veri sözlüğündeki tablolar güncellenmez(tablo alanı kota bilgisi gibi özel durumlar hariç) Yerel yönetilmiş tablo alanları sözlüksel yönetilmiş tablo alanlarına göre aşağıdaki avantajlara sahiptir: Uzantıların yerel yönetimi komşu boş alanı otomatik olarak takip eder, boş uzantıları birleştirme gereksinimini yok etmiş olur. Uzantıların yerel yönetimi alan yönetim işlemlerinin tekrarlanmasına meydan vermez. Uzantıdaki alanın tüketilmesi veya serbest bırakılmasında, veri sözlüğü tablosu veya geri alma segmentinde alanın tüketilmesi veya serbest bırakılması gibi başka işlemden kaynaklandığında, bu gibi tekrarlı işlemler sözlüksel yönetilmiş tablo alanlarında meydana gelebilir. 89

90 Yerel yönetilmiş uzantıların büyüklüğüne sistem tarafından otomatik olarak karar verilebilir. Yerel yönetilmiş tablo alanında bütün uzantılar aynı büyüklüğe sahip olabilir ve nesne depolama seçeneklerinde yer alabilir. CREATE TABLESPACE veya CREATE TEMPORARY TABLESPACE deyiminin LOCAL yantümcesi yerel yönetilmiş kalıcı veya geçici tablo alanlarının karşılıklı olarak yaratılmasını belirler. Yerel Yönetilmiş Tablo Alanlarında Segment Alan Yönetimi CREATE TABLESPACE deyimini kullanarak yerel yönetilmiş tablo alanı yarattığınızda SEGMENT SPACE MANAGEMENT yantümcesi segmentte yönetilmiş ne kadar boş veya kullanılmış alan olduğunu belirlemenizi sağlar. Seçenekleriniz: AUTO Bu anahtar kelime Oracle a segmentlerdeki boş alanı yönetmek için biteşlemler kullanmak istediğinizi söyler. Bu durumda biteşlem, satırlar eklemek için kullanılabilir bloktaki bir miktar alana bağlı kalarak segmentteki her bir veri bloğunun durumunu tarif eden haritadır. Daha fazla veya az alan veri bloğunda sürekli duruma gelir. Yeni durumu biteşlemde yansır. Biteşlem Oracle ın boş alanı otomatik olarak daha iyi yönetebilmesini sağlar. Böylece bu alan yönetim biçimine otomatik segment alan yönetimi adı verilir. 90

91 MANUAL Bu anahtar kelime Oracle a segmentlerdeki boş alanı yönetmek için boş listeler kullanmak istediğinizi söyler. Boş listeler satırlar eklemek için sürekli alana sahip olan blok listeleridir. Varsayılan olarak MANUAL kullanılır. Sözlüksel Yönetilmiş Tablo Alanları Veritabanınızı Oracle ın eski versiyonu ile yaratmışsanız sözlüksel yönetilmiş tablo alanlarını kullanabilirsiniz. Uzantılarını yönetmek için veri sözlüğünü kullanan tablo alanı için, Oracle uzantı her ayrıldığında veya geri kullanım için her boşaltıldığında veri sözlüğündeki uygun tabloları günceller. Oracle ayrıca sözlüksel tabloların her güncellenmesi hakkındaki geri alma bilgisini depolar. Çünkü sözlüksel tablolar ve geri alma segmentleri veritabanının bir parçasıdır, onların kullandığı alan bütün diğer verilerde olduğu gibi aynı alan yönetim işlemlerine bağlıdır. Çoklu Blok Büyüklükleri Sistem tablo alanının blok büyüklüğü standart blok büyüklüğüdür. Veritabanı yaratıldığında herhangi bir geçerli büyüklük verilebilir. Standart blok büyüklüğüne ek olarak, dört blok büyüklüğüne kadar belirleyebilirsiniz. Başlangıç dosyasında her bir blok büyüklüğü için ön arabellekdeki (buffer cache) alt önbellekleri (subcaches) yapılandırabilirsiniz. Alt önbellekler bir Oracle anı çalışırken de yapılandırılabilir. Herhangi bir blok büyüklüğüne sahip olan tablo alanları yaratabilirsiniz. Standart blok büyüklüğü sistem tablo alanında ve birçok diğer tablo alanlarında kullanılır. 91

92 Note: Bölümlenmiş nesnelerin bütün bölümleri tek blok büyüklüğündeki tablo alanlarında yer almak zorundadır. Tablo alanını OLTP veritabanından enterprise veri ambarına taşırken çoklu blok uzunlukları birinci derecede yararlı olur. Bu farklı blok büyüklüklerindeki veritabanları arasında taşımacılığı kolaylaştırır. Erişilebilir(Online) ve Erişilemez(Offline) Tablo Alanları Veritabanı her açıldığında veritabanı yöneticisi sistem tablo alanından başka herhangi bir tablo alanını erişebilir yada erişilemez durumda getirebilir. Veritabanı açıldığında sistem tablo alanı her zaman erişilebilir durumdadır çünkü veri sözlüğü Oracle a her zaman sürekli olmak zorundadır. Tablo alanı genellikle erişilebilir durumdadır öyle ki kapsadığı veri veritabanı kullanıcılarına sürekli olur. Bununla beraber veritabanı yöneticisi bakım veya yedekleme ve kurtarma amaçları için tablo alanını erişilemez duruma getirebilir. Tablo Alanı Erişilemez Durumda Olduğu Zaman 92 Tablo alanı erişilemez durumda olduğunda Oracle bu tablo alanındaki nesneleri ilgilendiren hiçbir sonradan gelen SQL deyimine izin vermez. Bu tablo alanındaki veriyi ilgilendiren aktif hareketler ile tamamlanmış deyimler hareket düzeyinden etkilenmezler. Oracle geri alma verisine karşılık gelen sistem tablo alanındaki uyulan geri alma segmentleri ile tamamlanmış deyimleri biriktirir. Tablo alanı tekrar erişilebilir duruma getirildiğinde, eğer gerekirse, Oracle tablo alanına geri alma verisini uygular.

93 Tablo alanı erişilemez duruma geldiğinde veya erişilir duruma getirildiğinde sistem tablo alanında veri sözlüğüne kaydedilir. Veritabanını kapattığınızda tablo alanı erişilemez durumda ise veritabanına sonraki bağlantıda ve yeniden açıldığında tablo alanı erişilemez durumda kalır. Bir tabloalanını yalnızca yaratıldığı veritabanının içerisinde erişilir hale getirebilirsiniz çünkü gerekli veri sözlüğü bilgisi veritabanındaki sistem tablo alanında tutulur. Erişilemez durumdaki tablo alanı Oracle dışındaki herhangi bir hizmet programı tarafından okunamaz yada düzeltilemez. Böylece erişilemez durumda olan tablo alanları diğer veritabanlarına taşınamaz. Ciddi hatalarla karşılaşıldığında Oracle tablo alanını otomatik olarak erişilebilir durumdan erişilemez duruma getirir. Örneğin veritabanı yazıcı işlemi, DBWn, tablo alanındaki veri dosyasına birkaç denemede yazmakta başarısız olursa Oracle tablo alanını erişilebilir durumdan erişilemez duruma getirir. Kullanıcılar erişilemez durumda olan tablo alanındaki tablolara erişmeye çalışırsa hata mesajı alır. Diskin giriş/çıkışının başarısızlığına sebebiyet veren problem ortam(media) hatası ise problemi düzeltmenizden sonra tablo alanını kurtarmak zorundasınız. Özel Prosedürler İçin Tablo Alanlarının Kullanımı Farklı veri türlerini ayırmak için çoklu tablo alanlarını yarattığınızda çeşitli prosedürler için belirli tablo alanlarını erişilemez duruma alırsınız. Diğer tablo alanları erişilebilir durumda olmaya devam eder ve içerdikleri bilgi hala sürekli hazır durumdadır. 93

94 Bununla beraber tablo alanları erişilemez durumda olduğunda özel durumlar meydana gelebilir. Örneğin iki tablo alanı indeks veriden tablo verisini ayırmak için kullanıldığında aşağıdakiler doğru olur: İndeksleri kapsayan tablo alanı erişilemez durumda olduğunda sorgular tablo verisine hala erişebilir çünkü sorgular tablo verisine erişmek için indekse gerek duymazlar. İndeksleri kapsayan tablo alanı erişilmez durumda olduğunda veritabanındaki tablo verisine erişilmez çünkü tablolar veriye erişmek için gerekir. Oracle deyimi çalıştırmak için erişilebilir tablo alanlarında yeterli bilgiye sahipse bunu yapar. Erişilmez tablo alanındaki veriye gerek duyarsa deyimin başarısız olmasına sebep olur. Sadece-Okunabilir Tablo Alanları Sadece-okunabilir tablo alanlarının başlıca amacı veritabanının büyük, statik kısımlarının kurtarma ve yedekleme ihtiyacını yok etmektir. Oracle sadece-okunabilir tablo alanlarının dosyalarını hiçbir zaman güncellemez. Bu yüzden dosyalar sadece-okunabilir ortamlarda CD- ROM veya WORM gibi sürücüler üzerinde durabilir. Note: Bir tablo alanı sadece yaratıldığı veritabanında erişilebilir duruma getirilebildiğinden, sadece-okunabilir tablo alanları arşivleme yada veri yayıncılık gereksinimlerini sağlamak anlamına gelmez. Sadece-okunabilir tablo alanları değiştirilemez. Sadece-okunabilir tablo alanını güncellemek için ilk olarak tablo alanını okuma/yazma 94

95 durumuna getirin. Tablo alanı güncellendikten sonra sadece-okunabilir durumuna geri getirebilirsiniz. Sadece-okunabilir tablo alanlarında değişiklik yapılamadığından ve herhangi bir anda okuma-yazma durumuna getirilmediği sürece, yedeklemeyi tekrarlamaya gerek yoktur. Ayrıca veritabanınızı kurtarmaya ihtiyacınız varsa herhangi bir sadece-okunabilir tablo alanını kurtarmanıza gerek yoktur çünkü değişikliğe uğramamışlardır. Sıralı İşlemler İçin Gerekli Tablo Alanları Geçici tablo alanlarını sadece sıralama işlemleri için tasarlıyarak sıralama işlemleri için gereken alanı daha verimli yönetebilirsiniz. Bu şekilde, sıralı alan ayırma ve serbest bırakma ile ilgili bir dizi alan yönetim işleminin karışıklığı yok edilir. Sıralamaları kullanan, birleşmeleri içeren, indeksi yapılandıran, düzenleyen, toplamı hesaplayan(group BY), ve en uygun istatistiği bir araya getiren tüm işlemler, geçici tablo alanlarından yararlanır. Kazanılan performans Gerçek Uygulama Kümeleri (Real Application Clusters) ile daha büyük olur. Sıralı Segmentler Bir geçici tablo alanı sadece sıralı segmentler için kullanılabilir. Geçici tablo alanı kullanıcının geçici segmentler için tasarladığı, kullanıcının kullanımına hazır herhangi bir tablo alanı ile aynı değildir. Geçici tablo alanında tutulabilen kalıcı şema nesneleri yoktur. 95

96 Sıralı segmentler segment çoklu sıralı işlemlerle paylaşıldığında kullanılır. Bir sıralı segment verilen tablo alanında sıralama işleminin yapıldığı her Oracle anı için vardır. Hafızaya sığabilecek çok büyük çoklu sıralamalara sahip olduğunuzda geçici tablo alanları performansın artmasını sağlar. Verilen geçici tablo alanının sıralı segmenti ilk sıralama işleminin yapıldığı anda yaratılır. Segment büyüklüğü Oracle anında çalışan toplam depolanan bütün aktif sıralamaları gerektiren büyüklüğe eşit veya daha büyük olana kadar sıralama segmenti uzantıları ayırarak büyür. Geçici Tablo Alanlarının Yaratılması CREATE TABLESPACE veya CREATE TEMPORARY TABLESPACE deyimini kullanarak geçici tablo alanlarını yaratabilirsiniz. Veritabanları Arasında Tablo Alanlarının Taşınması Taşınabilir tablo alanı aynı platformda Oracle veritabanının bir alt kümesini bir Oracle veritabanından diğerine taşımanıza izin verir. Tablo alanını kopyalıyabilirsiniz(clone) ve diğer veritabanına ekleyebilirsiniz, veritabanları arasında tablo alanını kopyalıyabilirsiniz veya bir Oracle veritabanından tablo alanı çıkartabilir ve başka Oracle veritabanına ekleyebilirsiniz, aynı platformda tablo alanını veritabanlarında hareket ettirebilirsiniz. Tablo alanlarını taşıyarak veri hareketleri aynı veriyi ya dışarı/içeri aktarım(export/import) veya boşaltmak/yüklemek(unload/load) büyüklüklerine göre daha hızlı sıralanabilir. Çünkü tablo alanının 96

97 taşınması sadece veri dosyalarını kopyalamayı ve tablo alanı metaverisini bütünleştirmeyi içerir. Tablo alanlarını taşıdığınızda indeks veriyide hareket ettirebilirsiniz, böylece tablo verisini içeri aktarımdan veya yükledikten sonra indeksleri tekrar yapılandırmanıza gerek yoktur. Note: Tablo alanlarını aynı karakter kümesini kullanan ve aynı donanım satıcısından uyumlu platformlarda çalışan Oracle veritabanları arasında taşıyabilirsiniz. Tablo Alanının Diğer Veritabanlarına Kopyalanması Veya Hareket Ettirilmesi Tablo alanları kümesini kopyalamak veya hareket ettirebilmek için tablo alanlarını sadece-okunabilir almak zorundasınız, tablo alanlarının veri dosyalarını kopyalıyabilirsiniz ve dışarı/içeri aktarımı kullanarak veri sözlüğünde depolanmış veritabanı bilgisini(metadata) taşıyabilirsiniz. Veri dosyaları ve metaveri dışarı aktarım dosyasının ikisi birlikte hedefteki veritabanına kopyalamak zorundasınız. Bu dosyaların taşınmasında düz (aynı seviyede) dosyaları kopyalamanızı sağlayacak, ftp veya CD üzerinden, işletim sisteminin kopyalama özellikleri kullanılabilir. Veri dosyalarını kopyaladıktan ve metaverinin içeri aktarımını yaptıktan sonra tablo alanlarını okuma/yazma moduna alma seçeneğinizi kullanabilirsiniz. Note: Yerel yönetilmiş sistem tablo alanlı bir veritabanında sözlüksel tablo alanları yaratılamaz. Taşınabilir özelliğini kullanarak sözlüksel yönetilmiş tablo alanına koymak mümkündür fakat yazılabilir durumuna getirilemez. 97

98 Veri Dosyalarını Gözden Geçirme Oracle veritabanındaki bir tablo alanı bir veya birkaç fiziksel veri dosyasından meydana gelmiştir. Veri dosyası sadece bir tablo alanı ve sadece bir veritabanı ile ilişkilendirilebilir. Oracle belirli miktarda disk alanı artı dosya başlığı için gerekli ek yük ile bir tablo alanı için bir veri dosyası yaratır. Veri dosyası yaratıldığında Oracle ın çalıştığı işletim sistemi, bu dosyanın Oracle a ayrılmasından önce, eski bilgilerin silinmesinde ve bir dosyadan izin verilmesinden sorumludur. Dosya büyükse bu işlem önemli miktarda zaman alabilir. Herhangi bir veritabanındaki ilk tablo alanı her zaman sistem tablo alanıdır. Bunun için Oracle veritabanı yaratılırken herhangi bir veritabanının ilk veri dosyalarını sistem tablo alanı için otomatik olarak ayırır. Veri Dosyasının İçeriği Veri dosyası ilk yaratıldığında ayrılan disk alanı biçimlendirilir fakat herhangi bir kullanıcının verisini içermiyorsa. Bununla beraber Oracle ilgili tablo alanının(sadece Oracle tarafından kullanılır) segmentleri için ilerde gelecek veriyi tutmak için alan ayırır. Tablo alanındaki veri büyüdükçe Oracle segmente uzantılar ayırmak için ilgili veri dosyalarındaki boş alanı kullanır. Tablo alanındaki şema nesneleri ile ilgili veri tablo alanını oluşturan bir veya birkaç veri dosyasını fiziksel olarak depolar. Bir şema nesnesi belirli veri dosyasına karşılık gelmez, daha doğrusu bir veri dosyası belirli tablo alanındaki herhangi bir şema nesnesinin verisi için veri havuzu(repository)dur. Oracle bir veya birkaç tablo alanının veri 98

99 dosyalarındaki şema nesnesi ile ilgili verisi için alan ayırır. Bundan dolayı şema nesnesi bir veya birkaç veri dosyasına yayılabilir. Tablo yayma (striping: verinin birden çok diske karşılıklı olarak yayıldığı yer), kullanılmadıkça veritabanı yöneticisi ve son kullanıcılar şema nesnesinin tutulduğu veri dosyasını kontrol edemez. Veri Dosyasının Büyüklüğü Yaratıldıktan sonra veri dosyasının büyüklüğünü değiştirebilirsiniz veya tablo alanındaki şema nesneleri büyüdükçe veri dosyasının dinamik olarak büyümesini belirleyebilirsiniz. Bu işlevsellik her bir tablo alanı için birkaç veri dosyasına sahip olabilmemize ve veri dosyalarının yönetimini kolayca yapabilmemizi sağlar. Note: İşletim sisteminde büyüme için yeterli alana ihtiyacınız var. Erişilemez(Offline) Veri Dosyaları Sistem tablo alanı dışında herhangi bir zamanda tablo alanlarını erişilmez duruma getirebilirsiniz veya erişilebilir duruma getirebilirsiniz. Tablo alanını erişilmez veya erişilebilir duruma getirdiğinizde tablo alanının bütün veri dosyaları karşılıklı olarak erişilmez veya erişilebilir duruma gelir. Veri dosyalarını bireysel olarak erişilmez durumda yapabilsenizde bu genellikle sadece bazı veritabanı kurtarma yöntemleri sırasında yapılır. Geçici Veri Dosyaları Yerel yönetilmiş geçici tablo alanları veri dosyalarına benzeyen geçici veri dosyalarına(tempfiles) aşağıdaki istisnalar ile sahiptir: 99

100 Geçici dosyalara her zaman NOLOGGING modu verilmiştir. Geçici dosyayı sadece-okunabilir durumuna getiremezsiniz. Geçici dosyanın ismini değiştiremezsiniz. ALTER DATABASE deyimi ile geçici dosya yaratamazsınız. Geçici dosyaları yarattığınızda veya büyüklüğünü değiştirdiğinizde dosyanın belirlenen büyüklüğü için disk alanının ayrılması her zaman garanti değildir. Düzgün dosya sistemlerinde(örneğin UNIX) disk blokları dosyanın yaratılması veya büyüklüğünün değişmesinde ayrılmazlar fakat bloklara erişildikten sonra ayrılırlar. Dikkat: Bu geçici dosyanın yaratılmasını ve büyüklüğünün değiştirilmesinin daha hızlı olmasını sağlar, bununla beraber geçici dosyalara erişildiğinde disk alanı dışı kalınabilir. Geçici dosya bilgisinin sözlüksel görünüşü DBA_TEMP_FILES ve dinamik performans görünüşü V$TEMPFILE ile gösterilir fakat DBA_DATA_FILES veya V$DATAFILE görünüşü ile değil. Kontrol Dosyalarını Gözden Geçirme Veritabanı kontrol dosyası veritabanını başlatmak ve başarılı şekilde yönetmek için gerekli küçük ikili(binary) dosyadır. Veritabanı kullanılırken kontrol dosyası Oracle tarafından devamlı olarak güncellenir. Böylece veritabanı her açıldığında yazmak için kullanılabilir olmak zorundadır. Bazı sebeplerden dolayı kontrol dosyasına erişim olmazsa veritabanı düzgün olarak çalışmaz. Her bir kontrol dosyası sadece bir Oracle veritabanı ile ilişkilendirilir. 100

101 Kontrol Dosyasının İçeriği Kontrol dosyası Oracle anına erişim için gerekli veritabanı hakkında bilgi içerir, her ikiside başlatmada ve normal operasyon sırasındayken. Kontrol dosyası bilgisi sadece Oracle tarafından değişiklik yapılabilir, veritabanı yöneticisi veya kullanıcı kontrol dosyasında değişiklik yapamaz. Diğerleri arasında kontrol dosyası aşağıdaki gibi bilgileri içerir: Veritabanı ismi Veritabanı yaratılışının timestamp i İlgili veri dosyalarının isimleri ve yerleri ve erişilebilir durumda yinelenebilir günlük dosyaları(online redo log files) Tablo alanı bilgisi Veri dosyası erişilebilir olma sınırları Günlüğün geçmişi Arşivlenen günlüğün bilgisi Yedekleme kümesi ve yedekleme bölüm bilgisi Yedekleme veri dosyası ve yineleme günlük bilgisi Veri dosyası kopyalama bilgisi Hali hazırdaki günlük sıra numarası Kontrol nokta(checkpoint) bilgisi Veritabanı ismi ve timestamp veritabanı yaratılırken verilir. Veritabanı ismi ya başlangıç parametresi DB_NAME tarafından belirlenen isimden yada CREATE DATABASE deyiminde kullanılan isimden alınır. Veritabanına her veri dosyası veya erişilebilir yineleme günlük dosyası eklenmesinde, isminin değiştirilmesinde veya veritabanından 101

102 çıkarılmasında, kontrol dosyası bu fiziksel yapı değişikliğine yansıması için güncellenir. Bu değişiklikler kaydedilir şöyle ki: Oracle veritabanını başlatma sırasında açmak için veri dosyalarını ve erişilebilir durumda yineleme günlük dosyalarını tanımlayabilir. Oracle veritabanı kurtarma gerekli olduğu durumda sürekli veya gerekli olan dosyaları tanımlayabilir. Bu yüzden veritabanınızın fiziksel yapısında değişiklik(alter DATABASE deyimlerini kullanarak) yaptığınızda kontrol dosyanızın derhal bir yedeğini almalısınız. Kontrol dosyaları kontrol noktaları hakkında bilgiyide kaydederler. Her üç saniyede bir kontrol nokta işlemi(ckpt) erişilebilir durumda yineleme günlüğündeki kontrol noktası durumları hakkında kontrol dosyasına bilgiyi kaydeder. Veritabanı kurtarılması sırasında kullanılan bu bilgi Oracle a veri dosyalarına önceden yazılmış, veritabanı kurtarılması için gerekli olmayan -erişilebilir durumdaki yineleme günlük guruplarındaki- bu noktadan önceki bütün yineleme girişlerinin kaydedileceğini söyler. Çoklu(Multiplexed) Kontrol Dosyaları Erişilebilir durumda yineleme günlük dosyalarında olduğu gibi, Oracle çoklu, benzer kontrol dosyalarını eşzamanlı açmayı ve aynı veritabanına yazmayı sağlar. Farklı diskler üzerinde tek veritabanı için çoklu kontrol dosyaları depolanarak kontrol dosyalarına göre başarısız olabilecek tek bir noktaya karşın koruyabilirsiniz. Kontrol dosyası içeren tek bir disk bozulursa Oracle tahrip olmuş kontrol dosyasına erişmeye çalıştığında 102

103 hali hazırdaki Oracle anı başarısız olur. Bununla beraber farklı disklerdeki hali hazırdaki kontrol dosyasının kopyası sürekli olduğunda Oracle anı veritabanı kurtarılması işine gerek kalmadan kolayca tekrar başlatılabilir. Veritabanının bütün kontrol dosyaları operasyon sırasında kalıcı olarak kaybolmuşsa Oracle anı sonlandırılmakta (abort) ve ortam kurtarma gereklidir. Kontrol dosyasının eski yedeği kullanılmak zorundaysa ortam kurtarma kolay olmaz çünkü hali hazırdaki kontrol dosyasının kullanılabilecek bir kopyası yoktur. Bu yüzden aşağıdaki pratiklere kesinlikle uymanız tavsiye edilir: Her bir veritabanına karşılık gelen çoklu kontrol dosyaların kullanılması Farklı fiziksel diskler üzerinde her biri için ayrı ayrı yedeklenmesi İşletim sisteminin aynalamasının kullanılması Yedeklemenin gözlenmesi 103

104 4 Veritabanı ve Oracle Anını Açma ve Kapama Bu bölüm Oracle anının ve veritabanının açılma ve kapatılmasını içeren yöntemleri açıklar. İçerdikleri: Oracle Anına Giriş Oracle Anı ve Veritabanının Başlatılması Veritabanı ve Oracle Anının Kapatılması 104

105 Oracle Instance ına Giriş Her çalışan Oracle veritabanı bir Oracle Anı ile ilişkilendirilir. Veritabanı veritabanı sunucusu (bilgisayarın türünü önemsemeden) üzerinde açıldığı Oracle System Global Area (SGA) adı verilen hafızadan alan ayırır ve bir veya birkaç Oracle işlemi başlatır. SGA ve Oracle işlemlerinin bir araya gelmesi Oracle anı(oracle instance) olarak adlandırılır. Oracle anının işlemleri ve hafızası ilişkilendirildiği veritabanı dosyalarını verimli bir şekilde yönetir ve veritabanının bir veya çoklu kullanıcılarına hizmet eder. Şekil 5-1 Oracle anını gösterir. 105

106 Oracle Anı ve Veritabanı Oracle anının başlamasından sonra Oracle belirlenen veritabanı ile Oracle anını ilişkilendirir. Buna veritabanını bağlama (mounting) adı verilir. Bundan sonra veritabanı izinli kullanıcıların erişebilmesine hazır hale gelir. Çoklu Oracle anları aynı bilgisayarda eşzamanlı çalışabilir, her bir erişim kendine ait fiziksel veritabanına olur. Kümelenmiş ve büyük paralel sistemlerde (MPS) Gerçek Uygulama Kümeleri (RAC) çoklu Oracle anlarının tek veritabanına bağlanmasını sağlar. Sadece veritabanı yöneticisi Oracle anını başlatabilir ve veritabanını açabilir. Veritabanı açılırsa veritabanı yöneticisi veritabanını kapatabilir yani veritabanı kapanır. Veritabanı kapatıldığında kullanıcılar veritabanının içerdiği bilgilere erişemezler. Veritabanının açma ve kapatılmasının güvenliği Oracle a bağlanan yöneticinin haklarına göre kontrol edilir. Normal kullanıcılar hali hazırdaki Oracle veritabanının durumu üzerinde kontrol etme hakkı yoktur. Yöneticinin Hakları ile Bağlanma Veritabanını açma ve kapama güçlü yönetici seçeneğidir ve Oracle a yönetici hakları ile bağlanan kullanıcılar kısıtlandırılır. İşletim sistemine bağlı olarak aşağıdaki durumlardan biri kullanıcı için yönetici haklarını belirler: İşletim sisteminin kullanıcı hakları yönetici haklarını kullanarak bağlanmanıza izin verir. Kullanıcıya SYSDBA veya SYSOPER hakları verilir ve veritabanı veritabanı yöneticilerini belirlemek için şifre dosyalarını kullanır. SYSDBA hakları ile bağlandığınızda SYS ye ait olan şemada olursunuz. SYSOPER olarak bağlandığınızda genel şemada olursunuz. SYSOPER hakları SYSDBA haklarının bir alt kümesidir. 106

107 Başlangıç Parametre Dosyaları Oracle anının başlamsı için Oracle ın başlatma parametre dosyasını okumak zorundadır. Bu dosya bu Oracle anı ve veritabanı için yapılandırma parametrelerinin listesini içerir. Oracle anının ayarlanması, birçok hafıza ve işlemlerinin başlatılması için bu parametrelere belirli değerler veriniz. Birçok başlatma parametreleri aşağıdaki guruplardan birine aittir: Parametreler kullanarak isimlendirme, örneğin, dosyalar Parametreler kullanarak sınırların belirlenmesi, örneğin, maksimumlar Parametreler kullanarak kapasitenin etkilenmesi, örneğin, SGA nın büyüklüğü(bunu belirleyen parametrelere değişken parametreler adı verilir) Diğerlerinin arasında, başlatma parametrelerinin Oracle a söyledikleri: Oracle anını başlatmak için gerekli veritabanının ismi SGA daki yapıların hafızada ne kadar yer aldığı Dolmuş erişilebilir durumda yineleme günlüğü dosyalarla ne yapılacağı Veritabanı kontrol dosyalarının isimleri ve yerleri Veritabanındaki geri alma tablo alanlarının veya özel geri alma segmentlerinin isimlerini Parametre Değerlerinin Değiştirilmesi Veritabanı yöneticisi veritabanı sisteminin performansını artırmak için parametrelerin değerlerini ayarlıyabilir. Hangi parametrelerin sistemi tam olarak daha çok etkilemesi birçok veritabanı karakteristiğine ve değişkenlere bağlıdır. Oracle anı çalışırken ALTER SESSION veya ALTER SYSTEM deyimini kullanarak bazı parametreler dinamik olarak değiştirilebilir. Sunucu parametre dosyasını kullanmazsanız ALTER deyimi ile yapılan değişiklikler sadece hali hazırdaki Oracle anını etkiler. Oracle anının bir sonraki açılışında değişiklikleri uygulayabilmesi için metin başlatma parametre dosyasını el ile güncellemek zorundasınız. Sunucu parametre dosyası kullandığınızda disk üzerindeki parametreleri güncelleyebilirsiniz böylece değişiklikler veritabanının açılıp kapanmasına karşılık uygulanmaya devam eder. 107

108 Oracle Anı ve Veritabanının Başlatılması Oracle veritabanı başlatmak için üç adım ve sistem genelinde kullanımda sürekli olabilmesi için: 1. Oracle anını başlat 2. Veritabanını bağla 3. Veritabanını aç Veritabanı yöneticisi SQL*Plus STARTUP deyimini veya Enterprise Manager ı kullanarak bu üç adımı yapabilir. Oracle Anının Açılması Oracle Oracle anını başlattığında başlatma parametrelerinin değerlerine karar vermek için başlatma parametre dosyasını okur. Sonra veritabanı bilgisi için kullanılan ortak hafıza alanını SGA ya ayırır ve arka plandaki işlemleri yaratır. Bu anda, bu hafıza yapıları ve işlemlerle ilişkilendirilen veritabanı yoktur. Oracle Anının Kısıtlandırılmış Modda Başlatılması Oracle anını kısıtlandırılmış moda çalıştırabilirsiniz(veya varolan Oracle anını ilerde kısıtlanmış moda alabilirsiniz). Bu sadece RESTRICTED SESSION sistem hakkı verilmiş kullanıcıların bağlanmasında kısıtlanmış olur. Anormal Durumlarda Güçlü Başlatma Nadir durumlarda bir önceki Oracle anı düzgün bir şekilde kapatılmamış olabilir. Örneğin, Oracle anının işlemlerinden biri uygun biçimde sonlandırılmamış olabilir. Bu koşullarda veritabanı normal Oracle anı başlatılması sırasında bir hata gelebilir. Bu problemi çözmek için, yeni Oracle anı başlatmadan önce bir önceki Oracle anından kalan bütün Oracle işlemlerini sonlandırmak zorundasınız. Veritabanına Bağlanılması 108 Oracle anı veritabanı ile Oracle anını ilişkilendirmek için veritabanına bağlanır. Veritabanına bağlanmak için Oracle anı veritabanı kontrol

109 dosyalarını bulur ve onları açar. Kontrol dosyaları Oracle anının başlatılması için kullanılan parametre dosyasındaki CONTROL_FILES başlatma parametresinde belirlenir. Sonra Oracle veritabanının veri dosyalarının ve yineleme günlük dosyalarının isimlerini almak için kontrol dosyalarını okur. Bu anda veritabanı hala kapalıdır ve sadece veritabanı yöneticisi erişebilir durumdadır. Belirli bakım operasyonları tamamlanırken veritabanı yöneticisi veritabanını kapalı durumda tutabilir. Bununla beraber veritabanı normal operasyonlar için henüz sürekli değildir. RAC ile Veritabanına Bağlanılması Note: Bu bölümde tarif edilen özellikler sadece Oracle9i Enterprise Edition RAC ile satın aldığınızda sürekli olacaktır. Oracle aynı veritabanına eşzamanlı bağlanmak için çoklu Oracle anlarına izin verirse veritabanı yöneticisi çoklu Oracle anlarına veritabanını sürekli kılabilmek için CLUSTER_DATABASE başlangıç parametresini kullanabilir. CLUSTER_DATABASE parametresinin varsayılan değeri false olur. Oracle verisyonları CLUSTER_DATABASE parametresinin değeri false olduğunda RAC desteklenmez. Veritabanına bağlanan ilk Oracle anı için CLUSTER_DATABASE parametresinin değeri false ise sadece bu Oracle anı veritabanına bağlanabilir. İlk Oracle anı CLUSTER_DATABASE parametresinin değerini true olarak belirlemişse CLUSTER_DATABASE parametresinin değeri true olarak belirleyen diğer Oracle anları veritabanına bağlanabilir. Veritabanına bağlanabilen Oracle anlarının sayısı, veritabanı yaratılırken belirleyebildiğiniz ilk belirlenmiş maksimuma bağlıdır. Hazır Durumda Bekleyen(Standby) Veritabanına Bağlanılması Hazır durumda bekleyen veritabanı birincil durumdaki veritabanınızın kopyasının bakımını sağlar ve kötü bir duruma karşılık sürekliliğinin devamını sağlar. 109

110 Hazır durumda bekleyen veritabanı sabit olarak kurtarma modundadır. Hazır durumda bekleyen veritabanınızın bakımını yapmak için ALTER DATABASE deyimini kullanarak hazır durumda bekleyen moddayken bağlanmak ve birincil durumdaki veritabanınızın oluşturduğu arşivlenmiş yineleme günlüklerini uygulamak zorundasınız. Hazır durumda bekleyen veritabanınızı geçici raporlama veritabanı olarak kullanmak için sadece okunabilir modda açabilirsiniz. Hazır durumda bekleyen veritabanınızı okuma/yazma modunda açamazsınız. Kopyalanmış (Clone) Veritabanına Bağlanılması Kopyalanmış veritabanı tablo alanını herhangi bir anda kurtarmak için kullanılabilen veritabanınızın özel bir kopyasıdır. Tablo alanını herhangi bir anda kurtarma yaptığınızda kopyalanmış veritabanınıza bağlanın ve istenilen zamandaki tablo alanlarını geri alın sonra kopyalanmış veritabanınızın öteverisini dışa aktarımla birincil veritabanınıza taşıyın ve geri alınmış tablo alanlarından veri dosyalarını kopyalayın. Veritabanınızı Açtığınızda Meydana Gelenler Bağlanmış veritabanı açılırken normal veritabanı operasyonları için sürekli olur. Geçerli herhangi bir kullanıcı açık veritabanına bağlanabilir ve bilgilerine erişebilir. Genellikle veritabanı yöneticisi genel kullanım için veritabanını açarak sürekli duruma getirir. Veritabanını açtığınızda Oracle erişilir durumda veri dosyalarını ve erişilir durumda yineleme günlük dosyalarını açar. Veritabanı bir önceki kapandığında tablo alanı erişilmez durumda ise veritabanını tekrar açtığınızda tablo alanı ve ona karşılık gelen veri dosyaları hala erişilmez durumda olacaktır. Veritabanını açmaya çalıştığınızda herhangi bir veri dosyası veya yineleme günlük dosyaları mevcut değilse Oracle bir hata döndürür. Veritabanını açmanızdan önce herhangi bir zarar görmüş veya kaybolmuş dosyalarınızın yedeğinden kurtarma yapmak zorundasınız. Oracle Anını Kurtarma Veritabanı en son anormal bir şekilde kapatıldıysa, ya veritabanı yöneticisi kendi Oracle anını sonlandırdığından dolayı yada enerji 110

111 başarısızlığından(elektirik kesilmesinden) dolayı; veritabanı tekrar açıldığında Oracle kurtarmayı otomatik olarak yapar. Geri Alma Alanının Kazanılması ve Yönetilmesi Veritabanını açtığınızda Oracle anı bir veya birkaç geri alma tablo alanı veya geri alma segmentini kazanmaya çalışır. UNDO_MANAGEMENT başlatma parametresini kullanarak Oracle anını başlatmada geri alma yönetim modunu ya otomatik olarak yada el ile yönetmeye karar verirsiniz. Desteklenen değerler AUTO veya MANUAL dir. AUTO değeri kullanılırsa Oracle anı otomatik geri alma yönetimi modunda başlatılır. Varsayılan değer MANUAL dir. Geri alma tablo alanı yönetimini kullanırsanız otomatik geri alma yönetim modunu kullanırsınız. Bu tavsiye edilendir. Geri alma alan yönetiminin geri alma segment yönetimini kullanırsanız el ile geri alma yönetim modunu kullanırsınız. Resolution of In-Doubt Distributed Transaction Veritabanı bir veya birkaç şüpheli (ne kaydedilmiş nede geri alınmış) dağıtılmış hareketleri ile bazen anormal olarak kapanır. Veritabanı tekrar açıldığında ve kurtarma tamamlandığında RECO arka plan işlemleri herhangi şüpheli dağıtılmış hareketleri otomatik olarak, derhal ve tutarlı bir şekilde çözer. Veritabanının Sadece-Okunabilir Modunda Açılması Kullanıcı hareketleri tarafından veriyi değişikliklerden korumak için herhangi veritabanını sadece-okunabilir moda açabilirsiniz. Sadeceokunabilir mod veri dosyalarına ve yinele günlük dosyalarına yazamayan sadece-okunabilir hareketlerin veritabanına erişimini sınırlar. Disk diğer dosyalara (örneğin, kontrol dosyaları, operating system audit trails, trace files, ve uyarı dosyaları) yazar, sadece okunabilir moda devam edebilir. Sıralama operasyonları için geçici tablo alanları veritabanının sadece okunabilir moda açılmasında etkilenmezler. Bununla beraber veritabanı sadece okunabilir moda açıldığında kalıcı 111

112 tablo alanlarını erişilemez duruma getiremezsiniz. Ayrıca iş kuyrukları sadece okunabilir modda sürekli değildir. Sadece okunabilir mod veritabanı kurtarmayı veya yineleme verisi oluşturmadan veritabanının durumunu değiştiren operasyonları sınırlamaz. Örneğin, sadece okunabilir moda: Veri dosyaları erişilir ve erişilmez duruma getirilebilir Erişilmez durumda veri dosyaları ve tablo alanları geri alınabilir Kontrol dosyası veritabanının durumunu güncellemek için sürekliliğe devam eder Hazır durumda bekleyen veritabanları geçici raporlama veritabanları olarak görev yapabilen sadece-okunabilir modda tek kullanılabilir uygulamadır. Veritabanı ve Oracle Anının Kapatılması Veritabanını ve ilişkilendirildiği Oracle anını kapamak için yapılan üç adım: 1. Veritabanının kapanması 2. Veritabanının unmount edilmesi 3. Oracle anının kapatılması Veritabanı yöneticisi bu üç adımı Enterprise Manager kullanarak yapabilir. Oracle anı her kapatıldığında Oracle bu üç adımı da otomatik olarak yapar. Veritabanının Kapatılması Veritabanını kapadığınızda Oracle bütün veritabanı verisini ve SGA daki kurtarma verisini veri dosyalarına ve yineleme günlük dosyalarına karşılıklı olarak yazar. Sonra, Oracle bütün erişilebilir durumda veri dosyalarını ve erişilebilir durumda yineleme günlük dosyalarını kapatır.(herhangi erişilmez durumda tablo alanlarının herhangi erişilmez durumda veri dosyaları önceden kapatılmıştı. Veritabanını sonradan tekrar açarsanız erişilmez durumda herhangi tablo alanı ve onun veri dosyaları karşılıklı olarak erişilmez durumda ve kapalı kalmaya devam eder.) Bu anda veritabanı kapalı ve normal işlemler içim erişilmezdir. Veritabanı kapatıldıktan sonra kontrol dosyası açık kalmaya devam eder fakat hala bağlıdır. 112

113 Oracle Anını Sonlandırarak Veritabanının Kapanması Az rastlanan acil durumlarda veritabanını hemen tamamiyle kapatmak için açık veritabanının Oracle anını sonlandırabilirsiniz. Bu işlem hızlı olur çünkü SGA nın tamponundaki bütün veriyi veri dosyalarına ve yineleme günlük dosyalarına yazma işlemi atlanır. Veritabanının sonradan tekrar açılması Oracle ın otomatik olarak gerçekleştirdiği kurtarmayı gerektirir. Note: Veritabanı açıldığında sistem yada enerji hatası oluşursa, veritabanı tekrar açıldığında Oracle anı, tepki olarak, sonlandırılır ve kurtarma yapılır. Veritabanını Unmount Etme Veritabanı kapatıldıktan sonra Oracle Oracle anından veritabanının ilişkisini kesmek (disassociate) için bağı keser (unmount). Bu anda Oracle anı bilgisayarınızın hafızasında kalmaya devam eder. Veritabanının bağı kesildikten sonra Oracle veritabanının kontrol dosyalarını kapatır. Oracle Anının Kapatılması Veritabanının kapatılmasındaki son adım Oracle anının kapatılmasıdır. Oracle anını kapattığınızda SGA hafızadan silinir ve arka plan işlemleri sonlanır. Oracle Anının Anormal Olarak Kapatılması Nadir durumlarda Oracle anının kapatılması temiz bir şekilde olmayabilir; bütün hafıza yapıları hafızadan silinmeyebilir veya arka plandaki işlemlerden biri sonlandırılmış olmayabilir. Bir önceki Oracle anından kalıntılar olduğunda sonraki Oracle anını başlatma büyük ihtimalle başarısız olacaktır. Bu durumlarda veritabanı yöneticisi bir önceki Oracle anının artıklarını temizleyerek ve sonra yeni Oracle anı başlatarak veya Enterprise Manager daki SHUTDOWN ABORT deyimini uygulayarak yeni Oracle anını başlatmak için zorlayabilir. 113

114 KÜME VERİTABANI İŞLEMİ TEMEL İLKELERİ: Bu bölümde Real Application Clusters anlatılacaktır.bu bölümdeki Üniteler: Real Application Clusters a Giriş Real Application Clusters Sistemlerin Mimarisi Real Application Clusters Yazılım Mimarisi Real Application Clusters ta Ölçeklenirlik 114

115 Real Application Clusters a Giriş Bu bölümde küme (cluster) veritabanı işlemi ve Real Application Clusters ın özellikleri sunulmaktadır. Bu ünite aşağıdaki konuları içermektedir: Real Application Clusters Nedir? Real Application Clusters ın Yararları Real Application Clusters Nedir? Real Application Clusters birbirine bağlı bilgisayarların işlem gücünü kullanır. Real Application Clusters yazılımı ve küme olarak bilinen donanım grubu, güvenilir bilgii şlem ortamı yaratabilmesi için herbir bileşenin işlem gücünü birleştirir. Real Application Cluster tüm sistem türleri için önemli avantajlar sunmaktadır. Real Application Cluster ın fonksiyonelliği ile donatılmış tüm sistemler ve uygulamalar küme ortamından verimli bir şekilde faydalanabilir. Real Application Cluster ı; yüksek performans elde etmek, sistemin işlem kapasitesini arttırmak ve yüksek devamlılığa ulaşmak için kullanabilirsiniz. Real Application Cluster ı konuşlandırmadan önce Real Application Cluster işlemini anlamanız gerekmektedir. Real Application Cluster ortamında, bütün aktif Oracle instance ları paylaşılabilir bir veritabanı üzerindeki işlemleri aynı anda yürütebilir. 115 Kümelerin gücünü kullanmak belli avantajlar sunar. Çoklu düğümler(nodes) arasına dağıtılmış ve alt görevlere ayrılmış büyük bir

116 işlem, tüm işlemin bir düğüm üzerinde işleme konmasına göre daha erken ve daha verimli bir şekilde tamamlanır. Küme işlemi, hızla gelişen kullanıcı sayısına imkan ve büyük iş yükleri için yüksek performans sağlar. Real Application Clusters ile, uygulama kodunu değiştirmeden, uygulamalarınızın artan veri işleme ihtiyaçlarını karşılayıp karşılamadığını ölçebilirsiniz. Düğümler veya disk gibi yeni kaynaklar eklediğinizde, Real Application Cluster bu bileşenleri bireysel limitlerinin üzerinde bir berimle kullanmanızı sağlar. Sadece okunur veriye erişebilen veri ambarı uygulamaları Real Application Clusters için başlıca adaylardır. Buna ek olarak, Real Application Clusters, Online Transaction Processing (OLTP) sistemleri ve hem okunan/yazılan uygulamaların özelliklerini birleştiren hybrid sistemleri yönetebilir. Ayrıca Real Application Clusters güvenilir kolay erişilebilen çözümlerin önemli bir bileşeni olarak, çok az hataya müsahama ederek ya da hiç aksamadan görev yapar. Real Application Cluster ın Faydaları? Bu kısım Real Application Cluster ın bazı faydalarını açıklamaktadır. Düşük Toplam Sahip Olma Maliyeti Yüksek Ölçeklenirlik Yüksek Devamlılık Saydamlık Ön Arabellek Yönetimi (Buffer Cache Management) Kayıt bazında kilitleme (Row Locking) Recovery Manager, Online Yedekleme, ve Arşivleme 116

117 Düşük Toplam Sahip Olma Maliyeti Real Application Cluster diğer küme veritabanı ürünlerine göre toplam sahip olma maliyetini daha etkin biçimde azaltır. Bu daha çok Real Application Clusters mimarisinin tüm sistemi tekbir yapı olarak birleştirebilmesinin sonucudur. Real Application Clusters ile erişebileceğiniz sistem konsolidasyon düzeyi, diğer küme veritabanı ürünlerine göre daha az yazılım ve hesaplama araçları kullanmanızı sağlayacaktır. Üstelik, yüksek süreklilik ve ölçeklenirlik gerektiren tüm yapılandırmalar için Real Application Clusters ı konuşlandırabilirsiniz. Bununla birlikte; Real Application Clusters ile etkileşen çok yönlü, kolay yönetilebilir araçlar sayesinde, projenizle ilgili yönetimsel ek yükler projenizin yaşamı boyunca sürekli önemli ölçüde azalarak toplam maliyetinizi düşük tutar. Yüksek Ölçeklenirlik Ölçeklenebilir bir ortam, performansınızı geliştirmeyi ve düğüm ekleyerek kapasiteyi artırmanızı sağlar. Bazı platformlarda kümeleme çalışırken dinamik olarak düğüm ekleyebilirsiniz. Real Application Clusters ın destekleyebileceği düğüm sayısı gerçekleştirilmiş olarak bilinen düğüm sayısından oldukça fazladır. Yüksek süreklilik için yapılandırılmış küçük sistemler sadece iki düğüme sahip olabilirler. Oysa, büyük sistemler düğüme sahip olabilirler. Note: Kümenize dinamik olarak düğüm ekleyebilmeniz cluster yazılımınızın (clusterware) yeteneklerine bağlıdır. Eğer Oracle 117

118 clusterware kullanıyorsanız, düğümleri ve Oracle anlarını bir çok platforma dinamik olarak ekleyebilirsiniz. Yüksek Devamlılık Yüksek devamlılık herhangi bir aksama durmunda bile tutarlı, kesintisiz servis sağlayan bol bileşenli sistemleri ifade eder. Bir çok yüksek devamlılık konfigürasyonunda; bir düğüm üzerindeki bir hatanın bütün sistemi etkilememesi için düğümler birbirlerinden izole edilmişlerdir. Saydamlık Saydamlık kavramı, tek Oracle instance ına sahip Oracle veritabanı konfigürasyonlarına fonksiyonellik bakımından eşit olan Real Application Clusters ortamlarını ima eder. Diğer bir deyişle; eğer uygulamalarınız tek Oracle instance ına sahip Oracle veritabanı konfigürasyonlarında verimli şekilde çalışırsa Real Application Cluster üzerinde konfigürasyonları konuşlandırmak için kod değişikliği yapmanıza gerek yoktur. Bir kümedeki çoklu ön arabelleklerin birleşimi anlamına gelen Cache Fusion özelliği, Real Aplication Clusters ortamlarının yönetimini kolaylaştırır. Real Aplication Clusters ve Cache Fusion ile kapasite planını da yapmanıza gerek yoktur. Saydamlık ayrıca hem sistem düzeylerinde hem de uygulamalardaki verimli kaynak kullanımlarında kullanılmaktadır. Örneğin; zamantüketim kaynak konfigürasyonlarını (time- consuming resource configurations) veri erişim düzenini inceleyerek yapmanıza gerek yoktur; çünkü Real Aplication Clusters bunu otomotik olarak yapar. 118

119 Ön Arabellek Yönetimi Oracle; kaynakları (örneğin veri bloğu bilgisi) bellekte yer alan bir ön arabellekte depolar. Bu bilgiyi yerel olarak depolama, veritabanı işlemlerini ve disk I/O (disk okuma-yazma) sunu azaltır. Çünkü her bir Oracle instance ının kendi belleği vardır. Real Aplication Clusters disk I/O işlemlerini minimize ederken çoklu düğümlerin ön arabelleklerini koordine eder. Bu, performansı yüksek seviyeye çıkartır ve gerçek belleği küme veri tabanınızdaki bütün belleğin toplamına nerdeyse eşit olacak şekilde genişletir. Bunu yapmak için Real Aplication Clusters, Oracle ın yüksek performans özelliklerini en yüksek seviyeye çıkartmak ve çoklu ön arabellekler arasındaki işlemleri koordine etmek için Global Cache Service ( GCS) i kullanır. Ayrıca Global Enqeue Service (GES) eşzamanlamayı da düğümler arası iletişimleri yöneterek destekler. GCS ve GES ten 2.bölümde daha detaylı şekilde bahsedilecektir. Row Locking (Kayıt Bazında Kilitleme) Oracle row locking ve multi-version read consistency, yüksek derecede eşzamanlı kullanımı ve iş çıkarma yeteneğini sağlar. Row locking aynı veri bloğunda farklı satırları değiştiren hareketlerin kaydetmek için birbirini beklememesini sağlar. Multiversion Read Consistency 119 Multiversion read consistency, okuma işlemlerin yazma işlemlerini, yazma işlemlerinin de okuma işlemlerini bloke etmemesini sağlar. Multiversion read consistency, henüz commit edilmemiş transaction lardaki verilerin bulunduğu blokların snapshotlar ını ve

120 okuma tutarlı versiyonlarını oluşturur. Bu yaklaşımın iki önemli yararı vardır: Okuma işlemleri, kaynakları beklemek zorunda kalmaz çünkü bir kullanıcının değiştirmekte olduğu verilerin diğer kullanıcılar tarafından okunmasını engellenmez. Verinin herhangi bir zaman için snaphot görüntüsü mevcuttur Recovery Manager, Online Yedeklemeler, ve Arşivleme Real Application Clusters, Recovery Manager (RMAN) ın ve Oracle Enterprise Manager ın tüm fonksiyonelliğini destekler. Ayrıca, Real Application Clusters tek Oracle instance ına sahip Oracle veritabanlarında bulunan bütün Oracle yedekleme ve arşivleme özelliklerini destekler. Bu; bütün veritabanın veya tek bir tablo alanın hem on-line hemde off-line yedeklerini içermektedir. Eğer Oracle ı ARCHIVELOG modunda çalıştırıyorsanız, log dosyası dolduğu zaman Oracle bu log dosyasının üzerine herhangi bir bilgi yazılmadan bir arşiv dosyasına dönüştürür. Real Application Cluster larda, her Oracle instance ı kendi redo log dosyalarını otomatik olarak arşivler, veya bir yada daha fazla Oracle instance ları redo log dosyalarını bazı Oracle instance ları veya tüm Oracle instance ları için arşivleyebilir. Eğer veritabanınızı NOARCHIVELOG modunda çalıştırıyorsanız, sadece off-line yedeklemeler yapabilirsiniz. Eğer veri kaybetmek istemiyorsanız, Oracle ARCHIVELOG modunu kullanmanızı önemle tavsiye ediyor. Bu bölümdeki diğer üniteler Real Application Cluster ların Mimarisini ve onun ölçeklenirlik özelliklerini açıklamaktadır. 120

121 REAL APPLICATION CLUSTERS SİSTEMLERİN MİMARİSİ Bu bölüm pekçok cluster (küme) veritabanı ortamlarında benzer olan sistem bileşenlerini ve mimari modelleri tanımlar. Düğümler için gerekli donanım ile birlikte düğümleri küme veritabanı haline getiren yazılımı da tanımlar. Bu bölümdeki başlıca konular : Küme Veritabanı Sistem Bileşenlerini gözden geçirme Bellek, Interconnect (Interconnect) ve Depolama Yüksek Hızlı IPC Interconnect Paylaşılan Disk Deposu ve Cluster File System(Küme Dosya Sistemi) Avantajı CLUSTER (Küme) Veritabanı Sistem BileşenlerinE Genel bir bakış Bir küme veritabanı bir Interconnect (Interconnect) ile bağlanan iki ya da daha fazla düğümden oluşur. Interconnect, küme veritabanı içindeki herbir düğüm arasında iletişim yolu olarak görev yapar. Her Oracle instance ı, her bir Oracle instance ının paylaşılan kaynakları kullanımını senkronize eden mesajlaşma için Interconnect kullanır. Ayrıca; Oracle, Interconnect çoklu Oracle anlarının paylaştığı veri bloklarını iletmek için kullanır. Kullanılan kaynağın ana tipi bütün düğümlerin eriştiği veri dosyalarıdır. Şekil 2-1 bir küme veritabanında Interconnect in düğümleri nasıl bağladığına ve kümenin depolama araçları üzerindeki paylaşılan veri dosyaları üzerindeki erişimine yüksek seviyede bir bakıştır. Şekil 2-1 Küme Veritabanı İşlemi için Küme Bileşenleri 121

122 Küme ve onun Interconnect i depolama araçlarına ya da paylaşılan disk alt-sisteme depolama alan ağı ile bağlıdır. Aşağıdaki bölümler düğümleri ve Interconnect i daha detaylı bir biçimde tanımlar: Düğümler ve Onların Bileşenleri Cluster Interconnect ve Interprocess Communication( Düğümden Düğüme) Düğümler ve Onların Bileşenleri Bir düğümün ana bileşenleri şunlar: CPU- Bilgisayarın ana belleğinden okuyan ve ana belleğine yazan bir ana işleme bileşenidir. Bellek Veriyi arabelleğe alma ve programatik yürütme için kullanılan bileşendir. Interconnect- Düğümler arasındaki iletişim bağlantısıdır. 122

123 Storage (Depolama Sistemi) Veriyi depolayan bir araçtır. Bu; içeriklerini değiştirmek için okuma-yazma işlemleri tarafından erişilmesi gereken genellikle kalıcı veri deposudur. Bu bileşenleri çok farklı konfigürasyonlarla satın alabilirsiniz. Bu bileşenler düğümlerin veri depolarına ve anabelleğe nasıl erişeceğini belirler. NOT:Oracle Corporation, Real Aplication Clusters ı, Real Aplication Clusters veritabanları ile kullanmak için onaylanmış konfigürasyonlarla birlikte konuşlandırmanızı tavsiye eder. Cluster Interconnect ve Interprocess Communication (Düğümden Düğüme) Real Aplication Clusters, düğümler arası iletişim için yüksek hızlı interprocess communication (IPC) bileşenlerini kullanır. IPC, Real Aplication Clusters ortamlarının Oracle instance ları arası mesajların iletmesi için gerekli arabirim ve protokolleri tanımlar. Mesajlar, bu arabirimdeki temel iletişim birimleridir. IPC nin ana fonksiyonu, asenkron ve mesaj kuyruğu modeli oluşturmasıdır. Bellek, Interconnect ve Depolama Bütün veritabanları genelde aynı yolla CPU ları kullanır. Fakat; belleğin, depolamanın ve Interconnectnın farklı konfigürasyonlarını farklı amaçlar için konuşlandırabilirsiniz. Real Aplication Clusters ı konuşlandırdığınız mimari, sizin işleme amaçlarınıza bağlıdır. 123

124 Küme veritabanındaki her bir düğümün bir ya da daha fazla CPU ları vardır. Çoklu CPU lu düğümler tipik olarak ana belleği paylaşmak için konfigüre edilmiştir. Bu size daha ölçeklenebilir bir sistem sağlar. Yüksek Hızlı IPC Interconnect Yüksek hızlı Interprocess Communication (IPC) Interconnectsı bir yüksek geniş bantlı, kümedeki düğümleri bağlayan düşük gecikmeli bir iletişim kolaylığıdır. Interconnect her bir düğümün kaynaklara erişimini koordine etmek için mesajların ve diğer küme iletişimleri trafiğinin yönünü belirler. Interconnect için Ethernet, bir Fiber Distributed Data Interface(FDDI), ya da diğer uygun donanımları kullanabilirsiniz. Ana Interconnectnızda aksama olma durumları için, yedek bir Interconnect yüklenmesini de hesaba katmalısınız. Yedek Interconnect, yüksek kullanılırlığı arttırır, Interconnectnın başarısızlıktaki tek nokta olma olasılığını azaltır. Real Application Clusters lar, user-mode(kullanıcı-modlu) ve memorymapped(eşlenmiş bellek) IPC leri destekler. Bu tür IPC ler, CPU tüketimini ve IPC gecikmelerini oldukça azaltır. Paylaşılan Disk Deposu ve Cluster File System(Küme Dosya Sistemi) Avantajı Real Application Clusters lar, Oracle anlarına veritabanına eşzamanlı erişimi vermek için bütün düğümlerin aynı anda paylaşılan disklere erişimine ihtiyaç duymaktadırlar. Paylaşılan disk altsistemi gerçekleştirilmesi işletim sisteminize bağlıdır: bir cluster file system(küme dosya sistemi) kullanabilir veya dosyaları işlenmemiş 124

125 makinalar üzerine koyabilirsiniz. Cluster File System (Küme dosya sistemi), Real Application Clusters ların kurulumunu ve yönetimini büyük ölçüde kolaylaştırır. Real Application Clusters lar için bellek erişim konfigürasyonları belirgin biçimde tekdüzedir. Bu, kümedeki her düğüm için belleğe erişimde gereken ek yükün aynı olduğu anlamına gelir. Bununla birlikte, tipik depo erişim konfigürasyonları hem birbiçimli hemde tersi olmaktadır. Kullandığınız depo erişim konfigürasyonu, bellek konfigürasyonunuzdan bağımsızdır. Bellek konfigürasyonlarında olduğu gibi, çoğu sistemler Real Application Clusters veritabanları için tekdüze disk erişimini kullanırlar. Bir küme veritabanındaki tekdüze disk erişim konfigürasyonları, disk erişim yönetimini kolaylaştırır. 125

126 REAL APPLICATION CLUSTERS YAZILIMI MİMARİSİ Bu ünitede, Oracle Real Application Cluster özgü mimari bileşenler tanımlanacaktır. Bu bileşenlerden bazıları, Oracle veritabanı yazılımı ile temin edilebilirken bazıları da vendor-specific(sağlayıcıya özgüdür) tir. Bu ünitedeki başlıca konular Real Application Cluster bileşenlerini tanımlamaktadır. Bunlar: Operating System-Dependent Clusterware Real Application Cluster Paylaşılan Disk Bileşenleri Real Application Cluster-Specific Daemon ve Instance Processes(Real Application Cluster a özgü İşletim Sistemlerinde Geri Planda Çalışan Program ve Instance İşlemleri) Global Cache and Global Enqueue Service(Genel ön Arabellek ve Kuyruğa Ekleme Servisi) OPERATING SYSTEM-DEPENDENT(OSD) CLUSTERWARE Real Aplication Clusters işlemi, işletim sistemine erişmek için, kümeye ilişkin hizmet işlemi(örneğin Oracle instance başlatımı ve kapatımı ile ilgili bilgi iletimi) için Operating System-Dependent clusterware i (OSD) kullanır. Üreticiler OSD clusterware i Unix işletim sistemi için, Oracle ise OSD clusterware i Windows NT/2000 işletim sistemleri için sağlamaktadır. OSD nin altbileşenleri: Cluster Manager(Küme yöneticisi) Düğüm monitor(gözleyicisi) Interconnect Cluster Manager(Küme Yöneticisi) 126

127 Cluster Manager(CM), düğümler arası işlemleri koordine etmek için Interconnect üzerinden düğümler arası iletilen mesajlaşmayı inceleyebilir. Cluster Manager, cluster manager ın üyeleri olan kümeye, düğümlere ve Oracle anlarına genel bir izlenim imkanı sunar. Cluster manager küme üyeliğini de kontrol eder. Düğüm Monitor(gözleyicisi) Cluster manager, düğüm monitor(gözleyicisi) olarak bilinen bir fonksiyonellik altkümesi içerir. Düğüm monitor(gözleyicisi), düğümlerde dahil olmak üzere kümedeki her kaynağın, donanım ve yazılım Interconnectsının, ve paylaşılan diskin durumunu sorgular. Oracle-supplied(dan sağlanan) Windows için cluster manager da, düğüm monitor(gözleyicisi) Oracle anlarını da sorgular. Cluster manager, küme kaynaklarının durumunda değişiklik olduğu zaman istemcileri ve Oracle sunucusunu bilgilendirir. Bunun nedeni ise; Real Application clusters lar, varolan bir Oracle instancenın küme veritabanından bağlantısı koptuğu zaman veya bağlı bir Oracle instance cluster manager ile birlikte kaydedildiği zaman küme veritabanını tekrar konfigüre ederek küme üyeliğini yönetir. Düğüm monitörü cluster manager a sunduğu bazı himetler: Düğüm yönetimi arabirim modülleri sağlar. Düğümlerin üyelik durumunu, küme üzerinde düğüm üyeliğinin genel bir görünümünü sağlayarak araştırır ve bulur. 127

128 Aktif düğümlerdeki durum değişimlerini ortaya çıkarır ve teşhis eder, ve bu değişim olayları hakkında bilgiyi bildirir. Interconnect Interprocess communication (IPC) yazılımı, yada Interconnectsı, bir diğer anahtar OSD bileşenidir. IPC, düğümler arası mesajlaşmayı sağlar. Real Application Cluster lar Oracle anları arası veri bloklarını aktarmak için IPC kullanırlar. REAL APPLICATION CLUSTERS ın PAYLAŞILAN DİSK BİLEŞENLERİ Real Application Clusters veritabanları, tek Oracle instance ına sahip Oracle veritabanları ile aynı bileşenlere sahiptir. Bu durum, bir yada daha fazla kontrol dosyalarını, bir dizi online redo log dosyalarını, isteğe bağlı arşiv log dosyalarını, veri dosyalarını ve bunun gibilerini kapsamaktadır. Böylece, her redo log grubunun herbir online redo log üyesi için, herbir kontrol ve veri dosyası için, paylaşılan diske giriş imkanı sağlamanız gerekir. Paylaşılan diski, undo tablespace(geri alım tablo alanı) veri dosyasının tavsiye edilen otomatik geri alım yönetimi özelliğini kullanması için konfigüre etmeniz de gereklidir. Windows NT ve Windows 2000 işletim sistemlerinde(sadece bu sistemlerde), Oracle ın küme konfigürasyonu bilgilerini depoladığı bir voting yada quorum disk e ortak erişim imkanı sağlamanız gereklidir. Bu diski bir Cluster File System (CFS) üzerine veya bir işlenmemiş makine üzerine yerleştirebilirsiniz. Düğüm monitor(gözleyicisi) küme konfigürasyonlarını yönetebilmesi için quorum disk konfigürasyonunu kullanır. 128

129 Oracle konfigürasyon ve yönetim araçları paylaşılan diskte depolanan küme konfigürasyon verisine gereksinim duyar. Database Configüration Assistant ı (DBCA),Oracle Enterprise Management ı(em) ve Server Control(SRVCTL) komut satırı yönetsel yardımcıyı kullanmak için paylaşılan disk kaynağını konfigüre etmelisiniz. Windows NT ve Windows 2000 üzerinde, voting disk ve konfigürasyon verisi aynı disk kaynağını paylaşır. Eğer sunucu parametre dosyasını kullanırsanız, parametre dosyası yönetimi Real Aplication Clusters da basitleştirilmiştir. Bu dosyayı, genel anlamda yönetmek ve Oracle instance ına özgü parametre ayarlarını bir dosya içinde bulundurmak için paylaşılan bir diske depolayın. REAL APPLICATION CLUSTER-SPECIFIC DAEMON VE INSTANCE PROSES Bu kısımda, Real Application Cluster-Specific daemon ve instance proses aşağıdaki ana başlıklar altında tanımlanacaktır. The Global Services Daemon Instance Proses Specific to Real Application Clusters THE GLOBAL SERVICES DAEMON The Global Services Daemon(GSD), her düğüm üzerinde her düğüme bir GSD proses olacak şekilde çalışır. GSD, istemcilerden( örneğin DBCA, EM ve SRVCTL hizmeti) gelen istekleri almak ve yönetsel iş görevlerini(örneğin Oracle instancenı başlatma ve kapatma gibi) yürütmek için cluster manager ile eşgüdümlüdür.gsd, 129

130 bir Oracle instance arkaplan proses i değildir. Dolaysıyla, Oracle instance ile birlikte başlatılmaktadır. INSTANCE PROSES SPECIFIC TO REAL APPLICATION CLUSTERS Bir Real Application Cluster veritabanı, tek Oracle instance ına sahip bir Oracle veritabanı ile aynı proses lere(örneğin, proses monitor(pmon), database writer(dbwrn), log writer(lgwr), ve bunlara benzer proses ler) sahiptir. Bunlara ek olarak Real Application Cluster-specific prosesler(süreçler) Şekil 3-1 de gösterilmiştir. Bu proses lerin ve bu proses lerin oluşturduğu trace(izleme) dosyalarının esas isimleri platforma bağımlıdır. Global Cache Service Processes(LMSn), n mesajlaşma trafiğine bağlı olarak 0 ile 9 aralığında, uzaktaki Oracle anlarına gönderilen mesajların akışını kontrol eder ve global veri bloğu erişimini yönetir. LMSn proses leri, farklı Oracle anlarının ön arabellekleri arasında blok görüntüsünü de iletir. Bu işlem Cache Fusion ın özelliklerinden bir bölümüdür. The Global Enqueue Service Monitor(LMON), küme üzerinde kaynakları ve global kuyruğa eklemeleri gözlemler (monitors) ve global enqueue(kuyruğa ekleme) kurtarma işlemlerini yapar. Enqueues, satır güncelleşimini sıralandıran paylaşılan bellek yapılarıdır. The Global Enqueu Service Daemon(LMD), global enqueue ve global kaynak erişimini yönetir. Her bir Oracle instancenın içinde bulunan LMD proses, uzaktan gelen kaynak isteklerini yönetir. Lock Proses(LCK), non-cache Fusion kaynağı isteklerini(örneğin library(kitaplık)) ve satır önbellek isteklerini yönetir. 130

131 The Diagnosability Daemon(DIAG), Oracle anlarındaki proses başarısızlıkları ile ilgili diagonistic(teşhis edilmiş) veriyi yakalar. İşletim sisteminde geri planda çalışan bu programın işlemleri (the operations of this daemon) otomatik hale getirilmiş ve yaptığı etkinlikleri kaydetmek için bir uyarı log dosyasını güncellemektedir. Şekil 3-1 Real Application Cluster-Specific Instance proses GLOBAL ÖNBELLEK VE GLOBAL ENQUEUE SERVİSİ The Global Cache Service(GCS) ve Global Enqueue Service(GES), paylaşılan veritabanına ve veritabanındaki paylaşılan kaynaklara aynı 131

132 anda erişimi koordine eden Real Application Clusters ların tümleşik bileşenleridir. Bu servisler, tutarlılığı ve veri bütünlüğünü korur. Her Oracle instancendaki GCS ve GES, cluster manager da dahil olmak üzere, küme içinde ve Oracle anları arası iletişimi sağlamak için IPC kullanır. Bu kısımda GES ve GCS nin bazı özellikleri tanımlanacaktır. Uygulama Saydamlığı Dağılmış Mimarili Global Kaynak Dizini Resource Mastering and Affinity Cluster manager ile GCS ve GES etkileşimi Uygulama Saydamlığı GES ve GCS tarafından gerçekleşen kaynaklara erişim koordinasyonu, uygulamalara saydamdır. Real Application Clusters lardaki uygulamalar tek Oracle instance ına sahip Oracle veritabanlarında bulunan aynı eşzamanlı mekanizmaları kullanırlar. Dağılmış Mimarili Global Kaynak Dizini GCS ve GES, kaynaklarla ilgili bilgiyi kaydetmek için Global Kaynak Dizinini korur. Global Kaynak Dizini bellekte bulunmaktadır. Bu dağılmış mimaride, her düğüm dizindeki bilgi yönetimine katılır. Bu dağılmış düzen, fault tolerance(hata müsamahası) ve çalıştırma zamanındaki yüksek performans sağlar. GCS ve GES, bir çok düğüm aksasa bile, Global Kaynak Dizininin bütünlüğünü temin eder. Eğer en az bir Oracle instance, onarım bittikten sonra aktif durumda ise paylaşılan veritabanı her zaman erişilebilir durumdadır. Kaynak dizininin fault tolerance(hata müsamahası), Real 132

133 Application Clusters lara Oracle anlarını herhangi bir anda ve sıra dikkate almaksızın durdurmak başlatmak için imkan sağlar. Resource Mastering ve Affinity The Global Cache ve Global Enqueue Services, bir kümedeki her kaynak ile ilgili bilgiyi tutar. GCS ve GES, bir kaynağa özgü tüm bilgileri yönetmek için bir Oracle instance tayin ederler. Bu Oarcle anına Resource Master denir. GCS, resource mastering ı peryodik olarak hesaplar ve veri erişim düzenlerine göre resource master ı değiştirir. Bu, hem ağ trafiğini hemde kaynak edinme zamanını azaltır. CLUSTER MANGER İLE GCS VE GES ETKİLEŞİMİ GCS ve GES, cluster manager dan bağımsız çalışırlar. Bununla birlikte; bu servisler, kümedeki Oracle anlarının durumları ile ilgili yerinde ve doğru bilgi için cluster manager a güvenirler. Eğer bu servisler Oracle instance ına özgü bilgiyi elde edemezlerse, Oracle yanıt vermeyen bu Oracle instanceı kapatır. Bu durum Real Application Clusters veritabanlarının bütünlüğünden emin olunduğunu göstermektedir, çünkü her Oracle instance paylaşılan diske erişimi koordine etmek için diğer tüm aktif Oracle instancelarından haberdar olması gereklidir. 133

134 REAL APLICATION CLUSTERS DA ÖLÇEKLENİRLİK Bu böümde Real Aplication Clusters ın ölçeklenirlik özellikleri hakkında detaylardan bahsedilecektir. Ayrıca bu bölümde yer alacak konular şunladır: Real Aplication Clusters ın Ölçeklenirlik Özellikleri Real Aplication Clusters tan Faydalanan Bütün Sistem Çeşitleri Ölçeklenirlik Düzeyleri Real Aplication Clusters ın Ölçeklenirlik Özellikleri Yüksek süreklilik düzeylerini koruyan ve uygulama performansını arttıran birçok özelliği kullanarak Real Aplication Clusters ı uygulayabilirsiniz. Bu özellikler şunlardır: Düğümler arasındaki iş yüklerini, ağır kullanım periyodları boyunca çoklu sunucu bağlantılarını kontrol ederek dengeler. Real Aplication Clusters veritabanınız ve istemciler arasında kalıcı, hata toleransı olan bağlantıları sağlar. Eğer önceden konfigüre edilmiş veritabanlarından biri ile Real Aplication Clusters ı yüklerseniz, o zaman Database Configuration Assisstant(DBCA) otomatik olarak bu özelliklerin çoğunu konfigüre eder. Real Aplıcatıon Clusters tan FAYDALANAN Bütün Sistem Çeşitleri 134

135 Bu bölümde niçin bütün sistem çeşitleri Real Aplication Clusters dan faydalanır sorusunun yanıtı aranacaktır. Ayrıca aşağıdaki konulara değinilecektir. Hareket Sistemleri ve Real Aplication Clusters Veri Ambarı Sistemleri ve Real Aplication Clusters Note: Eğer uygulamanız iyi dizayn edilmiş ve tek Oracle instance ına sahip Oracle veritabanı üzerinde etkili bir şekilde çalışıyorsa, Real Aplication Clusters da çok daha iyi ölçeklenecektir. Hareket Sistemleri ve Real Applicaiton Clusters Hareket sistemleri, göreceli olarak kısa veritabanı güncelleme hareketleri tarafından karakterize edilmiştir. Hareket sistemleri için yapılan ( e-business ve traditional online transaction processing[oltp] sistemlerini içeren) uygulamalar, Real Aplication Clusters üzerinde daha iyi uygulanır; çünkü Real Aplaication Clusters aynı oranda iyi bir yükselti sağlar. Cache Fusion, ek yük çıkarmadan çoklu Oracle anlarında güncelleştirme yapıbilmesini sağlar. Fazla kullanıcı sisteme bağlandıkça hareket sistemi daha fazla işlemi yürüttüğü için, kümeye dinamik olarak düğüm ekleyerek kapasiteyi arttırabilirsiniz. Fakat iyi bir şekilde dizayn edilmemiş sistemler ne tek Oracle instance ına sahip Oracle veritabanı üzerinde ne de Real Aplication cluster veritabanları üzerinde iyi ölçekleme yapamaz - iyi dizayn edilmemiş uygulamalar istek arttıkça muhtemelen düşük bir performans gösterecektir. 135

136 Veri Ambarı Sistemleri ve Real Application Clusters lar Veri ambarı sistemleri, Real Aplication Clusters üzerinde iyi performans gösterir, çünkü; düşük güncelleme aktivitelirine sahip uygulamalar veritabanına, ekstra ek yük olmadan farklı Oracle anlarıyla erişebilir. Eğer veri blokları değiştirilmemişse, o zaman çoklu Oracle anları aynı blokları kendi ön arabelleklerinin içine okuyabilir ve ekstra I/O olmaksızın bloklar üzerindeki sorgulamayı gerçekleştirebilir. Veri ambarı sistemleri genellikle yukarı ölçeklemelerden(scale up) faydalanır ve de hızlanma tecrübesi kazanır. Oracle Parallel Execution in Real Application Clusters Real Aplication Clusters, paralel yürütüm için çerçeve sağlar. Paralel yürütüm Real Aplication Clusters da etkili bir şekilde çalışır. Çünkü bir büyük SQL komutunun kısımlarını çoklu Oracle anları üzerine dağıtabilir. Hareket, oldukça çabuk tamamlanır; çünkü çoklu CPU lar tarafından yürütülür. Real Application Cluster larda; Oracle, paralel yürütüm sunucu proses lerini yalnızca bir Oracle instance üzerinde mi yoksa çoklu Oracle anları üzerinde mi çalıştıracağını çalıştırma zamanında belirler. Genel olarak Oracle yeterli kaynaklar mevcut olduğu zaman sadece bir Oracle instance kullanmaya çalışır. Bu cross-instance mesaj trafiğini azaltır. ÖLÇEKLENİRLİK SEVİYELERİ Küme veritabanlarının gerçekleşirilmesi, aşağıda sıralanmış seviyelerde en iyi ölçeklenirliği gerektirir. Bu seviyeler: 136

137 Ağ Ölçeklenirliği Ağ Ölçeklenirliği ve İstemci / Sunucu Bağlanırlığı İşletim Sistemi Ölçeklenirliği Note: Uygun bir şekilde dizayn edilmemiş uygulamalar, bir sistemin ölçeklenirlik potansiyelini tam olarak kulanamayabilir. Aynı şekilde, uygulamalarınızın ne kadar iyi ölçeklenebilirliği göz önüne alındığında, eğer uygulamalarınızı ölçeklemeyen donanıma konuşlandırmaya çalışırsanız yüksek performans elde edemeyeceksiniz. Ağ Ölçeklenirliği Interconnect, küme ölçeklenirliğinde bir anahtar faktördür. Yani, ister yüksek hızlı bir bus isterse düşük hızlı bir eternet bağlantısı olsun, her sistemin CPU lara bir tane bağlantısı olmalıdır. Öyleyse, bant genişliği ve Interconnectnın gecikme süresi donanımın ölçeklenirliğini belirler. Bant Genişliğinin ve Gecikme Süresinin Fonksiyonu olarak Ağ Ölçeklenirliği Donanım ölçeklenirliği çok düşük gecikme gerektirir ve çoğu Interconnectların Real Aplication Clusters düğümleri arası işlemler için yeterli bant genişliğine sahip olması gerekir. Diğer düğümler arası işlemler, paralel yürütme gibi, geniş bant genişliğine de güvenir. Ağ Ölçeklenirliği ve Sunucu / İstemci Bağlanırlığı Real aplication Clusters da, sunucu / istemci bağlantıları bazı alt bileşenler kullanarak kurulmuştur. Bir istemci hedef düğüm üzerinde yer alan bir dinleyici işlemine bağlantı isteyeğini sunar. Dinleyici bir 137

138 istemcinin bağlantısını, istemcinin bazı faktörlere dayalı belirli bir düğüme erişebilmesi için, onaylar. Dinleyicinin bağlantıyı nasıl onaylayacağı, aşağıda ana başlıklar altında tanımlanan bağlantı seçeneklerini nasıl konfigüre ettiğinize bağlıdır. Bağlantı Yük Dengeleme Özelliği Geliştirilmiş Ağ Ölçeklenirliği ve Paylaşılan Sunucu Özelliği Bağlantı Yük Dengeleme Özelliği Bağlantı yük dengeleme özelliği, çoklu Oracle anlarının ve dispatchers ların olduğu Real Application Clusters ortamlarda olağanüstü yararlar sağlar. Bağlantı yük dengeleme, aynı servis için paylaşılan sunucu dispatchers ve çeşitli Oracle anları arasındaki bağlantıların sayısını dengeleyerek performansı arttırır. Eğer uygulamalarınız bölünmüşse, bu özelliği kullanma isteği duymayabilirsiniz. Servise registration ın, uzak dinleyicilerle cross-register yapabilme özelliği olduğu için, bir dinleyici her zaman bütün Oracle anlarından haberdardır. Bu yüzden bir dinleyici belirli bir servis için gelen istemci isteğini en az yüklü Oracle anlarına ve dispatcher lara gönderebilir. Servise registration, connect time failover ve paylaşılan bir sunucuyla ya da onsuz kullanabileceğiniz istemci yük dengelemeyi kolaylaştırır. Ayrıca, Real Aplication Clusters veritabanınızdan düğüm ekleyip çıkardığınız zaman, Oracle yük dengeleme bağlantısını kontrol eden başlatma parametrelerini dinamik olarak günceller. Çoklu Dinleyiciler için Connect Time Failover 138

139 Servise registration, bir Oracle instancenın çalışıp çalışmadığına dair dinleyicileri bilgilendirir. Bu, çoklu dinleyiciler bir servisi desteklediği zaman, connect-time failover ı sağlar. Bu özelliği kullanmak için, ilk dinleyici bağlantısında hata olursa istemci isteklerini farklı bir dinleyiciye fail over (adres devri) yapmak için bir istemciyi konfigüre edin. İstemci bir dinleyiciye başarılı bir şekilde bağlanıncaya kadar tekrar bağlantı yapmaya çalışır. Eğer bir Oracle instancenda hata oluşursa o zaman dinleyici ağ hatası döndürür. Çoklu Dinleyiciler için İstemci Yük Dengeleme ve Bağlantı Yük Yengeleme Oracle Net, istemci yük dengeleme ve bağlantı yük dengelemeyi sağlamaktadır. Bir ya da daha fazla dinleyici bir servisi desteklediği zaman, bir istemci bağlantı isteğini çeşitli dinleyicilere rastgele gönderebilir. Bağlantı isteklerinin gelişigüzel özelliği, tek bir dinleyiciye fazla yüklenmeyi önlemek için yükü dağıtır. Yük dengelemeye ek olarak, eğer bağlantı rastgele seçilen bir dinleyici ile yapılamazsa, istemciler bağlantı isteğinin otomatik olarak belirli bir dinleyiciye fail over yapmasını açıkça belirtebilirler. Bir bağlantı başarısız olduğunda, ya belirtilen dinleyici up(açık) değildir, yada instance up(açık) değildir ve bunun sonucunda dinleyici bağlantıyı kabul edemez. İstemci Yükü ve Bağlantı Yükü Dengeleme Konfigürasyonu İstemci yük dengelemeyi çalışır kılmak için başlangıç parametre dosyanızda ve tnsnames.ora dosyasında bir servis konfigüre edin. Bunu yapmak için, LOAD_BALANCE parametresini ON, YES ya da 139

140 TRUE ya ayarlayıp ve bağlantı tanımlayıcısınada aynı servis ismini verin. Note: Oracle Net, servis bilgisini otomatik olarak kaydetmek için PMON işlemini kullanır. Bu yüzden statik Oracle instance bilgili bir listener.ora dosyasını değiştirmenize gerek yoktur. Bağlantı yükü dengelemesinde, her bir düğümdeki dispatcher lara yapılan bağlantılar aktif bağlantıların sayısına dayanır. Oracle Net, yeni bağlantıları daha az bağlantıların ve daha düşük işlem yükünün olduğu düğümlere tahsis eder. Eğer paylaşılan sunucuları konfigüre ettiyseniz, o zaman Oracle Net daha az yüklü dispathcher lara bağlar. Note: İstemciler ölçeklenir bir şekilde sunucu makinelerine bağlanması gerekmektedir. Bu şu anlama gelir:ağınız da ölçeklenir olmalı. BÖLÜMLENMİŞ TABLOLAR VE İNDEKSLER Bu bölümde, bölümlenmiş tablolar and indeksler (partitioned tables and indexes) anlatılacaktır. Ünite, şu konuları kapsamaktadır. 140

141 Bölümlemeye giriş Bölümleme yöntemleri Bölümlenmiş indeksler Performansı arttırmak için Bölümleme Note: Oracle, bölümlemeyi sadece tablolar, tablolar üzerindeki indeksler, materialized view lerde ve materialized view üzerindeki indekslerde destekler. Oracle, kümelenmiş tabloların veya kümelenmiş tablolar (clustered tables) üzerindeki indekslerin bölümlenmesini desteklemez. BÖLÜMLEMEYE GİRİŞ Bölümleme (partitioning), çok büyük tabloları ve indeksleri bölümler adı altında daha küçük ve yönetilebilir parçalara ayrıştırmanıza izin 141

142 vererek desteklemedeki anahtar konulara hitabeder. Bölümlenmiş tablolara erişmek için SQL(yapılandırılmış sorgu dili) sorgularının ve DML(veri işleme dili) deyimlerinin değiştirilmesine gerek yoktur. Bununla birlikte, bölmeler belirlendikten sonra, DDL deyimleri bütün tablolardan veya indekslerden ziyade özgün bölmelere erişebilir ve işleyebilir. Bu şekilde bölümleme ile büyük veritabanı nesnelerinin yönetilebilirliği kolaylaştırılmıştır.ayrıca, bölümleme uygulamalarınıza tamamen saydamdır. Bir tablonun veya bir indeksin her bölmesi aynı mantıksal attribute(özniteliklere) sahip olmalıdır.(örneğin kolon ismi, veri tipleri, ve constraints(kısıtlar)). Fakat, her bölüm ayrı fiziksel özniteliklere sahip olabilir.örneğin pctfree, pctused, ve tablo alanları (tablespace). Bölümleme çok farklı tiplerdeki, bilhassa büyük hacimli verileri yöneten uygulamalar için faydalıdır. Bölümleme yöntemi, veri ambarı sistemleri için performans ve kolay yönetim, OLTP sistemleri için ise kolay yönetim ve süreklilik avantajları sağlamaktadır. Not: Bölümlenmiş bir nesnenin tüm bölümleri aynı blok büyüklüğüne sahip tablo alanlarında tutulurlar. Bölümleme şu avantajları sunmaktadır. Bölümleme; veri yükleme, indeks yaratımı ve yeniden inşaası, ve yedekleme/onarım gibi veri yönetimi işlemlerini tüm tablo üzerinden ziyade bölüm seviyesinde yapma imkanı sağlar. Dolayısıyla bu işlemlerin çok daha hızlı gerçekleştirilmesi sağlanır. Bölümleme, sorgu performansını geliştirir. Birçok durumda, bir sorgunun sonuçları tüm tablodan ziyade bir bölüm altkümesine erişimle 142

143 elde edilebilir. Bazı sorgular için, bölüm eliminasyonu (partition elimination) olarak adlandırılan bu teknik çok yüksek performans kazançları sağlar. Bölümleme, bakım işlemleri için planlanan kesinti süresinin etkisini önemli ölçüde azaltır. Bölüm bakım işlemlerininbölüm bağımsız oluşu, aynı tablonun veya indeksin farklı bölümleri üzerinde eşzamanlı bakım işlemleri yapma imkanı sağlar. Bölümler üzerinde bakım işlemlerinden etkilenmeyen, eşzamanlı SELECT ve DML işlemleri çalıştıralabilir. Eğer bakım ve onarım süresini, ve başarısızlıkların etkisini azaltmak için kritik tablolar ve indeksler bölümlere ayrılırsa, bölümleme veritabanlarının sürekliliğini arttırır. Uygulamalarınızda herhangi bir değişiklik yapmaya gerek kalmadan bölümleme gerçekleştirilebilir. Örneğin; tabloya erişen hiçbir SELECT deyimini veya DML deyimini değiştirmeye ihtiyaç duymadan bölümlenmemiş bir tabloyu bölümlenmiş bir tabloya dönüştürebilir. Bölümlemeden faydalanmak için uygulama kodunu tekrar yazmanıza gerek yoktur. Şekil 11-1, bölümlenmiş tabloların bölümlenmemiş tablolara göre farklılığını gösteren bir grakfiksel görünüm sunmaktadır. Şekil 11-1 Bölümlenmiş Tabloların Görünümü 143

144 Bölme Anahtarı Bölümlenmiş bir tablodaki herbir kayıt, belirli bir şekilde tek bir bölüme atanır. Bölüm anahtarı, her kayıt için bölümü belirleyen bir veya daha fazla kolonlar kümesidir. Oracle9i; ekleme, güncelleme, ve silme işlemlerini bölüm anahtarı ile otomatik olarak uygun bölüme yönlendirir.bir bölüm anahtarı: 1 den 16 ya kadar kolonların sıralı listesinden oluşur. LEVEL, ROWID, veya MLSLABEL pseudocolumn(sözde kolonlar) veya ROWID tipinde bir kolon içermez. NULL değer alabilen kolonlar içermez. Bölümlenmiş Tablolar Tablolar, 64,000 ayrı bölüme kadar bölümlenebilir. LONG veya LONG RAW veri tipine sahip kolonlar içeren tablolar haricindeki bütün tablolar 144

145 bölümlenebilir. CLOB veya BLOB veri tiplerine sahip kolonlar içeren tablolar bölümlenebilmektedir. Bölümlenmiş İndeks-Organize Tablolar (Partitioned Indexed- Organized Tables) Bölümleme, indeks-organize tablolar için de uygulanabilir. Bu özellik, indeks-organize tablolar için gelişmiş yönetilebilirliği, sürekliliğı ve performansı sağlama açısından çok faydalıdır. Ayrıca, indeks-organize tabloları kullanan veri cartridges(kartuşları) depolanmış verilerini bölümleyebilme yeteneğinden yararlanabilirler. Bunun en genel örnekleri, Image ve intermedia cartridge leridir. Index-organize bir tabloyu bölümlerken Sadece range ve hash bölümleme desteklenmektedir. Bölüm kolonlarının, birincil anahtar kolonlarının bir altkümesi olması gereklidir. İkincil indeks, lokal veya global olarak bölümlenebilir. OVERFLOW veri segmentleri her zaman için tablo bölümleri ile eşit bölümlenir. BÖLÜMLEME YÖNTEMLERİ Oracle, şu bölümleme yöntemlerini destekler; 145

146 Aralıklı (Range) Bölümleme Liste Bölümleme Hash Bölümleme Birleşik (Composite) Bölümleme Şekil 11-2, bölümleme yöntemlerinin grafiksel bir görünümünü sunmaktadır. Şekil 11-2 Liste, Aralıklı, ve Hash Bölümleme Birleşik bölümleme, diğer bölümleme yöntemlerinin birleşimidir. Oracle, range-hash ve range-liste birleşimi bölümlemeyi destekler. Şekil 11-3, range-hash ve range-liste birleşimi bölümlemenin grafiksel bir görünümünü sunmaktadır. Şekil 11-3 Birleşik Bölümleme 146

147 Aralıklı (Range) Bölümleme Range bölümleme, herbir bölme için oluşturduğunuz bölme anahtarı aralığı esas alınarak veriyi bölümlerle eşleştirir. Range bölümleme, bölümlemenin en çok yaygın olan tipi olmakta ve genelde tarih kolonlarında kullanılmaktadır. Örneğin, satış verisini aylık bölümlere parçalanabilir. Range bölümlemeyi kullanırken şu kurallar dikkate alınmalıdır: 147 Herbir bölüm, bölüm içine dahil olmayan bir üst sınırı belirten bir VALUES LESS THAN cümleciğine sahiptir. Böülüm anahtarı bu literale eşit yada daha yüksek olan kayıtlar, bir sonraki bölüme eklenmektedir. İlki hariç, bütün bölümler, bir önceki bölme üzerinde VALUES LESS THAN cümleciği ile belirtilen alt sınıra sahiptir. MAXVALUE literali, en son bölme için tanımlanabilir. MAXVALUE, bölüm anahtarı için herhangi diğer muhtemel değerlerden daha yüksek değerleri(null değerde dahil olmak üzere), sıralayan sanal sonsuz bir değeri temsil eder.

148 Bir sonraki bölümde tipik bir örnek verilmiştir. Komut, satis_tarihi alanına göre range bölümleme yapılmış bir tablo (satis_range)yaratmaktadır. Aralıklı Bölümleme Örneği CREATE TABLE satis_range (satici_no NUMBER(5), satici_adi VARCHAR2(30), satis_miktari NUMBER(10), satis_tarihi DATE) PARTITION BY RANGE(satis_tarihi) ( PARTITION satis_oca2000 VALUES LESS THAN(TO_DATE('02/01/2000','DD/MM/YYYY')), PARTITION satis_sub2000 VALUES LESS THAN(TO_DATE('03/01/2000','DD/MM/YYYY')), PARTITION satis_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','DD/MM/YYYY')), PARTITION satis_nis2000 VALUES LESS THAN(TO_DATE('05/01/2000','DD/MM/YYYY')) ); Liste Bölümleme Liste bölümleme, satırların bölümlerle nasıl eşleştirileceği konusunda belirgin bir şekilde kontrol imkanı sağlar. Bunu, herbir bölüm tanımlanmasındaki bölümleme anahtarı için bir değerler listesi belirterek yapabilirsiniz. Bu, bölümün değerlerin aralığı ile ilişkili olduğu range bölümlemeden, bir hash fonksiyonun satır-bölüm eşleşmesini kontrol 148

149 ettiği hash bölümlemeden farklıdır. Liste bölümlemenin avantajı, düzenlenmemiş ve ilişkisiz veri kümelerini doğal bir yol ile gruplayabilir ve düzenleyebilir. Liste bölümlemenin ayrıntıları en kolay bir örnekle anlatılabilir. Diyelimki bir satış tablosunu bölgelere göre bölümlemek istiyorsunuz. Bu, aşağıda örnekteki gibi, eyaletleri coğrafi yerlerine göre gruplama anlamına gelir. Liste Bölümleme Örneği CREATE TABLE satis_listesi (satici_no NUMBER(5), satici_adi VARCHAR2(30), satis_eyaleti VARCHAR2(20), satis_miktari NUMBER(10), satis_tarihi DATE) PARTITION BY LIST(satis_eyaleti) ( PARTITION satis_batı VALUES('California', 'Hawaii'), PARTITION satis_dogu VALUES ('New York', 'Virginia', 'Florida'), PARTITION satis_merkezi VALUES('Texas', 'Illinois') PARTITION satis_diğerleri VALUES(DEFAULT) ); Bir kayıt için bölümleme kolonu değerinin, bölümü tanımalayan değerlerin kümesi içine düşüp düşmediğini kontrol ederek bir kayıt bir bölüm ile eşlenir. Örneğin, eklenen satırlar şöyledir: (10, Jones, Hawai, 100, 05-OCA-2000 ), satis_bati bölmesi ile eşlenir. 149

150 (21, Smith, Florida, 150, 15-OCA-2000 ), satis_dogu bölmesi ile eşlenir. (32, Lee, Colorado, 130, 21-OCA-2000 ), tablodaki herhangi bir bölme ile eşlenmez. Range ve Hash bölümlemeden farklı olarak, birden çok kolondan oluşan bölüm anahtarları liste bölümleme için kullanılamaz. Eğer bir tablo liste olarak bölümlenirse, bölümleme anahtarı tablonun sadece tek bir kolonundan oluşabilir. DEFAULT bölüm (default partition), liste bölümleme ile bölümlenmiş bir tablo için default bir bölüm kullanarak bütün olası değerleri belirtmekten zorunda kalmamanızı sağlar, böylece diğer herhangi bir bölümle eşlenmeyen bütün satırlar bir hata oluşturmadan bu bölüme aktarılır. Hash Bölümleme Hash (karma) bölümleme, range veya liste bölümlemeye elverişli olmayan verinin kolay bölümlenmesini mümkün kılar. Hash bölümleme, bunu basit bir syntax ile yapabilir ve uygulaması kolaydır. Aşağıdaki durumlarda, hash bölümleme range bölümlemeye göre tercih edilmelidir: Verinin ne kadarının verilen bir aralığa karşılık geleceğini önceden bilmediğiniz durumlarda Ranhe bölümlerin büyüklüklerinin, esas itibariyle oldukça farklı olabileceği durumlarda veya manual olarak dengelemenin zor olduğu durumlarda Range bölümlemenin, verinin istenilmeyecek şekilde kümelenmesine neden olabileceği durumlarda 150

151 Performans özellikleri, örneğin paralel DML, bölüm eliminasyonu, ve bölme düzeyinde join işlemlerinin (parition wise join) önemli olduğu durumlarda Bölümleri parçalama, drop etme veya birleştirme (merge) işlemleri hash bölümlemeye uygulanmaz. Ancak tabloya,yeni hash bölümler eklenebilir ve bütünlenebilir (coalesced). Hash Bölümleme Örneği CREATE TABLE satis_hash (satici_no NUMBER(5), satici_adı VARCHAR2(30), satis_miktari NUMBER(10), hafta_no NUMBER(2)) PARTITION BY HASH(satici_no) PARTITIONS 4 STORE IN (data1, data2, data3, data4); Üstteki komut, satici_no alanına göre karma bölümlemesi yapılmış satis_hash tablosunu yaratır. Composite (Birleşik) Bölümleme Birleşik bölümleme veriyi range metodu kullanarak bölümler, ve herbir bölümü range veya liste yöntemi kullanarak alt bölümlere ayırır. Birleşik range-hash bölümleme, range bölümlemenin gelişmiş yönetilebilirlik avantajlarını ve hash bölümlemenin verinin düzgün 151

152 dağıtılması, striping ve paralellik avantajlarını sağlar. Birleşik range-liste bölümleme, altbölümler için range bölümlemenin yönetilebilirliğini ve liste bölümlemenin dışardan kolay kontrol edilebilmeözelliklerini sağlar. Birleşik bölümleme yeni range bölümleri ekleme gibi tarihsel operasyonlar için kullanılabilir, bununla birlikte DML işlemleri için daha yüksek paralellik dereceleri sağlar ve alt-bölümler ile veri dağılımın düzeyininin ince ayarlanmasını sağlar. Range-Hash Composite (Birleşik) Bölümleme Örneği CREATE TABLE satis_composite (satici_no NUMBER(5), satici_adı VARCHAR2(30), satis_miktarı NUMBER(10), satis_tarihi DATE) PARTITION BY RANGE(satis_tarihi) SUBPARTITION BY HASH(satici_no) SUBPARTITION TEMPLATE( SUBPARTITION sp1 TABLESPACE data1, SUBPARTITION sp2 TABLESPACE data2, SUBPARTITION sp3 TABLESPACE data3, SUBPARTITION sp4 TABLESPACE data4) (PARTITION satis_oca2000 VALUES LESS THAN(TO_DATE('02/01/2000','DD/MM/YYYY')) PARTITION satis_sub2000 VALUES LESS THAN(TO_DATE('03/01/2000','DD/MM/YYYY')) PARTITION satis_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','DD/MM/YYYY')) PARTITION satis_nis2000 VALUES LESS THAN(TO_DATE('05/01/2000','DD/MM/YYYY')) 152

153 PARTITION satis_may2000 VALUES LESS THAN(TO_DATE('06/01/2000','DD/MM/YYYY'))); Bu komut, satis_tarihi alanı üzerinde range bölümleme uygulanmış ve satici_no alanı üzerinde hash altbölümleme uygulanmış, satis_composite adında bir tablo yaratır. Bir template kullandığınız zaman; Oracle altbölmeleri bölüm adı, altçizgi, ve template deki altbölme adını bitiştirerek adlandırır. Oracle bu altbölmeyi template de belirtilen tablo alanına yerleştirir. Bir önceki komutta, satis_oca2000_sp4 yaratılıp ve data4 tablo alanına (tablespace) ve satis_oca2000_sp1 yaratılıp ve data1 tablo alanına yerleştirilmiştir. Aynı şekilde, satis_nis2000_sp4 yaratılıp, data4 tablo alanına yerleştirilirken, satis_nis2000_sp1 yaratılıp ve data1 tablo alanına yerleştirilir. Şekil 11-4, bir önceki örneğin grafiksel bir görünümünü sunmaktadır. Şekil 11-4 Range-Hash 153

154 Range-Liste Birleşik Bölümleme Örneği CREATE TABLE ikiaylık_bölgesel_satis (deptno NUMBER, adet_no VARCHAR2(20), txn_tarihi DATE, txn_miktarı NUMBER, eyalet VARCHAR2(2)) PARTITION BY RANGE (txn_tarihi) SUBPARTITION BY LIST (eyalet) SUBPARTITION TEMPLATE( SUBPARTITION dogu VALUES('NY', 'VA', 'FL') TABLESPACE ts1, SUBPARTITION bati VALUES('CA', 'OR', 'HI') TABLESPACE ts2, SUBPARTITION merkez VALUES('IL', 'TX', 'MO') TABLESPACE ts3) ( PARTITION ocasub_2000 VALUES LESS THAN (TO_DATE('1- MAR-2000','DD-MON-YYYY')), PARTITION marnis_2000 VALUES LESS THAN (TO_DATE('1- MAY-2000','DD-MON-YYYY')), 154

155 PARTITION mayhaz_2000 VALUES LESS THAN (TO_DATE('1- TEM-2000','DD-MON-YYYY')) ); Bu komut, txn_tarihi alanı üzerinde aralıklı bölümlemesi yapılmış ve eyalet alanı üzerinde liste altbölümleme yapılmış ikiaylık_bölgesel_satış adında bir tablo yaratmaktadır. Bir template kullandığınız zaman; Oracle alt bölmeleri bölme adı, altçizgi, ve template deki alt bölme adını bitiştirerek adlandırır. Oracle bu altbölmeyi template de belirtilen tablo alanına yerleştirir. Bir önceki komutta, ocaşub_2000_merkezi yaratılıp ve ts3 tablo alanına yerleştirilirken, ocaşub_2000_doğu yaratılır ve ts1 tablo alanına yerleştirilir. Aynı şekilde, mayhaz_2000_merkezi yaratılıp ve ts3 tablo alanına yerleştirilirken, mayhaz_2000_doğu yaratılır ve ts1 tablo alanına yerleştirilir. Şekil 11-5, ikiaylık_bölgesel_satış tablosunun ve ona ait 9 altbölmenin grafiksel bir görünümünü sunmaktadır. Şekil 11-5 Range-Liste Birleşik Bölümleme 155

156 Bir Tabloyu Bölümlerken Bu bölümde bir tabloyu bölümlerken dikkat edilmesi gereken bazı öneriler sunulmaktadır. 2GB den büyük tablolar için her zaman bölümlemenin dikkate alınması gereklidir. Tarihi (Historical) veri içeren tablolarda, yeni veri en yeni bölmeye eklenir. Tarihi tabloya tipik bir örnek, sadece içinde bulunulan ayın verisi güncellenebilir olan, geçmişteki 11 aylık verilerin sadece okunmasına izin verilen tablolardır. Bölümlenmiş İndeksler Bölümlenmiş tablolardaki gibi; bölümlenmiş indeksler de yönetilebilirliği, sürekliliği, performansı ve ölçeklenirliği geliştirir. İndeks hem bağımsız bir şekilde bölümlenebildiği(global indeksler) gibi hemde bir tablonun bölümleme yöntemine otomatik olarak bağlanabilir(lokal indeks). 156

157 Lokal Bölümlenmiş İndeksler Lokal bölümlenmiş indeksler, bölümlenmiş diğer indeks tiplerine göre daha kolay yönetilir. Ayrıca, daha çok süreklilik sunar ve DSS ortamlarında daha yaygındır. Bunun eşbölümleme olmasının nedeni: lokal indeksin herbir bölümü tablonun sadece bir bölümüle ilişkilendirilmiştir. Bu, Oracle ın otomatik olarak indeks bölümlerini tablo bölümleriyle eşzamanlı tutmasını sağlar, ve her tablo-indeks çiftini bağımsız yapar. Bir bölümün verisini geçersiz veya kullanılamaz yapan herhangi bir işlem sadece tek bir bölümü etkiler. Lokal indekse dışarıdan yeni bir bölüm ekleyemezsiniz. İlgili tabloya yeni bir bölüm eklediğiniz zaman, yeni bölümlere kendi lokal indeksleri oluşturulur. Aynı şekilde, bir lokal indeksten bir bölüm drop edemezsiniz. Ancak, ilgili tablodan bir bölüm drop ettiğiniz zaman, o bölümün lokal indeksleri de drop olur. Bir lokal indeks unique olabilir. Bununla birlikte, bir lokal indeksin unique olabilmesi için, tablonun bölümleme anahtarının indeksin anahtar kolonlarının bir parçası olması gerekir. Unique lokal indeksler OLTP ortamları için faydalıdır. Şekil 11-6, lokal bölümlenmiş indekslerin grafiksel bir görünümünü sunmaktadır. 157

158 Şekil 11-6 Lokal Bölümlenmiş İndeksler Bölümlenmiş Global İndeksler Global bölümlenmiş indeksler bölümleme seviyesi bakımından esnektir ve bölümleme anahtarı tablonun bölümleme yönteminden bağımsızdır. Global bölümlenmiş indeksler genelde OLTP ortamlarında kullanılır ve herhangi bir kayıta etkin erişim sunar. Bir global indeksin bütün değerleri MAXVALUE olan en yüksek bölümünün bir tane bölme sınırı (bound) olmalıdır. Bu ilgili tablodaki bütün kayıtların indekste temsil edilebilir olduğunu garanti eder. Global prefixed indeksler unique veya non-unique olabilir. Bir global indekse bölüm ekleyemezsiniz; çünkü en son bölüm her zaman MAXVALUE olan bir bölme sınırına sahiptir. Eğer yeni bir enson bölme eklemek istiyorsanız, ALTER INDEX SPLIT PARTITION komutunu kullanmanız gerekmektedir. Eğer bir global indeks bölme boşsa, ALTER INDEX DROP PARTITION komutunu kullanarak global indeks bölmeyi drop edebilirsiniz. Eğer bir global indeks bölümü veri içeriyorsa, bölmeyi drop etmek diğer en son bölümün kullanılamaz şeklinde işaretlenmesine neden olur. Global indeksteki en son bölümü drop edemezsiniz. 158

159 Global Bölümlenmiş İndekslerin Bakımı Varsayılan, bir heap-organized tablonun bölümleri üzerindeki aşağıda sıralanan işlemler bütün global indeksleri kullanılamaz konuma sokar. ADD(HASH) COALESCE(HASH) DROP EXCHANGE MERGE MOVE SPLIT TRUNCATE Bu indeksler, işlem yapılacağı zaman UPDATE GLOBAL INDEXES cümleciğini SQL deyimlerine iliştirerek korunabilir. Global indeksleri korunması iki avantaj sunar: İndeks, işlem süresince kullanılabilir ve erişilebilir olarak kalır. Böylece, diğer hiçbir uygulama bu işlemden etkilenmez. Indeksin, işlemden sonra yeniden oluşturulmasına gerek kalmaz. Örnek: ALTER TABLE DROP PARTITION P1 UPDATE GLOBAL INDEX Note: Bu özellik, sadece heap-organized tablolarda desteklenmektedir. Şekil 11-7 global bölümlenmiş indekslerin grafiksel bir görünümünü sunar. 159

160 Şekil 11-7 Global Bölümlenmiş İndeksler Global Bölümlenmemiş İndeksler Global bölümlenmemiş indeksler tam anlamıyla bölümlenmemiş indeks gibi davranır. Genelde OLTP ortamlarında kullanılır ve herhangi bir kayıta etkin erişim sunar. Şekil 11-8, global bölümlenmemiş indekslerin grafiksel bir görünümünü sunmaktadır. Şekil 11-8 Global Bölümlenmemiş İndeksler 160

Veritabanı. Ders 2 VERİTABANI

Veritabanı. Ders 2 VERİTABANI Veritabanı Veritabanı Nedir? Birbiri ile ilişkili verilerin bir arada uzun süreli bulundurulmasıdır. Veritabanı bazen Veritabanı Yönetim sistemi veya Veritabanı Sistemi yerine de kullanılır. Gerçek dünyanın

Detaylı

VERİ TABANI SİSTEMLERİ

VERİ TABANI SİSTEMLERİ VERİ TABANI SİSTEMLERİ 1- Günümüzde bilgi sistemleri Teknoloji ve bilgi. 2- Bilgi sistemlerinin Geliştirilmesi İşlevsel Gereksinimleri 1.AŞAMA Gereksinim Belirleme ve Analiz Veri Gereksinimleri Gereksinimler

Detaylı

Veritabanı Tasarımı. Veritabanı Hareketleri

Veritabanı Tasarımı. Veritabanı Hareketleri Veritabanı Tasarımı Veritabanı Hareketleri Konular Veri hareketleri ile ilgili olarak COMMIT, ROLLBACK ve SAVEPOINT terimlerini tanımlamak COMMIT, ROLLBACK ve SAVEPOINT ifadelerinin üç avantajını listelemek

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JDBC (Java Database Connectivity) Üst Düzey Programlama-ders07/ 1 JDBC JDBC ilişkisel veritabanlarına erişim için Java dilinde kullanılan standart bir kütüphanedir. Bu kütüphanedeki

Detaylı

1 Temel Kavramlar. Veritabanı 1

1 Temel Kavramlar. Veritabanı 1 1 Temel Kavramlar Veritabanı 1 Veri Saklama Gerekliliği Bilgisayarların ilk bulunduğu yıllardan itibaren veri saklama tüm kurum ve kuruluşlarda kullanılmaktadır. Veri saklamada kullanılan yöntemler; Geleneksel

Detaylı

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme Veritabanı Tasarımı Kullanıcı Erişimini Kontrol Etme Konular Nesne ayrıcalıkları ve sistem ayrıcalıkları arasındaki farkı karşılaştırma Bir kullanıcının bir veritabanınaerişimini etkinleştirmek için gerekli

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ Veri Tabanı Nedir? Sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir kuruluşa

Detaylı

İLİŞKİSEL VERİTABANLARI

İLİŞKİSEL VERİTABANLARI İLİŞKİSEL VERİTABANLARI Veritabanı Nedir? Veritabanı (database) en basit şekliyle verilerin belirli bir düzene göre tutulduğu, depolandığı bir sistemdir. İlişkisel Veritabanı Nedir? İlişkisel veritabanlarındaki

Detaylı

Swing ve JDBC ile Database Erişimi

Swing ve JDBC ile Database Erişimi Swing ve JDBC ile Database Erişimi JDBC API, tablolanmış herhangi bir tür veriye, özellikle İlişkisel Veritabanı, erişim sağlayan bir Java API sidir. JDBC, aşağıda verilen üç etkinliğin gerçekleştirilebileceği

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ ÖĞR.GÖR.VOLKAN ALTINTAŞ 26.9.2016 Veri Tabanı Nedir? Birbiriyle ilişkisi olan verilerin tutulduğu, Kullanım amacına uygun olarak düzenlenmiş veriler topluluğunun, Mantıksal

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I BÖLÜM 12 12. SQL de YÖNETİMSEL FONKSİYONLAR 12.1. VIEWS ( Tablo Görünümü) Tablo görünümleri veri tabanında tanımı olan tablolardan sorgulama sonucunda elde edilir. Tabloların tersine fiziksel bir yer tutmazlar.

Detaylı

Veritabanı Uygulamaları Tasarımı

Veritabanı Uygulamaları Tasarımı Veritabanı Uygulamaları Tasarımı Veri Tabanı Veritabanı yada ingilizce database kavramı, verilerin belirli bir düzene göre depolandığı sistemlere verilen genel bir isimdir. Günümüzde özel veya kamu kuruluşların

Detaylı

1 Temel Kavramlar. Veritabanı 1

1 Temel Kavramlar. Veritabanı 1 1 Temel Kavramlar Veritabanı 1 Veri Saklama Gerekliliği Bilgisayarların ilk bulunduğu yıllardan itibaren veri saklama tüm kurum ve kuruluşlarda kullanılmaktadır. Veri saklamada kullanılan yöntemler; Geleneksel

Detaylı

1 ORACLE 11G DATABASE SERVER LE

1 ORACLE 11G DATABASE SERVER LE Ç NDEK LER 1 ORACLE 11G DATABASE SERVER LE TANIfiALIM 1 Veritaban Sistemleri 1 Genel Bak fl 1 Relational Database ( liflkisel Veritaban ) Sistemleri 3 Neden Oracle Database Server? 5 Verileri Normallefltirme

Detaylı

Asp.Net Veritabanı İşlemleri

Asp.Net Veritabanı İşlemleri Asp.Net Veritabanı İşlemleri Asp.Net Veritabanı İşlemleri Birçok uygulamada bilgiler geçici olarak tutulur ve oturum sonlandırıldığında bu bilgiler bellekten silinir. Ancak etkileşimli web sitelerinde

Detaylı

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri İNTERNET PROGRAMLAMA 2 A S P. N E T Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri VERİTABANI BAĞLANTISI Site içindeki bilgilerin saklanması / düzenlenmesi ve kullanıcı etkileşiminin sağlanabilmesi

Detaylı

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır. Yazılım Mimarisi 1.Yazılım Mimarisi Nedir? Yazılım mimarisi geliştirilen uygumaların maliyetlerinin azaltılmasında önemli bir yer tutar. Örneğin MVC modeli kullanarak bir uygulama geliştiriyoruz ve arayüz

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı Ders 7 LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 LINUX Yapısı LINUX işletim sisteminin diğer işletim sistemleri gibi kendine özgü bir yapısı vardır. LINUX yapısı ve bileşenleri aşağıdaki

Detaylı

POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme

POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme Devrim Gündüz PostgreSQL Geliştiricisi devrim@commandprompt.com devrim@gunduz.org devrim@postgresql.org LKD Seminerleri Linux Kullanıcıları Derneği'nin

Detaylı

Veri Tabanı-I 1.Hafta

Veri Tabanı-I 1.Hafta Veri Tabanı-I 1.Hafta 2010-2011 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Meslek Yüksekokulu Burdur 2011 Muhammer İLKUÇAR 1 Veri ve Veri Tabanı Nedir? Veri Bir anlamı olan ve kaydedilebilen

Detaylı

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme Veritabanı Tasarımı Sütun Değerlerini Güncelleme ve Satırları Silme Konular UPDATE komutunu oluşturmak ve çalıştırmak DELETE komutunu oluşturmak ve çalıştırmak Tabloda güncelleme yapmak ya da veri silmek

Detaylı

UZAKTAN EĞİTİM MERKEZİ

UZAKTAN EĞİTİM MERKEZİ ÜNİTE 2 VERİ TABANI İÇİNDEKİLER Veri Tabanı Veri Tabanı İle İlgili Temel Kavramlar Tablo Alan Sorgu Veri Tabanı Yapısı BAYBURT ÜNİVERSİTESİ UZAKTAN EĞİTİM MERKEZİ BİLGİSAYAR II HEDEFLER Veri tabanı kavramını

Detaylı

Bilgi Servisleri (IS)

Bilgi Servisleri (IS) Bilgi Servisleri (IS) GRID Kullanıcı Eğitimi Boğaziçi Üniversitesi 2007, İstanbul Emrah AKKOYUN Konu Başlığı Neden ihtiyaç duyulur? Kullanıcılar kimlerdir? Bilgi Servisi türleri MDS ve BDII LDAP Bilgi

Detaylı

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA BÖLÜM15 D- VERİ TABANI PROGRAMI 1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA 1.1. Veri Tabanı Kavramları Veritabanı (DataBase) : En genel tanımıyla, kullanım amacına uygun olarak düzenlenmiş veriler

Detaylı

NovaFortis Yazılım Danışmanlık. E-dönüşüm adaptörü

NovaFortis Yazılım Danışmanlık. E-dönüşüm adaptörü NovaFortis Yazılım Danışmanlık E-dönüşüm adaptörü E-DÖNÜŞÜM ADAPTÖRÜ E-dönüşüm adaptörü e-fatura, e-arşiv fatura, e-defter ve e-ihracat süreçlerini yönetmek üzere tasarlanmış bir masaüstü uygulamasıdır.

Detaylı

Kets DocPlace LOGO Entegrasyonu

Kets DocPlace LOGO Entegrasyonu Kets DocPlace LOGO Entegrasyonu Kets DocPlace Kurulumu Öncesinde Yapılması Gereken İşlemler Windows 7, Windows 8, Windows Server 2008 R2, Windows Server 2012 veya daha yeni işletim sistemlerinde Programlar

Detaylı

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi Hedefler Veritabanı Yönetimi Bilgisayarların Discovering Keşfi 2010 Computers 2010 Living in a Digital World Dijital Dünyada Yaşamak Veritabanı terimini tanımlamak ve bir veritabanının veri ve bilgi ile

Detaylı

Veri Tabanı Hafta Dersi

Veri Tabanı Hafta Dersi Veri Tabanı - 1 2. Hafta Dersi Dersin Hedefleri Geleneksel Dosya Sistemleri Veri Tabanı Kavramları Veri Tabanı Yönetim Sistemleri Veri Modelleri Veri nedir? Bilgisayarlarda veri nasıl saklanır? Bilgisayarlardaki

Detaylı

VERİ TABANI UYGULAMALARI

VERİ TABANI UYGULAMALARI VERİ TABANI UYGULAMALARI VERİ TABANI NEDİR? Bir konuyla ilgili çok sayıda verinin tutulmasına, depolanmasına ve belli bir mantık içerisinde gruplara ayrılmasına veri tabanı denir. Veri tabanı programları;

Detaylı

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN Bilgisayar Mühendisliğine Giriş Yrd.Doç.Dr.Hacer KARACAN İçerik Dosya Organizasyonu (File Organization) Veritabanı Sistemleri (Database Systems) BM307 Dosya Organizasyonu (File Organization) İçerik Dosya

Detaylı

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI VERİ TABANI YÖNETİM SİSTEMLERİ HASTANE OTOMASYONU Öğr. Gör. Handan ÇETİNKAYA İstanbul Gelişim Üniversitesi Günümüzde en basitinden en karmaşığına kadar pek çok veritabanı mevcuttur. En basiti Microsoft

Detaylı

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri VERİ KAYNAKLARI YÖNETİMİ İ İ 5. ÜNİTE GİRİŞ Bilgi sisteminin öğelerinden biride veri yönetimidir. Geleneksel yada çağdaş, birinci yada ikinci elden derlenen veriler amaca uygun veri formlarında tutulur.

Detaylı

Widows un çalışmasında birinci sırada önem taşıyan dosyalardan biriside Registry olarak bilinen kayıt veri tabanıdır.

Widows un çalışmasında birinci sırada önem taşıyan dosyalardan biriside Registry olarak bilinen kayıt veri tabanıdır. Registry: Windows un bütün ayarlarının tutulduğu bir veri tabanıdır. Widows un çalışmasında birinci sırada önem taşıyan dosyalardan biriside Registry olarak bilinen kayıt veri tabanıdır. Win.3x sistemlerinde

Detaylı

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI İÇİNDEKİLER 1. GİRİŞ 1.1. KAPSAM 1.2. SİSTEM ÖZETİ 1.3. DOKÜMAN ÖZETİ 2. ÇALIŞMA KONSEPTİ 2.1. Yeni Kullanıcı Oluşturmak 2.2. Şirket Bilgilerini

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

BIM 312 Database Management Systems. Veritabanı Kavramına Giriş

BIM 312 Database Management Systems. Veritabanı Kavramına Giriş BIM 312 Database Management Systems Veritabanı Kavramına Giriş Veritabanı Nedir? Veritabanı, birbirleriyle ilişkili verilerin hızlı ve verimli bir şekilde ulaşılmasına olanak verecek biçimde saklanmasıyla

Detaylı

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Veritabanı Tasarımı NOT NULL ve UNIQUE Kısıtlamaları Tanımlama NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Konular Kısıtlama terimini veri bütünlüğü ile ilişkilendirerek tanımlama Sütun seviyesinde ve tablo

Detaylı

VERİTABANI Veritabanı Yönetimi

VERİTABANI Veritabanı Yönetimi VERİTABANI Veritabanı Yönetimi YAPILANDIRILMIŞ SORGULAMA DİLİ (SQL) Veritabanı yönetimi, veritabanının yapısal özelliklerini belirtmek ve değiştirmek, veritabanına kullanıcı erişimlerini ve yetkilerini

Detaylı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Konular Giriş Data Hiyerarşisi Files (Dosyalar) ve Streams (Kaynaklar)

Detaylı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Android Nedir ve Uygulama Temelleri Android Uygulama Bileşenleri

Detaylı

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1 Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1 Depolama Aygıtları 1- Birincil Depolama Aygıtları Hızlı Erişim Süresine Sahiptirler Fiyatı daha fazladır. Daha küçük kapasiye sahiptir 2. İkincil

Detaylı

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

Veritabanı Tasarımı. DML İşlemleri ve Görünümler Veritabanı Tasarımı DML İşlemleri ve Görünümler Konular Basit bir görünümde DML işlemlerini gerçekleştiren bir sorgu yazma ve çalıştırma DML işlemleri kullanarak bir görünümü değiştirme yeteneğini kısıtlayan

Detaylı

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış Kepware Veritabanı Ürünleri Teknolojiye Genel Bir Bakış Gündem Veritabanı Client API teknolojisinin gözden geçirilmesi ODBC istemci sürücüsü- bir KEPServerEX Plug-In Haberleşme Sürücüsüdür. DataLogger-

Detaylı

Oracle da Güvenlik. Kerem ERZURUMLU A0064552

Oracle da Güvenlik. Kerem ERZURUMLU A0064552 Kerem ERZURUMLU A0064552 İçindekiler 1. Veritabanı Erişim Kontrolü...2 1.1 Normal Kullanıcıların Onaylanması...2 a ) İşletim Sistemi Aracılığı ile Onaylama...2 b) Ağ Servisleri Aracılığı ile Onaylama...2

Detaylı

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU Ders Tanıtım Sunumu Database Managegement II Elbistan Meslek Yüksek Okulu 2016 2017 Güz Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU 08 Eyl. 2016 SQL Server 2008 veritabanlarının grafiksel arayüzden yönetimi ve

Detaylı

DNS Nedir? HİKMET TÜYSÜZ

DNS Nedir? HİKMET TÜYSÜZ DNS Nedir? 14545568 HİKMET TÜYSÜZ DNS DNS, Domain Name System in kısaltılmış şeklidir. Türkçe karşılığı ise Alan İsimlendirme Sistemi olarak bilinir. DNS, 256 karaktere kadar büyüyebilen host isimlerini

Detaylı

MVC Kul anıcı Doğrulama ve Yetkilendirme MVC Filtreler Action Filter FilterAttribute IActionFilter FilterAttribute IActionFilter

MVC Kul anıcı Doğrulama ve Yetkilendirme MVC Filtreler Action Filter FilterAttribute IActionFilter FilterAttribute  IActionFilter MVC Kullanıcı Doğrulama ve Yetkilendirme MVC projesinde kullanıcıların oturum açmasının sağlanması ve sadece yetkili oldukları action metotlara erişebilmelerini anlatan bir örnek uygulama gerçekleştirilecektir.

Detaylı

KISITLAMALAR (CONSTRAINT)

KISITLAMALAR (CONSTRAINT) KISITLAMALAR (CONSTRAINT) Tablo alanlarına veri girişini kontrol etmeyi amaçlayan düzenlemelerdir. Bir alana girilen değerleri sınırlayan bu düzenlemeler kullanıcı hataları açısından önemlidir. Verilerin

Detaylı

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. Bu dersimizde biz Microsoft SQL Server veritabanı sistemini kullanmayı öğreneceğiz. SQL Nedir? SQL Structured Query Language

Detaylı

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA View oluşturma View lardan veri getirme Sequence oluşturma ve kullanma İndex oluşturma ve kullanma Synonym oluşturma ve kullanma VIEW Bir veya birden fazla tablodan

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

İŞLETİM SİSTEMLERİ. (Operating Systems)

İŞLETİM SİSTEMLERİ. (Operating Systems) İŞLETİM SİSTEMLERİ (Operating Systems) İşletim Sistemi Tanımı, Görevleri, Bilinen İşletim Sistemleri Çok Kullanıcılı Sistemler, Bellek Yönetim Birimi Linux ve Windows Ailesi, Bilinen İşletim Sistemleri

Detaylı

VERİTABANI ORGANİZASYONU

VERİTABANI ORGANİZASYONU VERİTABANI ORGANİZASYONU Veri nedir? Olgu, kavram ya da komutların, iletişim, yorum ve işlem için elverişli biçimsel gösterimidir. Veriler ölçüm, sayım, deney, gözlem ya da araştırma yolu ile elde edilmektedir.

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ II. 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA

VERİ TABANI YÖNETİM SİSTEMLERİ II. 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA BÖLÜM 9 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA Bu bölümde Oracle Forms programı ile örnek bir form hazırlanması anlatılacaktır. 9.1 ORACLE FORMS ile FORM Oluşturma Nasıl Delphi programının

Detaylı

Bölüm 4: DDL Veri Tanımlama Dili

Bölüm 4: DDL Veri Tanımlama Dili Bölüm 4: DDL Veri Tanımlama Dili -43- Dr. Serkan DİŞLİTAŞ DDL (Data Definition Language Veri Tanımlama Dili : Bu kategorideki SQL komutları ile veritabanları, tablo, görünüm ve indekslerin yaratılması,

Detaylı

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar 2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar Öğr. Gör. Saliha Kevser KAVUNCU Veritabanı neden kullanılır? Veritabanının amacı; insanların ve organizasyonların birşeyleri takip edebilmesine yardımcı

Detaylı

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 KONU BAŞLIKLARI 1. Yazılım Mimarisi nedir? 2. Yazılımda Karmaşıklık 3. Üç Katmanlı Mimari nedir? 4. Üç Katmanlı Mimari

Detaylı

Temel Bilgisayar Programlama

Temel Bilgisayar Programlama BÖLÜM 11: : Birçok programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. Bütün programlama dillerinde, sabit disk sürücüsü (Hard Disk Drive, HDD) üzerindeki verileri okumak veya diske veri

Detaylı

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI ELIF KIOTZEOGLOU 0510130077 RESUL MURAD 0510120082 MERT PACOLARI 0510120083 SQL SQL,(İngilizce "Structured Query Language", Türkçe: Yapılandırılmış Sorgu Dili) verileri yönetmek ve tasarlamak için kullanılan

Detaylı

PARALOG POS AKTARIMLARI. Derece Yazılım 2009

PARALOG POS AKTARIMLARI. Derece Yazılım 2009 PARALOG POS AKTARIMLARI Derece Yazılım 2009 POS (Point of Sale) Satış Noktası anlamına gelen bu terim perakende ticarette kullanılan gelişmiş yazarkasalar için de kullanılmaktadır. POS cihazları sahip

Detaylı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

VERİ TABANI UYGULAMALARI

VERİ TABANI UYGULAMALARI V. Ünite VERİ TABANI UYGULAMALARI A. BAŞLANGIÇ B. BİR VERİ TABANI YARATMA C. FORMLARIN KULLANIMI D. BİLGİYE ERİŞİM E. RAPORLAMA 127 A BAŞLANGIÇ Konuya Hazırlık 1. Veri tabanı programları hangi amaç için

Detaylı

Mobil Cihazlardan Web Servis Sunumu

Mobil Cihazlardan Web Servis Sunumu Mobil Cihazlardan Web Servis Sunumu Özlem Özgöbek Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2010 İnternet erişiminin yaygınlaşması ve artık mobil cihazlar üzerinden bile yüksek hızlı veri iletişimine

Detaylı

NFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr

NFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr NFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr NFS içerik: NFS nedir? Tarihçe NFS sunucu yapılandırma NFS istemci yapılandırma Genel problemler ve

Detaylı

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir. 2 Dosya Nedir? Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir. Birincisi, bir sistem görevi yerine getirirken yada bir uygulama

Detaylı

İŞ YATIRIM MENKUL DEĞERLER A.Ş. İŞ SÜREKLİLİĞİ PLANLAMASI A. AMAÇ

İŞ YATIRIM MENKUL DEĞERLER A.Ş. İŞ SÜREKLİLİĞİ PLANLAMASI A. AMAÇ Sayfa No: 1/7 A. AMAÇ Bu politika, nin deprem, yangın, fırtına, sel gibi doğal afetler ile sabotaj, donanım veya yazılım hatası, elektrik ve telekomünikasyon kesintileri gibi önceden tahmin edilebilen

Detaylı

PAZARTESİ SALI 2015-2016 Ders Programı 1. Öğretim 09.00-09.50 10.00-10.50 11.00-11.50 12.00-12.50 HRT4291 WEB TABANLI CBS GR:11 Ü.GÜMÜŞAY EZ-121 ; D1-129 HRT4291 WEB TABANLI CBS GR:22 Ü.GÜMÜŞAY EZ-121

Detaylı

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi arvento Araç Takip ve Filo Yönetim Sistemleri ile araçlarınızı 7 gün 24 saat on-line ve geçmişe yönelik olarak izleyebilir, hızlarını, izlemiş oldukları güzergahı, duraklama yaptıkları yerleri uzaktan

Detaylı

Veri Tabanı-I 1.Hafta

Veri Tabanı-I 1.Hafta Veri Tabanı-I 1.Hafta 2015-2016 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Teknik Bilimler Meslek Yüksekokulu Burdur 2015 Yrd.Doç.Dr. M. İLKUÇAR 1Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Detaylı

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Konular Veritabanı Tasarım Aşamaları Veri Modeli Nedir? Veri Modeli Temel Bileşenleri İş Kuralları (Business Rules) İş Kurallarını Veri

Detaylı

BAY.t ENTEGRE PRO e-fatura ÇÖZÜMÜ ENTEGRATÖR KULLANIM YÖNTEMİ

BAY.t ENTEGRE PRO e-fatura ÇÖZÜMÜ ENTEGRATÖR KULLANIM YÖNTEMİ BAY.t ENTEGRE PRO e-fatura ÇÖZÜMÜ ENTEGRATÖR KULLANIM YÖNTEMİ Bayt EntegrePro e-fatura modülü avantajları; -Yıllık güncelleme bedeli alınmıyor. -Firma dosyası sınırlaması yok. -Firma dosya sayısına bağlı

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzmanı Görev Tanımı

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzmanı Görev Tanımı Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzmanı Görev Tanımı Formal Doküman Detayları Hazırlanma Tarihi 17 Eylül 2012 Yayın Taslak Hazırlayan Ersun Ersoy Doküman Numarası

Detaylı

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU Elbistan Meslek Yüksek Okulu 2015 2016 GÜZ Yarıyılı 28-29 Ara. 2015 Öğr. Gör. Murat KEÇECĠOĞLU Indexler İndeks, tablolardan veri çekmek için gerekli sorgular çalıştırılırken gereken süreyi azaltmak amacıyla

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Struts Framework Üst Düzey Programlama-ders08/ 1 JSP MODEL 1 ve MODEL 2 Mimarileri Bu mimariler bir web uygulaması geliştirilirken kullanılan yöntemlerdir. Bu yöntemler arasındaki

Detaylı

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ Tahsin Barış AKAN Bitirme Projesi 05.06.2006 Giriş Ticari yazılımlarda ortak ihtiyaçlar Birden

Detaylı

Kurumsal Güvenlik ve Web Filtreleme

Kurumsal Güvenlik ve Web Filtreleme S a y f a 1 antikor Kurumsal Güvenlik ve Web Filtreleme SshClient, Putty v.s. S a y f a 2 S a y f a 3 S a y f a 4 S a y f a 5 S a y f a 6 S a y f a 7 şeklini alır. Bu durumda kullanıcı yasaklı konumdadır.

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 DOSYALAMA Sunu Planı Veri Hiyerarşisi Dosyalar ve Akımlar(streams) Sıralı Erişim (Sequential Access) dosyalarının oluşturulması Sıralı Erişim Dosyalarından Veri Okuma Rasgele

Detaylı

ABAQUS Programına Giriş Kullanılacak Sürümler

ABAQUS Programına Giriş Kullanılacak Sürümler ABAQUS Programına Giriş Kullanılacak Sürümler (1) Abaqus Öğrenci Sürümü (Student Edition) (Abaqus SE): Akademik öğrenciler tarafında indirilebilen ücretsiz Sonlu Elemanlar probram sürümüdür. İndirilme

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Yazılımda Günlükleme (Logging) Üst Düzey Programlama-ders07/ 1 Günlükleme -Logging Tüm büyük çaplı uygulamalarda günlükleme(logging) ihtiyaçları bulunmaktadır. Bir uygulamanın hata

Detaylı

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzman Yardımcısı Görev Tanımı

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzman Yardımcısı Görev Tanımı Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzman Yardımcısı Görev Tanımı Formal Doküman Detayları Hazırlanma Tarihi 11 Temmuz 2013 Yayın Taslak Hazırlayan Ersun Ersoy Doküman

Detaylı

Windows Sürüm 5.0 Standart Raporlarının NDER ile Bütünleşik Çalıştırılması

Windows Sürüm 5.0 Standart Raporlarının NDER ile Bütünleşik Çalıştırılması Windows Sürüm 5.0 Standart Raporlarının NDER ile Bütünleşik Çalıştırılması Ürün Grubu [X] Redcode Enterprise [X] Redcode Standart [X] Entegre.NET Kategori [X] Yeni Fonksiyon Versiyon Önkoşulu 5.0 Uygulama

Detaylı

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir. TEMEL AĞ TANIMLARI Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir WAN ve LAN Kavramları Bilgisayarlar ve paylaşılan

Detaylı

Kurumsal Güvenlik ve Web Filtreleme

Kurumsal Güvenlik ve Web Filtreleme S a y f a 1 antikor Kurumsal Güvenlik ve Web Filtreleme SshClient, Putty v.s. S a y f a 2 S a y f a 3 Yönetici olarak AntiKor a girmek için SshClient veya Putty programı kullanılır. IP olarak kurum içinden

Detaylı

Teknosem ANASAYFA. Program komut butonları ve program zaman parametrelerinin bulunduğu sayfadır.

Teknosem ANASAYFA. Program komut butonları ve program zaman parametrelerinin bulunduğu sayfadır. ANASAYFA 1 2 3 4 5 6 7 Sayfa Geçiş Tuşları Program komut butonları ve program zaman parametrelerinin bulunduğu sayfadır. Teknosem 1 Eksenleri Sıfırla Butonu: Sistemin ilk açılışında eksenleri sıfırla (homing)

Detaylı

UYGULAMA KULLANIM KILAVUZU

UYGULAMA KULLANIM KILAVUZU DATASEL BİLGİ SİSTEMLERİ ÜRÜN GELİŞTİRME BÖLÜMÜ TİG AKTARIM DOSYASI OLUŞTURMA UYGULAMASI UYGULAMA KULLANIM KILAVUZU V 1.0 Hazırlayan : DataSel Bilgi Sistemleri A.Ş. 27/01/2012 İÇERİK 1. GİRİŞ... 1 1.1

Detaylı

ORACLE İÇİN VERİ TABANI YÖNETİM ARACI VE PERFORMANS ANALİZİ ALPASLAN KILIÇKAYA YÜKSEK LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ

ORACLE İÇİN VERİ TABANI YÖNETİM ARACI VE PERFORMANS ANALİZİ ALPASLAN KILIÇKAYA YÜKSEK LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ ORACLE İÇİN VERİ TABANI YÖNETİM ARACI VE PERFORMANS ANALİZİ ALPASLAN KILIÇKAYA YÜKSEK LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ TOBB EKONOMİ VE TEKNOLOJİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ HAZİRAN 2008 ANKARA

Detaylı

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır. 18 SQL SORGU DİLİ SQL (Structured Query Language) yapısal sorgu dili, veritabanı yönetim sistemlerinin standart programlama dili olarak bilinmektedir. SQL dilinin Access içinde sorgu pencerelerinde veya

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA BLM-112 PROGRAMLAMA DİLLERİ II Ders-8 Dosya İşlemleri-1 Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Giriş Değişken ve dizilerde tutulan değerler programın çalışması

Detaylı

State Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ;

State Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ; State Yönetimi State Yönetimi Web Page sınıflarının nesneleri, sayfa sunucu tarafına her defasında gönderildiğinde oluşturulur. Böyle bir durum sayfada kullanıcının girmiş olduğu ve sayfa ile ilişkili

Detaylı

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz. Temel Kavramlar-2 Byte = 8 Bit in bir araya gelmesiyle oluşan bellektir. Bilgisayarın tanıdığı harf rakam ve özel karakterlerden her biri 1 byte lık yer kaplar. Yani her bir harfin 1 veya 0 dan oluşan

Detaylı

İşletim Sistemi. BTEP205 - İşletim Sistemleri

İşletim Sistemi. BTEP205 - İşletim Sistemleri İşletim Sistemi 2 İşletim sistemi (Operating System-OS), bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım arasındaki iletişimi sağlayan ve uygulama programlarını çalıştırmaktan sorumlu olan sistem

Detaylı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 19: Standart Şablon Kütüphanesi (vector) İçerik 19.1 Standart Şablon Kütüphanesi (STL) 19.2 vector SınıK 19.3 vectortanımı 19.4 vector Elemanlarına

Detaylı

Ağ Yönetiminin Fonksiyonel Mimarisi

Ağ Yönetiminin Fonksiyonel Mimarisi Bölüm 7 Ağ Yönetimi Ağ Yönetiminin Fonksiyonel Mimarisi a) Performans (Performance) Yönetimi b) Sistem Ayarları (Configuration) Yönetimi c) Hesap (Account) t)yönetimi i d) Hata (Fault) Yönetimi e) Güvenlik

Detaylı

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir. VERİ BÜTÜNLÜĞÜ VTYS lerde veri bütünlüğünü sağlamanın iki temel yolu vardır; Tanımlanabilir veri bütünlüğü ve prosedürel veri bütünlüğü. Tanımlanabilir veri bütünlüğü, tanımlanan nesnelerin kendi özellikleri

Detaylı

Oracle Database 11g: Introduction to SQL

Oracle Database 11g: Introduction to SQL Oracle Database 11g: Introduction to SQL Mehmet Salih DEVECI GTECH-Kıdemli Veritabanı Yöneticisi Mehmetsalih.deveci@gtech.com.tr BÖLÜM- 1: SQL E GİRİŞ SELECT ifadesinin kabiliyetlerinin ortaya çıkarılması

Detaylı

Öğr. Gör. Ümit ATİLA

Öğr. Gör. Ümit ATİLA Öğr. Gör. Ümit ATİLA Internette her bilgisayarın bir IP (ınternet protokol) adresi vardır. Bir bilgisayarın IP adresi varsa internet üzerindeki tüm bilgisayarlar bu adresi kolayca bulabilir. Ancak bu rakamları

Detaylı

Veritabanı Tasarımı. Tablo Oluşturma

Veritabanı Tasarımı. Tablo Oluşturma Veritabanı Tasarımı Tablo Oluşturma Konular Ana veritabanı nesnelerini listeleme ve kategorize etme Bir tablo yapısını inceleme Şema nesnelerinin Oracle veritabanı tarafından nasıl kullanıldığını açıklama

Detaylı

5651 ve 5070 Sayılı Kanun Tanımlar Yükümlülükler ve Sorumluluklar Logix v2.3 Firewall. Rekare Bilgi Teknolojileri

5651 ve 5070 Sayılı Kanun Tanımlar Yükümlülükler ve Sorumluluklar Logix v2.3 Firewall. Rekare Bilgi Teknolojileri 5651 ve 5070 Sayılı Kanun Tanımlar Yükümlülükler ve Sorumluluklar Logix v2.3 Firewall 5651 Sayılı Kanun Kanunun Tanımı : İnternet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen

Detaylı