Home / MAKALELER / Veri Tabanı / Startup ve Shutdown

Startup ve Shutdown

Merhaba,
Bu yazımda Oracle’ın nasıl kapatılıp açılması gerektiğinden biraz bahsedeceğim. Hazır yeri gelmiş iken, ben yazılarımda Oracle’a tamamen uzak olan insanların da anlayabileceği türden yazmaya çalışıyorum. Daha da sığ olarak anlatmamı isteyenler mail atabilirler. Genelde koddan biraz uzak durmaya çalışmaktayım.

Öncelikli olarak, STARTUP ile başlayalım. Startup, Oracle’da “Instance”ı ve veritabanını açmaya yarayan komuttur. Çeşitli durumlarda ve şekillerde instance’ın öncelikli olarak açılabilmesi için sonuna ek komutlar alabilir.
Başlamadan küçük bir hatırlatma. “select open_mode from v$database” dersek veritabanının hangi aşamada açıldığını görebiliriz.
Kapalı durumda olan veritabanına bir SYSDBA kullanıcısı ile bağlanalım.
C:\> SQLPLUS / AS SYSDBA
Connected to an idle instance.
SQL> STARTUP; –> Şuan veritabanı öncelikle “NOMOUNT” moduna geçer. Ardından MOUNT ve son olarak OPEN.
STARTUP’dan sonra gelen prefixleri sonra detaylı olarak inceleyeceğiz.

NOMOUNT AŞAMASI: Oracle giriş parametre dosyasını okuyor (INITORA, SPFILE). Veritabanının hangi parametrelerle ve boyutlarla açılmasını gerektiğini algılar. Bu durumda Oracle Background Process’leri de çalıştırılır.
Bu kısmı “STARTUP QUIET” diyerek görmeden geçebiliriz.
SQL> STARTUP NOMOUNT QUIET;
ORACLE instance started.
Veritabanımız şuan da nomount modunda bekliyor. Henüz veritabanını açmadık.

MOUNT AŞAMASI: Veritabanı bu aşamada Control dosyalarını okur. Bu dosyalardan, datafile gibi kritik dosyaların yerlerini algılar fakat henüz açmaz. Bu yerlerin algılanmasıda tamamlandıktan sonra artık veritabanımız BG Process’leri ve Control dosyaları ile açılmaya hazırdır.
SQL> ALTER DATABASE MOUNT; -VEYA- STARTUP MOUNT; –> Veritabanımız nomount aşamasında ise ilkini, değilse ikincisini yazabiliriz.
Database mounted.

OPEN AŞAMASI: Şuan veritabanı datafile’lara girişini yaptı ve kullanıma hazır hale getirdi. Kullanıcılar bağlanabilir durumda.
SQL> ALTER DATABASE OPEN; -VEYA- STARTUP; –> Veritabanımız mount aşamasında ise ilkini, değilse ikincisini yazabiliriz.
Database opened.

Özetlemek gerekirse;

1) STARTUP; –> Önce nomount sonra mount ve son olarak open aşamalarını veritabanını taşır (eğer herhangi bir sorun ile karşılaşılmazsa).
2) STARTUP NOMOUNT; –> Veritabanını nomount aşamasına getirir.
MOUNT; –> Veritabanını mount aşamasına alır.
(Default)OPEN; –> 1’inci durum ile aynıdır.

Bunlara ek olarak ise;

1) STARTUP [MOUNT/NOMOUNT/OPEN] RESTRICT; –> Veritabanını restricted modda açmamıza yarar. Yetkili kullanıcılar dışında hiçbir kullanıcı bağlamaz. RESTRICTED SESSION yetkisi olanlar bağlanabilir. Açık veritabanında ise restricted session’ı şu şekilde açıp kapatabiliriz.
SQL> ALTER DATABASE ENABLE RESTRICTED SESSION;
SQL> ALTER DATABASE DISABLE RESTRICTED SESSION;
2) STARTUP [MOUNT/NOMOUNT/OPEN] FORCE; –> Veritabanını “SHUTDOWN ABORT” yaparak kapatır, istenilen şekilde açar. Bu şekilde açılan veritabanının herhangi bir başlangıç paramatresi olmasına gerek yoktur.
3) STARTUP [MOUNT/NOMOUNT/OPEN] EXCLUSIVE; –> Öncelikle belirtelim, startup mount exclusive deprecated edildi ve desteklenmiyor. Bu komut ise veritabanının sadece bu session tarafından mount veya open edilebileceğini gösterir.

