Oracle veritabanın çalıştığı sunucu, disk veya storage ‘da meydana gelen bir arıza sonrası silinmiş veya bozulmuş bir datafile dosyası olmadan veritabanını nasıl kısa yoldan açabileceğimiz konusunda kısa bir bilgi vermek istiyorum. Bildiğiniz gibi herhangi bir datafile silindiği anda artık o datafile ‘ın bağlı olduğu tablespace ‘de tutarlılığını yitirmektedir. Bu nedenle datası tutarsız olan tablespace ‘in mutlaka backuplardan dönülmesi gerekmektedir.
Aşağıdaki işlemleri yapmamızdaki amaç “deneme” tablespace ‘ne ait datafile ‘ın silinmesiyle nedeniyle Oracle veritabanı açılmayacağından, bütün sisteme etki eden problemi sınırlandırıp en azından zarar görmemiş diğer datanın kullanımına devam ederek yapılacak olan kesintiden bütün kullanıcıların (tablespacelerin) etkilenmesini önlemektir.
• Öncelikle veritabanını “mount” konumunda başlatalım.
SQL> startup mount;
• Silinmiş veya zarar görmüş olan tutarsız datafile ‘ı Oracle veritabanından silelim.
SQL> alter database datafile '/data/oradata/deneme01.dbf' offline drop;
• Arızalı datafile veritabanından silindiği için artık database ‘i açabiliriz.
SQL> alter database open;
• Datafile ‘ın eksik olmasından dolayı bağlı olduğu tablespace ‘de tutarsız hale geldi ve gönderilen kullanıcı isteklerine cevap veremeyecektir. Bu nedenle arızalı tablespace ‘i şimdilik kullanımdan kaldıralım. Böylece kullanıcılar ekranda istenmeyen hatalar almasın. Daha sonra sistemi %100 çalışır hale getirmek için yapmamız gereken RMAN vasıtasıyla backuplardan arızalı datafile ‘ı geri dönmek.
SQL> alter tablespace deneme offline;
• “Deneme” tablespace ‘ine bağlı datafile ‘ı backuplardan geri dönmek için RMAN konsoluna bağlanalım ve datafile ‘in son alınan yedeğini veritabanına geri yükleyelim.
RMAN> restore datafile 'deneme01.dbf';
RMAN> recover datafile 'deneme01.dbf';
• Deneme tablespace ‘i artık kullanıma hazır. Zaten çalışır durumda olan veritabanımızda artık bu tablespace ‘i devreye alıp derin bir nefes alabiliriz.
RMAN> sql 'alter tablespace deneme online';