| 
 | 
Oracle sisteminin mimarisi ve notlar - Diğer Webmaster bilgi bankası, knowledge base Webmaster Araçları
| AnaSayfa > Diğer  > Oracle sisteminin mimarisi ve notlar |  | 
 |  | Kategori | : Diğer |  | Gönderen | : Admin |  | Tarih | : 2008-10-19 |  | Puan | : 4     | Katılımcı : 3 |  | Okunma | : 5589 |  |   |   |  |   |  
 |    |   Veritabanı yapıları  
Mantıksal (logical)  
Fiziksel (physical)  
Oracle Sistem Mimarisi  
Dosyalar (files) Bellek yapıları (memory structures)  
Sistem genel alanı (System Global Area - SGA)  
Program Genel Alanı (Program Global Area - PGA)  
Görevler (processes)  
Kullanıcı (user) görevleri  
Oracle görevleri  
Oracle An ‘ı (instance)  
Veritabanı Yapıları  
Mantıksal Yapılar  
Tablespaces  
 
Veritabanı, tablespace olarak adlandırılan mantıksal saklama birimlerine bölünür. Tablespace, aralarında bir ilişki olan mantıksal yapıların gruplandırılmasında kullanılır.  
Bir tablespace online(erişilebilir) ya da offline(erişilemez) olabilir. Normalde tablespace ‘ler üzerlerindeki bilgiye erişimin yapılabilmesi için online konumundadır. Fakat bazı özel amaçlarla tablespace ‘ler offline konumuna alınabilirler.  
Şema ve Şema nesneleri  
 
Şema, nesnelerden oluşan bir derlemdir. Şema nesneleri doğrudan veritabanının verilerine karşılık gelen mantıksal yapılardır.  
 
Çizelge (Table): Oracle veritabanında verileri saklamak için kullanılan temel birimdir. Çizelgeler satırlar (rows) ve sütunlar (columns) olarak tutulurlar. Her çizelge, adı ve sütun kümesi (nitelik) ile tanımlanır. Her sütunun bir adı, türü ve genişlik ya da duyarlılığı verilir. Çizelge bir kez yaratıldıktan sonra içine geçerli satırlar konulabilir ve daha sonra da bu çizelgenin satırları sorgulanabilir, silinebilir ya da günlenebilir.  
 
Görüntü (view): Bir ya da daha fazla çizelgedeki verilerin özel bir gösterimidir. Bir görüntü, saklanmış bir sorgu (stored query) olarak da düşünülebilir. Görüntüler, gerçekte veri içermezler. Verilerini, temel çizelgeler (base tables) olarak adlandırılan çizelgelerden ya da başka görüntülerden türetirler. Görüntüler, çizelgeler gibi, üzerlerinde bazı sınırlamalarla ekleme, silme, günleme ve sorgulama işlemlerine izin verirler. Görüntü üzerinde gerçekleştirilen tüm işlemler, görüntünün temel tablolarını da etkiler.  
 
Seriler (sequences): Sequence, veritabanı çizelgelerinin numerik sutunları için biricik (unique) numaralar üretir. Çizelge satırları için otomatik olarak biricik numaralar oluşturmaya yarar. Sıra numaraları çizelgelerden bağımsızdır. Bu yüzden aynı sequence faklı çizelgelerce kullanılabilir.  
 
Program birimleri (program units): Bu terim, yordam ve işlev (procedure and function) ile paketler (package) için kullanılır.  
 
Yordam ve işlev: Belirli bir görevin yapılabilmesi için SQL ve PL/SQL deyimlerinin çalıştırılabilir bir birim halinde gruplandırılmasıdır.  
paket:(package): İlgili yordamların, işlevlerin ve başka paketlerin veritabanı içinde bir birim olarak saklanması ve kılıflanması için bir yöntem sağlar.  
 
Eşanlamlılar (synonyms): çizelge, görüntü, sequence ya da bir program birimi bir takma addır (alias). synonym ‘in kendisi bir nesne değildir, sadece gerçek nesneye bir referanstır. Şu amaçlarla kullanılır;  
- Nesnenin gerçek adını ve sahibini gizlemek amacıyla,  
- Nesneye, herkese açık (public) bir erişim sağlamak için,  
- Uzak veritabanlarındaki nesnelere şeffaf bir erişim sağlamak için,  
- SQL deyimlerini basitleştirmek için.  
 
index, cluster ve hash cluster : çizelgelerle ilgil seçimlik ve veri erişimindeki performansı artırmaya yönelik yapılardır.  
 
index: Aranan bilginin nerede olduğunun anahtar (key) değerinden yararlanılarak hızlıca bulunabilmesini sağlar. Mantıksal ve fiziksel olarak veriden bağımsızdır. Bir index, diğer index ‘leri ya da çizelgeleri etkilemeksizin yok edilebilir ya da yaratılabilir.  
 
cluster: Aralarında ilişki olan verilerin disk ortamın fiziksel olarak ardışık olarak tutulmasını ve bu sayede disk erişim süresinde iyileştirme sağlar.  
 
hash cluster(anahtarlama işlevi): Saklanacak verinin yerinin bir hash işlevi tarafından bulunduğu cluster yapısıdır. Hash işlevinden aynı sonucu veren veriler fiziksel olarak beraber saklanır.  
 
database links: Bir veritabanından diğerine bir yol tanımlayan bir nesnedir.  
Data Block, Extent ve Segment  
 
Oracle datablock: Veritabanındaki verilerin saklandığı enküçük birimdir. Bir veri bloğu disk üzerinde belirli bir veritabanı alanına karşılık gelir ve bir bloğun kaç baytdan oluştuğu bilgisi, veritabanı yaratılırken verilir. extent: Ardışık olarak sıralanmış veri bloğu sayısıdır. segment: Belirli bir mantıksal yapı için ayrılmış extent ‘lerin kümesidir (data segment, index segment, rollback segment, temporary segment gibi). Fiziksel Yapılar Oracle veritabanı, bir ya da daha fazla kontrol dosyasından, veri dosyalarından ve adları kontrol dosyalarında bulunan redo log dosyalarından oluşur. Fiziksel Yapı Tanımı Veri Dosyaları (Data Files) Tüm veritabanı verilerini içerir. Mantıksal yapılar (table, index..) veri dosyaları içinde fiziksel olarak saklanır. Redo Log Dosyaları (Redo Log Files): Kurtarma amacıyla kullanılmak üzere, veritabanına yapılan tüm değişiklikleri tutar. Kontrol Dosyaları (Control Files): Veritabanının fiziksel yapısını ve durumunu kaydede  
 
Dosyalar (files)  
Veri Dosyaları (Data Files)  
Oracle veritabanı bir ya da daha fazla veri kütüğünden oluşur. Veri dosyaları;  
 
Veritabanının kendisi hakkındaki bilgiyi saklayan veri sözlüğünü (data dictionary) ve kullanıcı verilerini içerir. Sql*Plus ya da Sql*DBA kullanılarak SQL deyimleri yardımıyla yaratılabilir ve mantıksal Oracle bloklarına bölünebilir.  
 
Oracle, gerekli alanı işletim sistemi tarafından yaratılırken ayırılan büyük ve sabit boylu dosyalar kullanır. Her dosya, çizelge (table) ya da dizin (index) gibi bir çok nesne içerir. Dosya alanlarının yönetimi, veritabanı yöneticisinin (Database Administrator-DBA) başlıca görevlerinden biridir.  
 
Günlük Dosyaları (Redo Log Files) Günlük dosyaları; veritabanında yapılan değişiklerin tutulduğu dosyalardır. Döngüsel bir biçimde yazılır gruplar halinde yapılandırılır. normal olamayan bir kapanış (abnormal shutdown) ya da sonra medya arızasından (media failure) sonra kurtarma (recovery) amaçlı kullanılır. Kullanıcı tarafından doğrudan okunamaz. SQL deyimleri ile oluşturulur.  
 
Çoklanmış (multiplexed) Günlük Dosyaları Enaz iki tane redo log grubu olmalıdır. Redo log dosyaları için önerilen konfigürasyon her grup için herbiri farklı disklerde olan enaz iki üye gerektirir. Grup üyeleri aynı zamanda günlenir ve her grupta aynı sayıda üye vardır. Bir grubun tüm üyeleri aynı bilgiyi taşır.  
 
Kontrol Dosyaları (Control Files)  
Kontrol dosyası, veritabanının yapısını tarif eden küçük bir ikili (binary) dosyadır. Bu dosya;  
 
- veritabanının açılması ve ona erişilmesi için gereklidir.  
- veritabanı açıldığında Oracle ‘ın üzerine yazabilmesi sağlanmalıdır.  
- tüm veri ve günlük dosyalarını tanımlar.  
- veritabanının adını saklar.  
- kurtarma için gerekli olan zamanuyumlama bilgisini sağlar.  
- veritabanının yaratılması esnasında yaratılır.  
 
Güvenlik için her biri farklı diskler üzerinde olan en az iki tane kontrol dosyası olmalıdır. Tüm kontrol dosyaları aynı bilgiyi içerir. Eğer biri kaybolacak olursa diğerleri kullanılır durumda kalacaktır. Kontrol dosyasının öngörülen ismi işletim sistemine bağlıdır.  
 
Bellek Yapıları (memory structures)  
Sistem Genel Alanı (System Global Area - SGA)  
SGA ‘nın üç tane bileşeni vardır;  
 
 
Database Buffer Cache Veritabanının yakın zamanlarda kullanılan veri bloklarının tutulduğu buffer ‘ların kümesidir. Bu buffer ‘lar, değişikliğe uğramış fakat diske henüz yazılmamış verilere sahip olabilirler. Sık kullanılan verileri tuttukları için de diske erişimi azaltıp performansı artırırlar.  
 
Redo Log Buffer Veritabanında yapılan değişikliklerin tutulduğu buffer ‘lardır. redo log buffer ‘larında tutulan redo girişleri kurtarma gerekli olduğu anda kullanılmak üzere redo log dosyalarına yazılırlar.  
 
Paylaşılmış SQL Alanı (Shared SQL Area) ve Paylaşılmış Havuz (Shared Pool) Paylaşılmış SQL Alanı, Oracle ‘ın özel SQL deyimlerini çalıştırmak için kullandığı bilgileri içerir. Bir SQL sorgusu işletilmeden önce ayrıştırılır ve bu sorgunun çalıştırılması için bir çalışma planı hazırlanır. İşletilen sorgular bu alanda saklanır. Aynı sorgu birkez daha işletilmek istenirse bu çalıştırma planı doğrudan uygulanabilir. Paylaşılmış SQL Alanı, SGA içindeki Paylaşılmış Havuz ‘un bir parçasıdır.  
 
Paylaşılmış Havuz;  
- SQL ve PL/SQL deyimlerini  
- SQL ve PL/SQL deyimlerinin ayrıştırılmış hallerini  
- SQL ve PL/SQL deyimleri için çalıştırma planlarını  
- Veri sözlüğü (data dictionary) önbelleğini (cache) içerir.  
 
Program Genel Alanı (Program Global Area - PGA) PGA, tek bir kullanıcı yada sunumcu görevi hakkındaki verileri yada kontrol bilgisini içeren yazılabilir fakat paylaşılmamış bir bellek alanıdır. Kullanıcı görevi Oracle veritabanına bağlandığı ve bir oturum (session) başlatığı zaman bu alan bellekte ayrılır (allocate). PGA yığıt alanı (stack space) oturum değişkenlerini ve dizileri tutmak için ayrılan bellek alanıdır. Kullanıcı oturum verileri (user session data) oturum için fazladan bellek alanıdır.  
 
Görevler (processes) Kullanıcı ve Sunumcu Görevleri (User and Server Processes) UNIX sistemlerinde, kullanıcı bir uygulama programı çalıştırdığında Oracle bir kullanıcı görevi yaratır. Oracle ayrıca bağlanacak kullanıcı görevlerine hizmet verebilmesi için bir sunumcu görev yaratır. Sunumcu görev kullanıcı görevleri ile iletişim kurar.  
Sunumcu Görev;  
- SQL deyimlerini ayrıştırır ve çalıştırır.  
- diskten veri bloklarını okur ve SGA ‘nın paylaşılmış alanına getirir.  
- SQL deyiminin sonuçlarını kullanıcı görevine döndürür.  
- Görevin Adı Tanımı ,Ayrıştırma (Parse) Sözdizim doğruluğu, erişim gizliliği, nesne çözünürlüğü ve eniyileme kontrolünü yapar. Ayrıştırım ağacını (Parse Tree) oluşturur.  
- Çalıştırma (Execute) Ayrıştırım ağacını veriye uygular ve gereken fiziksel okuma ve yazmaları gerçekleştirir.  
- Getirme (Fetch) SELECT deyiminin işletimi sırasında veriyi kullanıcıya geçirir.  
 
DBWR Görevi  
- DBWR görevi, kullanıcı görevlerinin her zaman boş bellek alanu bulabilmeleri için database buffer cache ‘i yönetir.  
DBWR Görevi;  
- Değişikliğe uğramış tüm verileri veri dosyalarına yazar.  
- Yakın zamanda kullanılan veri bloklarını bellekte tutmak için LRU (Least Recently Used) algoritmasını kullanılır.  
- Giriş/çıkış işlemlerini eniyileştirebilmek için bazı yazma işlerini erteler.  
 
Veri, erişilmeden önce sunumcu (server) görev tarafından mutlaka database buffer cache içine getirilmelidir. Sunumcu görev sorguları işlemek için SGA içindeki paylaşılmış belleği kullanır.  
 
Transactionların Günlüğe İşlenmesi (Log Transactions)  
Oracle veritabanında yapılan tüm değişiklikleri redo log buffer içine kaydeder. LGWR (Log Writer) arka plan görevi redo log buffer içindeki bilgiyi diske yazar.  
 
LGWR Görevi  
LGWR, redo log buffer ‘larını şu durumlar oluştuğunda diske yazar;  
- Commit görüldüğünde  
- Redo log buffer doluluğu eşik değerine ulaştığı zaman.  
- DBWR checkpoint için buffer blokların temizlemeye gerek duyarsa  
- Time-out görülürse  
Her Oracle instance ‘ı için bir tane LGWR görevi vardır. Bir transaction redo log dosyasına işlenmeden commit edilmiş sayılmaz.  
DBWR görevi, veri bloklarını veritabanına geri yazmadan önce yapılan değişiklikleri korumak amacıyla LGWR görevine redo log buffer ‘larını boşaltması sinyalini gönderir.  
 
Arch Görevi (arşivleyici) ARCH (archive - arşiv) görevi aslında seçimlik bir arka plan görevi olmasına rağmen bir çok sistem için özellikle tavsiye edilir. Eğer bu görev çalıştırılıyorsa veritabanı ARCHIVELOG kipinde çalışıyor demektir. Bu seçenek;  
- Tablespace ‘lerin çevrim-içi (on-line) yedeklenmesine  
- Medya failure ‘dan çevrim-içi kurtarmaya  
- Günlük dosyalarının otomatik olarak arşivlenmesine izin verir.  
- ARCH görevi, günlük dosyalarının kopyalarını, yerleri daha önce belirlenmiş disk yada teyp birimleri üzerine çıkarır.  
 
PMon (Process Monitor) ve SMon (System Monitor) Görevleri  
PMON  
- Anormal bir şekilde kesilen bağlantıları temizler.  
- Commit edilmemiş değişiklikleri eski haline getirir (rollback).  
- İşletimi kesilen görevin tuttuğu kilitleri kaldırır.  
- Çakılan görev için ayrılan SGA kaynaklarını serbest bırakır.  
- Kilitlenmeleri (deadlock) otomatik olarak yakalar ve işlemi geri döndürerek (transaction rolling back) çözümler.  
 
SMON  
- Otomatic instance kurtarmayı gerçekleştirir.  
- Geçici segment alanını geri elde eder.  
- Kontrol dosyasının sürekliliğini sağlar.  
- Sistemde kullanılabilir durumdaki serbest alanın kaydını tutar.  
 
DBA bu görevlerin hızı ya da uyarılma aralığı üzerinde bir kontrole sahip değildir. DBWR ve LGWR gibi bu iki görev de instance çalıştırıldığında hazır olmalıdır.  
 
Diğer Arka Plan Görevleri  
- CKPT checkpoint görevi, LGWR üzerindeki yükü azaltmak için kullanılır.  
- RECO kurtarıcı (recoverer) görev, çakılmış dağıtık transaction ‘ları çözümler.  
- Snnn multi-threaded sunumcuda kullanılan paylaşılmış sunumcu görevleri.  
- Dnnn multi-threaded sunumcuda kullanılan dispatcher görevleri.  
- SNPn Şip-şak (snapshot) tazeleyici görevler.  
- LCKn parallel server seçimliği kullanıldığında instance ‘lar arası kilitlemeyi kontrol eden görev.  
- Oracle An ‘ı (Oracle Instance)  
 
Oracle her başlatıldığında;,  
- Sistem Genel Alanı (System Global Area - SGA) olarak adlandırılan paylaşılmış bir bellek alanı bellekte ayrılır.  
- Oracle arka plan görevleri başlatılır.  
- Bellek alanları ve arka plan görevlerinden oluşan bu bileşim Oracle instance olarak adlandırılır.  
- Mutlaka olması gereken dört tane arka plan görevi vardır (DBWR, LGWR, PMON and SMON). Bunlardan başka görevler de vardır fakat kullanımları seçimliktir.  
- Bir instance sadece bir veritabanını açabilir.  
- Bir instance ‘ın başlatılabilmesi için mutlaka bir veritabanı olması gerekmez.  
- Eğer Parallel Server seçeneği kullanılırsa, veritabanı birden fazla instance tarafından açılabilir.  
- Kullanıcı ve sunumcu görevleri Oracle instance ‘ın bir parçası olarak tanımlanmazlar.  
 
 
Parametre Dosyası (Parameter File) İnstance karakteristiklerini belirleyen dosyadır. Parametre dosyası;  
- Gerektiğinde DBA tarafından serbestçe düzenlenebilen küçük bir metin dosyadır.  
- İnstance başlatıldığında salt-okunurdur.  
- Sık sık init.ora dosyasına karşılık gelir.  
- Parametre dosyası kontrol dosyasının adını ve yerini belirler.  
- Eğer parametre dosyasında herhangi bir değer belirtilmemişse öngörülen (default) değerler kullanılır.  
 
Parametre Tanımı  
- SHARED_POOL_SIZE Paylaşılmış SQL ve PL/SQL deyimleri için kullanılacak alanın bayt olarak boyu  
- DB_BLOCK_SIZE Tek bir veri bloğu ve veritabanı buffer ‘ının bayt olarak boyu.  
- DB_BLOCK_BUFFERS Herbiri DB_BLOCK_SIZE boyundaki veritabanı buffer ‘larının sayısı. (database buffer cache için ayrılan toplam alan :  
- DB_BLOCK_SIZE * DB_BLOCK_BUFFERS)  
- LOG_BUFFERS Redo log buffer ‘ı için ayrılan baytların sayısı  
 
# Example INIT.ORA file  
# $Header: init.ora 7020100.1.1120.4 95/07/07 09:54:09 rdhoopar Generic....  
#-----------------------------------------------------------------------------------------  
# -------Installation/Database Size------  
# SMALL MEDIUM LARGE  
# Block 2K 4500K 6800K 17000K  
# Size 4K 5500K 8800K 21000K  
 
#-----------------------------------------------------------------------------------------  
 
db_name = Oracle72  
 
rollback_segments = (rbs01, rbs02, rbs03)  
 
db_block_buffers = 200 # SMALL  
# db_block_buffers = 550 # MEDIUM  
# db_block_buffers = 3200 # LARGE  
 
shared_pool_size = 3500000 # SMALL  
# shared_pool_size = 6000000 # MEDIUM  
# shared_pool_size = 9000000 # LARGE  
log_checkpoint_interval = 10000  
 
processes = 50 # SMALL  
# processes = 100 # MEDIUM  
# processes = 200 # LARGE  
 
log_buffer = 8192 # SMALL  
 
# log_buffer = 32768 # MEDIUM  
 
# log_buffer = 163840 # LARGE  
control_files = (/disk6/oracle/dbs/ctrl1oracle72.ctl,  
/disk6/oracle/dbs/ctrl2oracle72.ctl,  
/disk6/oracle/dbs/ctrl3oracle72.ctl)  
 
background_dump_dest = /disk6/oracle/rdbms/log  
 
core_dump_dest = /disk6/oracle/dbs  
 
user_dump_dest = /disk6/oracle/rdbms/log  
#log_archive_dest = /disk6/oracle/dbs/arch/arch.log  
#db_block_size =  
 
 
Database Buffer Cache Diskten okunan veri bloklarının kopyalarını tutar.  
Notlar:  
İnstance ‘a bağlanan tüm Oracle kullanıcıları Database Buffer Cache içindeki bellek alanını kullanırlar.  
blok boyu parametre dosyasındaki DB_BLOCK-SIZE parametresi ile belirlenir. Bellekte tutulacak yastık alan (buffer) sayısı ise DB_BLOCK_BUFFERS ‘dır.  
 
Kontrol Noktaları (Checkpoints) Checkpoint sırasında DBWR, database buffer cache içindeki tüm dirty buffer ‘ları diske yazar.  
(dirty buffer : Değişikliğe uğramış fakat diske yazılmamış)  
 
Checkpoint şu durumlarda görülür;  
- Her günlük anahtarlanmasında (Log Switch)  
- Belirlenmiş bir zaman aralığı sonunda  
- Belirlenmiş sayıda işletim sistemi bloğu redo log dosyalarına yazılmasından sonra  
- DBA tarafından zorlanması durumunda  
- Normal yada immediate shutdown sırasında  
- Ablespace, çevrim-dışı (off-line) konuma getirildiğinde  
 
Bir veri bloğu database buffer cache içinde çok uzun süre kalabilir ve bu süre zarfında birçok değişikliklere mazur kalabilir. Yani commit edilen bir kayıt hala diske yazılmamış olabilir. Fakat tüm commit edilmiş işlemler güvendedir çünkü LGWR onların kaydını redo log dosyalarında tutar.  
 
Checkpoint sırasında DBWR bir önceki checkpoint ‘ten sonra değişikliğe uğramış verileri diske yazar.  
 
Eğer instance kurtarmaya ihtiyaç duyarsa Oracle sadece son checkpoint ‘ten sonra yazılan redo log kayıtlarını dikkate alacaktır. Çünkü checkpoint, daha önceki değişiklerin veri dosyalarına yazıldığını garanti eder.  
 
Trace ve Alert Dosyaları Oracle instance çalışıyorken bir hata oluştuğu zaman, bu hata ile ilgili mesajlar alert dosyasına yazılır. Eğer hata sunumcu ya da arka plan görevlerince yakalanırsa, hata ile ilgili bilgiler trace dosyasına boşaltılır.  
 
Alert dosyası mesaj ve hataların kronolojik olarak tutluduğu bir dosyadır. Şunları içerir;  
- Tüm içsel (internal), block bozulma (corruption) ve kilitlenme (deadlock) hatalarını  
- Yönetim türü işlemleri (DML) ve sunumcu yönetici deyimlerini (startup, shutdown…)  
- Veritabanı ve instance başlatıldığı andaki parametre değerlerini  
- Alert dosyası BACKGROUND_DUMP_DEST parametresi ile belirtilen konumda bulunur.  
 
Bu dosyanın günlük olarak kontrol edilmesi problerin daha da ciddileşmeden çözülebilmesi açısından çok önemlidir.  
 
Trace dosyaları eğer bilgi arka plan görevi tarafından yazılmışsa BACKGROUND_DUMP_DEST, sunumcu görevi tarafından yazılmışsa USER_DUMP_DEST ile belirtilen konumlarda bulunur.  
 
Trace günlükleme SQL_TRACE parametresinin TRUE ya da FALSE olmasına göre yapılır ya da yapılmaz Aşağıdaki deyim trace dosyalarının yazılmasını sağlar.  
SQL> alter session set sql_trace true;  
SQL*Plus, SQL komutları ve PL/SQL bloklarını işletmeyi ve bunun yanında veritabanı üzerinde birçok  
işlemin yapılmasını sağlayan bir programdır.  
 
SQL*Plus ‘ı kullanarak yapılabilecek işlemler;  
SQL komutlarını ve PL/SQL bloklarını girme, düzenleme, saklama, geri getirme ve çalıştırma  
Sorgu sonuçlarını bir rapor düzeninde formatlayabilme  
Herhangi bir tablo için sutun tanımlarını listeleyebilme  
Veritabanındaki verilere ulaşıp bunları kopyalayabilme  
Uç kullanıcılara mesajlar gönderip bunlardan gelen cevapları kabul edebilme  
Temel Kavramlar Komut (command) SQL*Plus yada Oracle ‘dan yapması istenen  
Blok (block) Yordamsal bir mantık içinde birbiriyle ilişkili SQL ya da PL/SQL komutlar grubu  
Çizelge (table) Oracle ‘daki temel saklama birimi  
Sorgu (query) Bir ya da daha fazla çizelgeden bilgi getiren SQL komut (Select)  
Sorgu sonucu Sorgu sonucu getirilen veri (query result)  
Rapor (report) SQL*Plus komutları yardımıyla biçimlenmiş sorgu sonuçları  
SQL*Plus ‘ın Başlatılması  
UNIX sisteme girdikten sonra komut iletisinden aşağıdaki komutu girerseniz, sizden kullanıcı kodunuz  
ve parolanız istenecektir.  
$ sqlplus  
SQL*Plus: Release 3.2.3.0.0 - Production on Wed Aug 13 10:25:37 1997  
Copyright © Oracle Corporation 1979, 1994. All rights reserved.  
Enter user-name: scott  
Enter password:  
Connected to:  
Oracle7 Server Release 7.2.3.0.0 - Production Release  
SQL> _  
 
Artık sisteme girdiniz (logging on). “SQL>” komut iletisi SQL*Plus ‘ın sizin komutlarınızı kabul edip  
işletmeye hazır olduğunu gösterir. Şimdi bu komut satırından SQL komutlarını ya da PL/SQL bloklarını  
işletebilirsiniz. SQL*Plus ‘ı daha çabuk başlatmak için şu komutu kullanabilirsiniz;  
$ sqlplus scott/tiger  
Connected to:  
Oracle7 Server Release 7.2.3.0.0 - Production Release  
SQL> _  
SQL*Plus ile işinizi bitirdikten sonra işletim sistemine geri dönmek için exit komutunu kullanabilirsiniz.  
SQL> exit  
Disconnected from Oracle7 Server Release 7.2.3.0.0 - Production Release  
$ _  
Komutların Girilmesi ve Çalıştırılması  
 
 
 
Komutların girilmesi  
Bilgisayarınızın imleci (cursor) komut iletisinden sonra görünür. İmleç, sizin klavyeden gireceğiniz  
karakterin ekranda görüneceği konumu gösterir. SQL*Plus ‘dan yapmasını istediğiniz şeye karşı gelen  
komutu yazmanız gerekir. Genellikle komutlarla diğer kelimeler arasında boşluk ya da tab karakterleri  
olur.Bunların sayısı önemsizdir. Komut iletisinden girebileceğiniz üç tip komut vardır;  
 
SQL komutları  
PL/SQL blokları özel amaçlı SQL*Plus komutları (sorgu sonuçlarını formatlama, seçenekleri kurma) yardım  
sağlama. Herhangi bir SQL*Plus komutu hakkında yardım bilgisi almak için komut iletisinden HELP komutu  
ve ardından hakkındayardım istenen komutun adını girmeniz gerekir.  
SQL> help komut_adı  
Not : Eğer 2 "HELP not accessible" mesajını aldıysanız bu konuyu sistem yöneticinize bildiriniz.  
 
SQL komutlarının çalıştırılması  
Örnek veri tabanımızda yer alan tabloları kullanarak bir sorgu yazmaya çalışalım. Kazancı 2500$ ‘dan  
az olan çalışanları bulmaya çalışalım. Komut iletisinden komutun ilk satırını girdikten sonra return tuşuna  
basılırsa, SQL*Plus ikinci satır anlamına gelen 2 uyarısını gösterecektir. ; noktalı virgül komutun bittiğini  
gösterir. Bundan sonra SQL*Plus, komutu işletmeye başlayacaktır.  
SQL> select empno, ename, job, sal /* seçilecek olan nitelikler */  
2 from emp where sal <2500;  
Komutlarınıza eklemek istediğiniz açıklamaları (comment) "/* … */" şeklinde yazabilirsiniz.  
Sonuçların ve getirilen komutların sayısının gösterilmesinden sonra SQL*Plus tekrar komut iletisini gösterir.  
SQL*Plus Komut Sözdizimini (Syntax) Anlama  
 
 
SQL komutlarınızı istediğiniz sayıda satıra bölebilirsiniz. Fakat en anlamlısı satırlarınızı mantıksal bütünlük  
içeren gruplar halinde düzenlemenizdir. (Select, Where, Group By satırı gibi…). Aşağıdaki tüm sterimlerdeki  
sorgular özdeştir.  
 
SQL> select empno, ename, job, sal from emp where sal  
select empno, ename, job, sal  
2 from emp where sal  
select empno, ename, job, sal  
2 from emp  
3 where sal  
SQL komut satırı üç şekilde sonlanabilir;  
Noktalı virgül (semicolon ";") ile. SQL*Plus ‘a sizin komutu çalıştırmak istediğinizi söyler.  
Bölme işaret (slash "/") ile. Son girilen komutu çalıştırmak istediğinizi söyler.  
Boş satır (blank line) ile. Komuta bir sonraki satırdan devam etmek istediğinizi söyler.  
PL/SQL bloklarının çalıştırılması  
SQL*Plus içerisinden PL/SQL bloklarını da çalıştırabilirsiniz. SQL*Plus, PL/SQL yordamlarını sanki SQL  
deyimlerini işletiyormuş gibi düşünür. PL/SQL bloklarını bitirmek için en son satır olarak nokta “.”kullanılır.  
Aşağıda örnek bir PL/SQL bloğu biçimsel olarak verilmiştir.  
SQL> declare  
2 değişken_adı değişken_türü ;  
3 begin  
4 SQL _komutları ;  
5 end;  
6 .  
İşletim sistemi komutlarının çalıştırılması  
Üzerinde çalıştığınız işletim sisteminin komutlarını SQL*Plus komut iletisinden çalıştırabilir ya da geçici bir  
süre için işletim sisteminin kabuğuna (shell) çıkabilirsiniz.  
SQL> host [komut]  
Aşağıda pwd (print working directory) komutunun iki şekilde nasıl çalıştırılabileceği gösterilmiştir.  
SQL> host pwd ; komut doğrudan SQL*Plus ‘ın içinden çalıştırılıyor.  
/disk6/oracle/ogrenci  
SQL> host ; işletim sistemi kabuğuna çıkılıyor.  
$ pwd ;komut uygulanıyor.  
/disk6/oracle/ogrenci  
$ exit ;SQL*Plus ‘a geri dönülüyor.  
SQL> _ ;tekrar SQL*Plus ‘tayız.  
İşletim sistemi kabuğuna çıkmak, çalıştırılacak komut sayısı birden fazlaysa daha anlamlı olmaktadır. Ayrıca kabuğa çıktıktan sonra geri dönmek için SQL*Plus tekrar çalıştırılmamalı, bunun yerine exit komutu  
kullanılmalıdır.  
Çizelge Tanımlarının Listelenmesi  
Verilen bir çizelgedeki niteliklerin tanımlarını SQL*Plus ‘ın describe komutunu kullanarak görebilirsiniz  
(Kısaca desc olarak kullanılabilir.).  
SQL> desc dept  
Name Null? Type  
------------------------------- -------- ----  
DEPTNO NOT NULL NUMBER(2)  
DNAME VARCHAR2(14)  
LOC VARCHAR2(13)  
 
Varolan Çizelgelerin ve Görüntülerin Listelenmesi  
Bunun için sistemde hazır olarak bulunan tab adlı çizelge kullanılır.  
 