Sırada SHUTDOWN komutları var. Detaylı olarak inceleyelim.

C:\> SQLPLUS / AS SYSDBA
Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – ProductionWith the Partitioning, OLAP and Data Mining options

Şuan da bağlıyız. Yapabileceğimiz SHUTDOWN olanakları şunlardır;

1) SHUTDOWN [NORMAL]; –> Veritabanını “temiz” şekilde kapatır. Bütün kullanıcıların bağlı oldukları sessionlardan çıkmalarını bekler. Ardından instance’ı ve veritabanını güvenli bir şekilde kapatır. Bu sırada buffer_cache’de yazılmayı bekleyen dirty buffer’lar datafile’lara yazılır. Temiz olarak veritabanını kapatılır. Genelde kullanılmayan bir kapatma metodudur. Yeni kullanıcı kabul edilmez.
2) SHUTDOWN IMMEDIATE; –> Veritabanına bağlı olan bütün kullanıcıları atar ve commit edilmemiş işlemleri rollback yapar. Yeni kullanıcıların girmesini engeller. Shutdown normal’de olduğu gibi datafile’lara veriler yazılır. Veritabanı güvenle ve temiz olarak kapatılır.
3) SHUTDOWN ABORT; –> Veritabanını kapatmanın en hızlı ve aynı zamanda veritabanı için en zor yoludur. Veritabanı anında kapatılır ve bütün işlemler sonra ki Startup’ı bekler. Aslında bu kapatma türü Oracle’ı fazla etkilemez. Bu yöntem kesinkle ilk olarak kullanılacak yöntem olmamalıdır. Temiz bir kapatma metodu Oracle’da önemli rol oynar.
4) SHUTDOWN TRANSACTIONAL; –> Bu kapatma yöntemi ise bazı durumlar çok kritik olarak kullanılabilir. Önemli bir işlem yapılırken girilecek bir shutdown immediate komutu update veya insert yapan kişinin bütün işlemlerini rollback edebilir. Eğer tek kullanıcı ile çalışıyorsak ve işlemini bitirmesini bekliyorsak bu kapatma yöntemini uygulamalıyız. Kullanıcılar COMMIT ettikleri zaman veritabanından atılırlar ve temiz kapatma gerçekleşir. Commit edilmeyen sessionları bekleriz, bu komut ile. Yeni kullanıcılar kabul edilmez.

Genel olarak Oracle veritabanını bu komutlar ile kapatıp açabiliriz. Bu seçimleri yapmak tamamen DBA’in sorumluluğundadır. Hangi durumda hangi metodun kullanılacağına iyi karar vermek gerekebilir.

İyi çalışmalar,

Ogan

About Ogan Ozdogan

Bilkent Üniversitesi Bilgisayar Teknolojisi ve Bilişim Sistemleri 2006 mezunuyum. İstanbul Bilgi Üniversitesi İşletme Yönetimi (MBA) yüksek lisans mezunuyum. Oracle Türkiye'de Kıdemli Satış Danışmanı olarak çalışmaktayım. 2007 yılından beri Oracle veritabanı yönetimi ile profesyonel olarak ilgilenmekteyim. Oracle Database 11g Administrator Certified Associate ve Oracle Database 11g Administrator Certified Professional sertifikalarına sahibim. Oracle OTN forumlarında ve günlüğümde teknik bilgilerimi paylaşmaya devam etmekteyim. Oracle veritabanı (9i, 10g, 11g) ve Data Guard, RAC, ASM ve RMAN yönetimi konularında çalışmalarıma devam etmekteyim.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın