2 Aralık 2010 Perşembe

ORACLE DATABASE 11g BİLEŞENLERİ VE MİMARİSİ-1

            Bu makalede Oracle Database 11g (Oracle 11g) veritabanı yönetimini öğrenmeye başlayacağız. Makalenin hazırlanış amacı Oracle 11g Administration I OCA sertifikası sınavının amaçlarının açıklanması ve bu sertifikanın alınması için gerekli olan konular anlatılmasıdır. Oracle Şirketi güçlü ve özellik bakımından zengin olan ayrıca performans, kullanılabilirlik, yedeklenebilirlik, uygulama- test ve kritik uygulamalar için güvenlik yeterliliğini karşılayabilecek bir sürüm olarak Oracle 11g’yi piyasaya sürdü. Oracle DBA olarak size düşen Oracle Database 11g’yi kullanım başlangıcından son dağıtıma kadar ilk yükleme,  yaratma ve konfigure edilmesini yönetmek ve bu yapıyı korumaktır. Bu görevleri uygulamak için Oracle ürünleri hakkında güçlü bir altyapıya sahip olmanız gerekmektedir ki uygulamalar için uygun araçları ve öznitelikleri seçebilesiniz. Bunlara ek olarak ilişkisel veritabanı konseptini bilmeniz dizayn, gerçekleştirim ve uygulama verilerinin saklandığı tabloların korunması için gereklidir. Bütün bunların yanı sıra Oracle mimarisini doğru anlamak araçları doğru bir şekilde yönetmek ve izlemek için çok büyük bir öneme sahiptir. Bu bölüme Oracle Veritabanının temellerini anlatarak başlayacağım.Genel bir bakış olarak bellek yapılarının, veritabanını yöneten proseslerin nasıl bir süreçte oluşturulduğunu ve verinin nasıl veritabanına kaydedildiğini öğreneceksiniz. Aynı zamanda araçların Oracle Database 11g’yi yönetmek için nasıl kullanılacağını ve Oracle 11g yazılımının nasıl yükleneceği de anlatılacaktır.  


ORACLE VERİTABANI TEMELLERİ
                Veritabanları verileri depolamak için kullanılır. Verinin içeriğinde ilişkili mantıksal birimlerin bilgisi bulunmaktadır. Veritabanı yönetim sisteminin (VTYS) görevi verilerin depolanma şekilleri, modifikasyonları ve geri kazanımı işlemlerini sağlamaktır. Önceden kullanılan bazı veritabanları düz dosyaların veya hiyerarşik dosyaların uygulama verilerine saklanması için kullanılmıştır. Diğerleri ise verilerin set edilmesi sırasında depolanması ve konumunu bağlantı ağları kullanarak sağlamıştır. Eski VTYS mimarileri verinin fiziksel yapısıyla mantıksal yapısını birlikte kullanmıştır. Bu kullanım verinin yeri değiştirildiğinde uygulamanın veriyi güncellenmiş gibi algılamasına sebep olurdu. İlişkisel veri tabanı beraberinde veritabanı mimarisinde devrim niteliğinde değişikler getirmiştir. İlişkisel VTYS bizleri bağımsız veri kavramıyla tanıştırdı böylelikle verinin fiziksel modeli ile mantıksal modelinin ayrı kullanılabileceği ortaya gösterilmiştir. Oracle bir ilişkisel VTYS’dir.
Oracle’ın bütün veritabanı sürümleri ilişkisel VTYS modelini veritabanına veri depolamak için kullanmıştır. Bu ilişkisel modeller Dr. Edgar Codd 1970’de yayınlanan“A Relational Model of Data for Large Shared Data Banks” adlı kitabından esinlenilerek geliştirilmiştir. Dr. Codd’un modellini ilk benimseyen şirket olarak IBM bugün bütün ilişkisel veritabanında kullanılan bilgisayar dilinin –SQL- geliştirilmesine yardımcı olmuştur.  SQL dilinin en önemli özelliği ilişkisel veritabanıyla kompleks bilgisayar programları yazmadan kolayca erişebilmeniz ve verinin fiziksel olarak belleğin neresinde olduğuna bakmaksızın kolayca etkileşim kurabilmenizdir.




İLİŞKİSEL VERİTABANI

İlişkisel veritabanı yönetim sistemi(İVTYS) kavramını oluşturan şey verinin ilişkisel nesne dizilerinde var olmasıdır. Verinin veritabanında saklanmasında kullanılan en temel şey tablodur.  İlişkiler, verinin tablonun hangi satır ve sütununda bulunduğu göz önüne alınılarak uygulanırlar. Şekil 1,1 kurulan ilişkiyi göstermektedir.                                                                                                           Şekil 1.1


Küçük olan şekilde görülen DEPT tablosu şirketin departman bilgilerini saklamaktadır. Her departmanın bir departman ID’si bulunmaktadır. Bu ID ile birlikte departmanın adı ve konumu da tabloda saklanmaktadır. EMP tablosu şirket çalışanlarının bilgilerini tutmaktadır. Her çalışan(employee) ayırıcı bir çalışan ID ye sahiptir. Bu tabloda hire date, salary, manager gibi çalışan bilgileri tutulmaktadır. İki tabloda da ortak olarak bulunan DEPTNO sütunu iki tablo arasında ilişkiyi sağlamaktadır. Bir departmanda çok sayıda çalışan bulunabilir ama bir çalışan sadece belirli bir departmanda çalışabilir.  Kullanıcı bu verilerden birine ulaşmak için satırların nasıl ve nereye saklandığı bilgisine ihtiyacı yoktur, her satırın ayırt edici bir özelliği olmak zorundadır. Örneğimizde departmanlar departman numaraları ile birbirlerinden ayırt edilebilir aynı şekilde çalışanlar birbirinden employee ID ile ayırt edilebilir. Satırları ayırt edici olarak ayıran kolanlar primary key olarak bilinir. İlişkisel teoriye göre ilişkisel veritabanındaki her tablo bir pirimary key’e sahip olmalıdır. İlişkili tablolar birleştirilirse primary keylere göre birleştirme yapılır böylelikle yeni bir tablo oluşturulabilir.  Örneğin, DEPT tablomuzun pirimary keyi  EMP tablosunda sütun olarak bulunmaktadır  İVTYS terminolojisinde bu sütun EMP tablosunun foreign key’ini oluşturur.  Bu foreign key’in varlığı bize bu verinin başka bir tabloda da var olduğunu ve iki tablo arasında ilişkiyi sağladığını gösterir. Primary keyin var olduğu tablo ana tablo olarak, foreign keyin var olduğu tablo da çocuk tablo olarak adlandırılır. Oracle Kısıtları(Constraint) kullanarak tablolar arasında ana-çocuk ilişkisi oluşmasını sağlar.

Oracle Database 11g Nesneleri

            Her İVTYS veritabanı nesnelerinin çeşitliliğini destekler. Oracle 11g tablo, view, Constraint gibi ilişkisel veritabanı için gerekli olan bütün dizi nesnelerini destekler. Bu aynı zamanda geniş bir nesne gücünü Oracle 11g’nin özellikli olarak desteklediğini gösterir. Bunlara örnek olarak paketler, sequences ve uyarlanmış viewler verilebilir. Tablo 1.1 de Oracle Database 11g de yer alan nesneler listesi yer almaktadır.
Nesne Tipi
Tanımı
Tablo
Tablo temel veri depolama nesnesidir. Tablolarda verinin depolandığı satır ve sütunlar bulunmaktadır.
View
Bir nevi özelleştirilmiş tablodur ve tablolar üzerinde yapılan bir takım işlem sonucunda oluşturulurlar. Bellekte yer kaplamazlar dinamik olarak oluşturulup kullanılırlar.
Index
Verilerin yerleştirilmesi veya istenilen verilere ulaşılması için isteğe bağlı olarak kullanılan bir yapıdır. Veri ile olan işlemlerde pek çok kolaylık sağlar.
Materialized view
Bu yapı verilerin özetlenip saklanması için kullanılır. Viewlerle benzer bir yapıdadır fakat bellekte yer kaplarlar.
Index-organized
table
Bu yapı tabloları indeksleme-organize etme için primary keyleri kullanıp veri tablosunu indeks segmentine saklar.
Küme
Küme aynı bloklarda saklanan verilerin oluşturduğu gruptur.
Constraint
Veri bütünlüğünü güçlendirmek amacıyla saklanan kuraldır.
Sequence
Üretim sayısında sürekliliği sağlamak için bir mekanizma oluşturur.
Synonym
Veritabanı şema nesneleri için oluşturulan takma ad gibi kullanılan bir yapıdır.
Triggers
Trigger(Tetikleyici)  PL/SQL program birimidir ve bir olayın gerçekleşmesi sonucu çalıştırılır(örneğin veri silme sırasında çalıştırılır verinin silinmesi tetikler).
Stored function
PL/SQL programıdır ve kullanıcı tanımlı bir fonksiyonunda geri dönüş değeri ile kullanılabilir.
Stored procedure
PL/SQL programıdır ve iş sürecini tanımlar.
Package
Prosedür, fonksiyon ve başka bir programın kısıtlayıcılarından oluşan bir derlemedir.
Java
İş tanımlamak için Oracle tarafından oluşturulabilen saklı java prosedürleridir.
Database link
Database linkleri veritabanı ile paylaşılan veri arasında iletişimi sağlamak için kullanılır.
SQL’i veritabanı nesnesi oluşturmak ve uygulama verileri ile etkileşim sağlamak için kullanabilirsiniz. Önümüzdeki bölümde Oracle 11g veritabanını yönetmek için kullanılan araçları ele alacağız.

Oracle 11g ile etkileşim Kurma
Oracle 11g database ile etkileşim kurmak için kullanlılan dil SQL’dir. DBA’in bir Oracle 11g veritabanını yönetmesi için bir çok araç bulunmaktadır. En çok kullanılan araçlar aşağıda belirtilmiştir:
-SQL*Plus, komut satırı ara yüz aracıdır.
-SQL Developer, bir GUI aracıdır
-Oracle Enterprise Manager Database Control,  bir GUI aracıdır.
SQL*Plus ve SQL Developer’ı kullanarak direk olarak Oracle 11g veritabanı ile etkileşim kurabilirsiniz. Bu etkileşim SQL cümleleri ve STARTUP, SHUTDOWN gibi üst komutlar kullanılarak oluşturulur. Enterprise Manager kullanarak ise dolaylı olarak Oracle 11g veritabanıyla etkileşim kurulabilir.



SQL*Plus
SQL*Plus Oracle DBA’in veritabanını yönetmek için kullandığı birincil araçtır ve SQL komutlarını kullanarak yönetir. SQL ifadelerini çalıştırmadan önce Oracle 11g veritabanına bağlanmanız gerekmektedir. SQL*Plus Windows komut istemi olan SQLPLUS.EXE ile çalıştırılabilir veya $ORACLE_HOME/bin/sqlplus  kullanılarak Unix/Lunix platformları için çalıştırılabilir. Şekil 1.2 SQL*Plus’a Lunix üzerinden nasıl bağlanılacağını göstermektedir.
Şekil 1.2 SQL*Plus login in Linux

SQL Developer
SQL Developer ücretsiz bir GUI veritabanı geliştirme aracıdır. SQL Developer ile veritabanı nesneleri oluşturulabilir ve görüntülenebilir, nesnelere değişiklik yapılabilir, SQL ifadeleri çalıştırabilir, PL/SQL programları çalıştırılabilir, oluşturulabilir,  düzenlenebilir ve hata ayıklaması yapılabilir.
SQL Developer aynı zamanda Microsoft Access ve Microsoft SQL Server veritabanlarını Oracle 11g’ye taşıma özelliğine de sahiptir. Şekil1.3de SQL Developer’ın ekran çıktısı görülebilir.
Şekil 1.3  SQL Developer ekranı

Enterprise Manager Database Control
Oracle Enterprise Manager Database Control Oracle 11g veritabanı ile birlikte gelen web tabanlı veritabanı yönetim aracıdır. Bu grafiksel araç Oracle veritabanını yönetmek için özel olarak tasarlanmıştır. Enterprise Manager Database Control bir veritabanını yönetebilirken Enterprise Manager Grid Control birden fazla veritabanı veya başka servis ve uygulamaları yönetebilir örnek olarak OAS ve Oracle dışında bir uygulamayı aynı anda yönetebilir. Şekil1.4  Enterprise Manager Control  ana sayfası ve veritabanının genel görünüşü gösterilmiştir.
Şekil 1.4 Enterprise Manager Ana sayfası

                Bu bölümdeki bütün veritabanı yönetimi örneklerinde SQL komut satırını gerçekleştirmek için SQL*Plus kullanılabileceği gibi GUI araçı olan Enterpirise Manager (EM) Database Control kullanılarak da yapılabilir. Oracle 11g veritabanını yönetmeyi öğrenmeden önce gelin önümüzdeki bölümde Oracle 11g mimarisinin temellerinden başlayalım.