SQL> select * from tab;  
TNAME TABTYPE CLUSTERID  
------------------------------ ------- ----------  
CUSTOMER TABLE  
DEPT TABLE  
EMP TABLE  
SALES VIEW  
SALGRADE TABLE  
 
5 rows selected.  
Hata mesajlarının yorumlanması  
SQL*Plus bir hata yakaladığı zaman sizi uygun bir hata mesajı ile uyaracaktır. Mesela olmayan bir çizelgeden sorgulama yapmak isterseniz;  
SQL> select * from ta;  
select * from ta  
*  
ERROR at line 1:  
ORA-00942: table or view does not exist  
mesajını alırsınız. ORA hatanın türü, 00942 ise numarasıdır.  
 
Hata ile ilgili ayrıntılı açıklamaları Messages and Codes elkitabında bulabilebileceginiz gibi oerr  
programını da kullanabilirsiniz.  
$ oerr hata_türü numarası  
 
Komutlar Üzerinde Yapılabilen İşlemler  
 
 
SQL Buffer  
Son girilen SQL komutunun saklandığı bellek alanıdır. Girilen komut, bir yenisi girilene dek burada saklanır. Yani eğer son komut üzerinde bir başka işlem yapmak istiyorsanız, komutun tamamını yeni-  
den girmeniz gerekmeyebilir.  
komut kısaltma amacı APPEND metin A metin satırın sonuna metini ekler  
CHANGE /eski/yeni C /eski/yeni eskiyi yeni ile değiştirir  
CHANGE /metin C /metin satırdan metini siler  
CLEAR BUFFER CL BUFF tüm satırları siler  
DEL yok satırı siler  
INPUT I bir ya da daha fazla satır ekler  
INPUT metin I metin metini içeren bir satır ekler  
LIST L SQL buffer ‘ındaki tüm satırları listeler  
LIST n L n ya da n n numaralı satırı listeler  
LIST * L * aktif satırı listeler  
LIST LAST L LAST son satırı görüntüler  
LIST m n L m n m ve n arasındaki satırları listeler  
Çalışanlar tablosundan 10 numaralı bölümde çalışan kişilerin adlarını ve maaşlarını sorgulamak isteyelim.  
SQL> select deptno,ename, sal  
 
2 from emp  
3 where deptno = 10;  
DEPTNO ENAME SAL  
---------- ---------- -------  
10 KING 5000  
10 CLARK 2450  
10 MILLER 1300  
En son girdiğimiz SQL deyimi SQL buffer içinde tutulmaktadır. Bu deyimi list komutu ile görebiliriz.  
 
 
SQL> list  
 
1 select deptno,ename, sal  
2 from emp  
3* where deptno = 10  
Karakteri aktif olan satırı göstermektedir. İstediğimiz bir satırı görmek için list komutundan sonra  
ilgili satırın numarasını vermemiz yeterli olacaktır. Bu sayede istediğimiz satırı aktif satır haline getirebiliriz.  
Şimdi sırasıyla birinci satırdaki bir değişikliği nasıl yaptığımıza bakalım. Sorgumuzu yanlış girdiğimizi  
varsayalım.  
SQL> select deptno,enm, sal  
2 from emp  
3 where deptno = 10;  
 
1 select deptno,enm, sal  
2 from emp 3* where deptno = 10  
select deptno,enm, sal  
*  
ERROR at line 1:  
ORA-00904: invalid column name /* tablomuzda enm diye bir nitelik yok */  
Sorgumuzda yer alan enm nitelik değerini ename olarak değiştirelim. Ve sorgumuzu tekrar çalıştıralım.  
Bunun için önce ilgili satırı aktif hale getirmek gerekmektedir.  
 
SQL> list1  
1* select deptno,enm, sal  
 
SQL> change/enm/ename  
1* select deptno,ename, sal  
 
SQL> run  
1 select deptno,ename, sal  
2 from emp  
3* where deptno = 10  
DEPTNO ENAME SAL  
---------- ---------- ----------  
10 KING 5000  
10 CLARK 2450  
10 MILLER 1300  
Çalışanları, aldıkları maaşa göre sıralı listelemek istersek, yazdığımız sorgunun sonuna order by sal  
komutunu eklememiz gerekecektir. Bunu yapmak için sorguyu yeniden yazmaya gerek yoktur.  
SQL> input /* aktif satırdan sonra yeni bir satır ekler */  
4 order by sal;  
 
DEPTNO ENAME SAL  
---------- ---------- ----------  
10 MILLER 1300  
10 CLARK 2450  
10 KING 5000  
 
SQL> list  
1 select deptno,ename, sal  
2 from emp  
3 where deptno = 10  
4* order by sal  
Sonuçları azalan sırada (descending) görmek istersek order by kalıbının sonuna desc kelimesini  
eklememiz gerekir.  
SQL> append desc /* aktif satır numarası zaten 4 idi */  
4* order by sal desc  
SQL> list4  
4* order by sal desc  
SQL> run  
1 select deptno,ename, sal  
2 from emp 3 where deptno = 10  
4* order by sal desc  
 
DEPTNO ENAME SAL  
---------- ---------- ----------  
10 KING 5000  
10 CLARK 2450  
10 MILLER 1300  
Şimdi sıralama ile ilgili bu dördüncü satırı silelim.  
 
SQL> list 4 /* satırı aktifleştir */  
SQL> del /* sil */  
SQL> list  
1 select deptno, ename, sal  
2 from emp  
3* where deptno = 10  
SQL buffer 'daki deyimleri belli bir satır aralığıda da listelemek mümkündür.  
SQL> list 1 2 /* 1. ve 2. satırları listele */  
1 select deptno, ename, sal  
2* from emp  
Komutların Saklanması  
SQL buffer içindeki deyimleri save komutunu kullanarak bir dosyaya yazdırmak mümkündür. Save  
dosya_adı komutu çalıştırıldığında, SQL buffer 'ın içeriği uzantısı .SQL olan dosya_adı isimli dosyaya  
kaydedilir.  
SQL> save deptinfo  
Created file deptinfo  
 
SQL> host ls -l dep*.*  
rw-r—r-- 1 oracle dba 55 Agu 14 10:00 deptinfo.sql  
SQL buffer 'ın içeriğinin temizlenmesi  
SQL> clear buffer  
buffer cleared  
SQL> list  
No lines in SQL buffer.  
Komut dosyalarına açıklama satırlarının eklenmesi  
Yazdığınız komut dosyalarına ekleyeceğiniz açıklama satırları, bu dosyaların daha sonra da kolayca  
anlaşılmasını sağlayacaktır. Bu işlem üç şekilde gerçekleştirilebilir.  
SQL*Plus ‘ın REMARK komutu ile  
SQL komut ayıraçları ile, /* … */  
ANSI/ISO karakterleri ile, --  
REMARK SQL*Plus ‘ı öğrenmek için verilen örnekler tekrarlanmalıdır.  
/* SQL*Plus ‘ı öğrenmek için verilen örnekler tekrarlanmalıdır. */  
-- SQL*Plus ‘ı öğrenmek için verilen örnekler tekrarlanmalıdır.  
Dosyalardaki komutların yeniden kullanılması  
Daha önce save komutu ile sakladığımız ya da herhangi bir editor yardımıyla oluşturduğumuz SQL  
deyimlerin get dosya_adı komutunu kullanarak SQL buffer 'a getirebiliriz.  
SQL> get deptinfo  
1 select deptno, ename, sal  
2 from emp  
3* where deptno = 10  
SQL deyimlerini toplu işlem (batch) olarak çalıştırmak istersek start dosya_adı komutundan  
yararlanabiliriz.  
SQL> start deptinfo  
 
DEPTNO ENAME SAL  
---------- ---------- --------  
10 KING 5000  
10 CLARK 2450  
10 MILLER 1300  
 
ya da @dosya_adı komutu kullanılabilir.  
SQL> @deptinfo  
 
DEPTNO ENAME SAL  
---------- ---------- ----------  
10 KING 5000  
10 CLARK 2450  
10 MILLER 1300  
Dept tablosunun niteliklerinin neler olduğuna bakalım.  
SQL> desc dept  
Name Null? Type  
------------------------------- -------- -----  
DEPTNO NOT NULL NUMBER(2)  
DNAME VARCHAR2(14)  
LOC VARCHAR2(13)  
 
Bölüm numaralarını ve adlarını sorgulayalım.  
SQL> select deptno, dname  
2* from dept  
 
DEPTNO DNAME  
---------- --------------  
10 ACCOUNTING  
20 RESEARCH  
30 SALES  
40 OPERATIONS  
SQL buffer içeriğini daha önce var olan bir dosyanın sonuna eklemek için append, üzerine yazmak içinse  
replace anahtar kelimesi kullanılır.  
SQL> save deptinfo append  
Appended file to deptinfo  
 
SQL> host cat deptinfo.sql  
select deptno, ename, sal  
from emp  
where deptno = 10  
/  
select deptno, dname  
from dept  
/  
Etkileşimli komutların yazılması  
SQL*Plus, kullanıcılara değişken tanımlama imkanı verir.  
 
SQL> DEFINE EMPLOYEE = SMITH  
SQL> DEFINE EMPLOYEE  
DEFINE EMPLOYEE = "SMITH" (CHAR)  
 
SQL> cl buff  
buffer cleared  
SQL> input  
1 select &col1, &col2  
2 from &tab  
3 ;  
Enter value for col1: deptno  
Enter value for col2: dname  
old 1: select &col1, &col2  
new 1: select deptno, dname  
Enter value for tab: dept  
old 2: from &tab  
new 2: from dept  
 
DEPTNO DNAME  
---------- --------------  
10 ACCOUNTING  
20 RESEARCH  
30 SALES  
40 OPERATIONS  
 
SQL> save sel2col  
Created file sel2col /* geçerli dizinde sel2col.sql dosyası oluşturuldu */  
Bu dosya artık start komutu ya da "@" (at) işareti ile çalıştırılabilir.  
SQL> @sel2col  
Enter value for col1: deptno  
Enter value for col2: dname  
old 1: select &col1, &col2  
new 1: select deptno, dname  
Enter value for tab: dept  
old 2: from &tab  
new 2: from dept  
 
DEPTNO DNAME  
---------- --------------  
10 ACCOUNTING  
20 RESEARCH  
30 SALES  
40 OPERATIONS  
SQL> input  
1 prompt Aradiginiz calisanin numarasini giriniz  
2 accept enumber number prompt 'Emp. No. : '  
3 select ename, job, sal  
4 from emp  
5 where empno = &enumber  
6  
SQL buffer 'daki deyimi zaten var olan bir dosya adıyla kaydetmek isteyelim.  
SQL> save sel2col  
File "sel2col.sql" already exists.  
Use another name or "SAVE filename REPLACE".  
Eğer olan bir dosyanın adını kullanmak istiyorsak komutu şu şekilde kullanmalıyız:  
SQL> save dosya_adı replace /* replace = yerini al */  
SQL> save prompt1 /* SQL buffer içeriğini prompt1.sql dosyasına yazalım */  
Created file prompt1  
SQL> @prompt1 /* ya da start prompt1 */  
Aradiginiz calisanin numarasini giriniz  
Emp. No. : 7521  
old 3: where empno = &enumber  
new 3: where empno = 7521  
 
ENAME JOB SAL  
---------- --------- ----------  
WARD SALESMAN 1250  
 
Komut dosyalarında parametre kullanımı  
Bu işlem, komutların etkileşimli çalıştırılmasına benzer olarak şu şekilde gerçekleştirilebilir. SelJob.sql  
dosyasının içeriği aşağıdaki şekilde olsun;  
select empno, ename, sal  
from emp  
where job = '&1'  
Komut çalıştırılırken dosya adından sonra girilen parametreler &1, &2 … şeklinde sıralandırılır.  
SQL> start SelJob CLERK  
old 3: where job = '&1'  
new 3: where job = 'CLERK'  
 
EMPNO ENAME SAL  
---------- ---------- ----------  
7369 SMITH 800  
7876 ADAMS 1100  
7900 JAMES 950  
7934 MILLER 1300  
Yararlı Bazı Komutlar  
Spool [dosyaAdı | off] komutunu kullanarak işlettiğiniz komutların ve sonuçlarının uzantısı .LST olan bir  
metin dosyasına yazılmasını sağlayabilirsiniz.  
SQL> spool oturum.lst  
SQL> ...  
SQL> spool off  
Set pause [on | off] “metin” komutunu kullanarak uzun çıktılar üreten sorgularınızın ekranda sayfa sayfa  
görüntülenmesini sağlayabilirsiniz.  
SQL> set pause on  
SQL> set pause “Devam için NL tuşuna basınız...”  
Pause [mesaj] komutu kullanıcının enter tuşuna basacağı ana kadar işlemi dondurur.  
 
SQL> pause Devam etmek icin ENTER tusuna basiniz...  
Devam etmek icin ENTER tusuna basiniz...  
Clear screen komutunu kullanarak çalışma ekranınızı temizleyebilirsiniz.  
SQL> clear screen  
SQL*Plus ‘ın değişken tanımlayabilme özelliğinden yararlanarak kendiniz için bir metin düzenleyici  
öngörebilirsiniz.  
SQL> DEFINE_EDITOR = pico  
SQL> edit deptinfo  
Edit komutunu kullandığınızda pico programı çalıştırılacak ve size bir belge yaratma imkanı verilecektir.  
Belgeniz üzerindeki işleminiz bitip pico programından çıktığınızda tekrar SQL*Plus ‘a dönersiniz.  
Veritabanı ve İnstance 'ın Çalıştırılıp Kapatılması (startup and shutdown)  
 
 
Veritabanı sistem yöneticisi, veritabanının açılıp kapatılmasından sorumuludur. Oracle veritabanının  
herzaman kullanıcıların erişimine açuk olmasI gerekmez. VeritabanI yöneticisi onu istediği zaman açabilir.  
eritabanı açıkken, kullanıcılar veritabanının içerdiği bilgilere erişebilirler. Kapalıyken bu işlem yapılamaz.  
Veritabanı ve instance ‘ın yönetimi için screen ve line kiplerinde çalıştırılabilen iki tane program vardır.  
Bunlar;  
SQL*DBA (Örneklerimizde kullanacağımız araç)  
Server Manager (Sadece grafik kullanıcı arabirimi ortamında - Graphic User Interface GUI)  
Startup Adımları  
SQL*DBA ‘nın çalıştırılması  
Internal olarak bağlanma  
Start up  
Instance ‘ın başlatılması  
Veritabanının mount edilmesi  
Veritabanının açılması (open)  
 
ShutDown Adımları  
 
SQL*DBA ‘nın çalıştırılması  
internal olarak bağlanma  
instance ‘ın kapatılması  
 
SQL*DBA ‘nın çalıştırılması  
$ sqldba mode = line  
$ sqldba lmode = y -- line mode, yes  
$ sqldba mode = screen  
$ sqldba lmode = n -- line mode, no  
 
Ya da ORA_SQLDBA_MODE çevre değişkeni line ya da screen olarak kurularak kullanılabilir.  
Aşağıda SQL*DBA line modunda çalıştırılmıştır.  
 
$ sqldba lmode = y  
 
SQL*DBA: Release 7.2.3.0.0 - Production on Fri Aug 15 11:45:50 1997  
Copyright (c) Oracle Corporation 1979, 1994. All rights reserved.  
Oracle7 Server Release 7.2.3.0.0 - Production Release  
 
Veritabanına Internal Olarak Bağlanmak  
Veritabanının açılıp kapanma işlemleri önemli işlemlerdir ve Oracle ‘a internal olarak  
bağlanmayı gerektirir. Eğer internal olarak bağlandıysanız, artık sistemde en yetkili  
kullanıcı olan SYS olarak tanınırsınız.  
SQLDBA> connect internal  
Connected.  
 
Instance ‘ın başlatılması  
Veritabanı başlatılmadan önce veritabanının hangi durumda başlatılacağının seçilmesi gerekir.  
Veritabanı üç şekilde başlatılabilir.  
 
Başlangıç Durumu Kullanımı  
NOMOUNT veritabanını yaratmak için kullanılır  
MOUNT veritabanında bakım ya da kurtarma gerektiğinde kullanılır.  
OPEN veritabanını tüm kullanıcılara açmak için kullanılır.  
 
Start Up Işlemi;  
instance ‘ın başlatılması  
veritabanının mount edilmesi  
veritabanının açılması (open)  
 
NOMOUNT, MOUNT ve OPEN seçenekleri birarada kullanılamaz (mutually exclusive).  
Yani STARTUP MOUNT OPEN şeklinde bir komut olamaz. SHUTDOWN durumundan açık konuma  
geçmek için sadece STARTUP komutu kullanılmalıdır.  
 
SQLDBA> startup  
ORACLE instance started.  
Database mounted.  
Database opened.  
Total System Global Area 4451660 bytes  
 
Fixed Size 55648 bytes  
Variable Size 3978220 bytes  
Database Buffers 409600 bytes  
Redo Buffers 8192 bytes  
 
SQLDBA> _  
Eğer veritabanı adım adım açılmak istenirse;  
 
SQLDBA> startup nomount  
ORACLE instance started.  
SQLDBA> alter database mount;  
Statement processed.  
SQLDBA> alter database open;  
Statement processed.  
SQLDBA> _  
ya da;  
 
SQLDBA> startup mount  
ORACLE instance started.  
Database mounted.  
SQLDBA> alter database open;  
Statement processed.  
STARTUP [RESTRICT] [FORCE] [PFILE=fname]  
[NOMOUNT  
| MOUNT [EXCLUSIVE | {PARALLEL | SHARED} [RETRY]]  
| OPEN [RECOVER] [dbname]  
[EXCLUSIVE | {PARALLEL | SHARED} [RETRY]]]  
dbname : veritabanının adıdır.  
EXCLUSIVE : sadece geçerli instance ‘ın veritabanına erişmesine izin verir.  
SHARED ya da  
PARALLEL : birden fazla instance ‘ın veritabanına erişmesine izin verir.  
RETRY : paralel instance, 5 saniyelik aralıklarda tekrar başlatulmaya çalışılır.  
PFILE=fname : instance ‘ın karakteristiklerini belirleyen bir parametre dosyası belirlenir.  
FORCE : normal bir startup uygulanmadan once çalışan instance durdurulur.  
RESTRICT : kullanıcılara sınırlı bir erişim sağlar.  
RECOVER : veritabanı başlatıldığında medya kurtarma ‘yı uygular.  
 
Veritabanının kapatılması  
SHUTDOWN [NORMAL | IMMEDIATE | ABORT ]  
NORMAL : diğer kullanıcıların oturumlarını terketmelerini bekler.  
IMMEDIATE : o an işletilmekte olan SQL deyimlerini keserek commit edilmemiş  
değişiklikleri geri alır.  
ABORT : en hızlı kapatma biçimidir. Ne diğer kullanıcıların sistemden çıkmalarını  
bekler ne de commit edilmemiş değişiklikleri geri alır.  
 
SQL*DBA komut satırında shutdown komutunu girerseniz sırasıyla ; veritabanı kapatılacak,  
dismount edilecek ve son olarak da instance sonlandırılacaktır.  
 
SQLDBA> shutdown  
Database closed.  
Database dismounted.  
ORACLE instance shut down. 
 
  |   
| Yorumlar |  | Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin! |  | Yorum Ekleme Aparatı |  Yorum Eklemek için lütfen sol menuden giris yapınız..  |  | Toplam 0 yorum listelendi.  |  
   |