Oracle 11g Mimarisi
Her veritabanı yönetim ve geliştirme araçları kullanıcının veritabanı ile etkileşim kurması için eski kullanımlara izin verir. Bu araçları kullanmak, kullanıcı hesaplarının veritabanında oluşturulabilmesi ve veritabanı bağlantısının bu bağlantı ağı üzerinde olmasını sağlamayı gerektirir. Aynı zamanda kullanıcı gireceği veriler için yeterli depolama alanına sahip olmalı ve oluşabilecek donanımsal bir hata için yedekleme ve kurtarma mekanizmasına da oluşturulmalıdır. DBA olarak bütün bu görevleri ve aşağıda belirtilen görevler ile beraber yerine getirmelisiniz:
-          Veritabanı yazılımının çalışacağı donanım sunucusunun seçilmesi
-          Donanım sürücüsüne Oracle 11g yazılımının yüklenmesi
-          Oracle 11g veritabanının oluşturulması
-          Uygulama verilerini yönetmek için kullanılacak tabloların ve diğer nesnelerin oluşturulması ve yönetimi
-          Veritabanı kullanıcılarının oluşturulması ve yönetilmesi
-          Veritabanı için güvenilir yedekleme ve kurtarma işlemleri Kurulması
-          Veritabanı performansının izlenmesi ve ayarlanması

Bu kitabın kalanında size bu görevlerin ve diğer önemli Oracle veritabanı yönetimi görevlerinin nasıl yerine getirilebileceğini anlatmaya çalışacağım. Ama önce Oracle DBA olarak başarılı olmak için Oracle’in arka plan mimarisini ve mekanizmasını tamamıyla anlamanız gerekmektedir. Oracle’ın hafıza yapısı, arka plan işlemleri ve I/O aktivitelerinin arasındaki ilişkileri anlaşılması bu alanların nasıl yönetileceğini öğrenmek için kritik bir öneme sahiptir.
Oracle sunucu mimarisi 3 kategoride açıklanabilir:
-          Kullanıcı tanımlı işlemler
-          Mantıksal bellek yapıları, Oracle instance olarak adlandırılır
-          Fiziksel dosya yapıları, veri tabanını oluştururlar
Ayrıca tablo ve indeks gibi nesnelere yabancı değilseniz fiziksel yapının veritabanının mantıksal yapısına nasıl bağlandığı da anlaşılacaktır.
Veritabanı sık sık farklı platformlarda farklı şeyler göstermek için kullanıldığından kafa karıştırıcı bir terimdir; tek ortak nokta ise veri depolama ile ilgili bir şey olduğudur. Oysa Oracle da veritabanı terimi, verinin depolandığı fiziksel dosyaları temsil eder. Oturum(Instance) Bellek yapısının ve arka plan işlemlerinin bulunduğu kısımdır. Her veritabanı en az bir oturuma sahip olmalıdır.  Çoklu oturumların bir veritabanına erişimi mümkündür; Gerçek Uygulama Kümeleri konfigürasyonu (RAC-Real Aplication Clusters) gibi.  Bu makalede sadece tek oturumlu veritabanları ele alınacaktır çünkü RAC sertifika sınavının konusu değildir.

Şekil 1.5’de Oracle oturumunun ve veritabanının bütün bölümleri gösterilmiştir.
Şekil 1.5deki mimari ilk bakışta karışık gelebilir, bütün bu mimari bileşenler ilerleyen bölümlerde kullanıcı tanımlı işlemlerden başlanılarak ayrıntılı olarak açıklandıktan sonra oldukça basit olduğu görülecektir. Bu şekil Oracle 11g mimarisini öğrenmek için temel bilgi olduğu için oldukça önemlidir.



** Anahtar veritabanı bileşenleri bellek yapıları, işlem yapıları ve depolama yapılarıdır. İşlem ve bellek yapıları beraber oturumu(instance) oluştururlar. Oturum ve veritabanı ise beraber Oracle server olarak adlandırılırlar.

Şekil 1.5  Oracle 11g mimarisi

Kullanıcı İşlemleri
Kullanıcı bölümünde iki tip işleme izin verilir ilki, kullanıcının oturum ile ilişki kurması ikincisi ise veritabanı ile kullanıcı işlemleri ve sunucu işlemleridir.
Kullanıcı insan kaynakları veya sipariş alma gibi bir uygulama yaptığı zaman, Oracle kullanıcın oturuma bağlanmasına destek olmak için kullanıcı işlemi başlatır. Uygulamanın teknik mimarisine dayanarak, kullanıcı işlemleri ya kullanıcının kişisel bilgisayarında veya orta katma uygulama sunucusunda oluşturulur. Kullanıcı işlemi daha sonra oturuma bağlantı oluşturur. Oracle kullanıcı işlemi ve oturum arasındaki bağlantı ile oluşturulmuş ve devam eden işlemi çağırır. Bağlantı bir kere oluşturulursa kullanıcı oturumda bir session oluşturur.

Hiç yorum yok:

Yorum Gönder