Blog ' da Ara

Loading

28 Kasım 2011

ORACLE RECOVER TEKNOLOJILERI


Oracle recover yani kurtarma teknolojileri adlı bu makalemizde;Recover gerçekleştirmek için nelere ihtiyaç duyulur, Enterprise manager yada RMAN de recover nasıl yapılır, Recover opsiyonları nelerdir ve Control file, Redolog File ve Data file Recover nasıl yapılır açıklamaya ve örneklemeye çalışacağız.Şimdiden faydalı olmasını diliyoruz.
Öncelikle Veritabanını açabilmek için neler gereklidir ve veritabanı açılış aşamaları nelerdir açıklmaya çalışalım.Bir Veritabanını açabilmek için;
·         Tüm Control File ‘ler hazır ve senkron olmalıdır.
·         Tüm Online Data Fileler hazır ve senkron olmalıdır.
·         En az bir adet redolog dosyası hazır ve senkron olmalıdır.
Bununla birlikte Veritabanı açılış aşamaları için şekil 1 referans olarak gösterilebilir.
Şekil 1: Oracle Veritabanı Nasıl Açılır

                         Oracle Database Nasıl Açılır?
                         Bir oracle veritabanını açmak problem yoksa çok kolaydır.SqlPlus da startup komutu ile veritabanı tamamen açılır.Ancak kapalı yani shutdown konumdan açık konuma ulaşması için bazı aşamalardan geçer.Şekil1’de de gösterilen bu aşamaları açıklayalım,
                         Nomount:Veritabanının datafile yada database dosyalarını kontrol etmediği yada ihtiyaç duymadığı konumdur.Bu konumda parametre dosyları okunur.Oracle yi bir program olarak düşünürsek, nomount konumu bu programın açık olması ancak henuz data dosyalarını açıp kulanıma ve yönetime sunabilecek yetenekte olmaması olarak tasvir edebiliriz.
                         Mount:Bu konumda oracle instance, parametre dosyalarında okuduğu Control file’leri kontrol eder ve bunların senkronize olmasını ister.Birtek kontrol dosyası bile kullanılamaz halde ise veritabananı mount moda alınamaz.
                         Open:Veritabanının open yani açık modda olması demek kontrol fileler tarafından bilinen en az bir adet redolog dosyasının hazır olması, yine kontrol fileler tarafından bilgileri tutulan dta dosyalarının hazır olması ve database tarafından kullanılıyor olması gerekir.Burada ofline dosyalar dba tarafından online olmadıkça açılmaz.System ve Undo datafileler ofline olamaz.Recover gerektiren data dosyaları V$RECOVER_FILE ve V$DATAFILE viewdan kontrol edilebilir.
SELECT d.name, r.error
  FROM v$recover_file r, v$datafile d
 WHERE r.file# = d.file#
                         Database Uzun Süre Açık Kalmasını Sağlamak!!!
                         Veritabanının sürekli açık kalmasını sağlamak aslında veritabanı neden kapatılacak kadar hata verir bilmekle olur.Eğer tüm kontrol fileler sağlam değilse, redolog dosyalarından en az bir tanesi ulaşılabilir değilse ve system veya undo dosyalarından en az bir tanesinde sorun yaşanırsa media failure sebebiyle instance fail olur yani kapatılıp data recovery yapmak gerekir.
                         Bu durumda data recovery advisor kullanılabilir. DRA (Data Recovery Advisor) Enterprise managerda advisor centralda bulunur.Yada rman komut satırında aşağıdaki gibi kullanılabilir.
 [oracle@vmora ~]$ rman target / nocatalog
Recovery Manager: Release 11.2.0.1.0 - Production on Wed Oct 26 10:27:22 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
connected to target database: VMORA (DBID=3435845536)
using target database control file instead of recovery catalog
RMAN> list failure all;
no failures found that match specification
                         Yukarıdaki rman script’te görüldüğü üzere herhangi bir kayıp sözkonusu değil.Peki ya bir bazı data dosyalarında hataların olduğunu bize bildirseydi? Ki bu datalar control file, redolog file, system veya undo file veya data file bile olabilir.Bu durumda izlememiz gereken yol nasıl olurdu açıklamaya çalışalım.
                         Loss Of a Control File:
                         1-Eğer instance hala açıksa “shutdown abort” komutu ile kapatılmalı.
                         2-Kontrol filelerden birini kayıp yada corrup olan control filenin yerine kopyalanmaklıdır.Eğer diskte sorun varsa farklı bir lokasyona kopyalanmalı ve bu lokasyon da parametre dosyasına eklenmelidir.
                         Oracle en az 2 adet Control file hazır ve senkron olmasını ister.Dolayısıyla Control filelerin sayısını fazla ve farklı lokasyonlarda tutmak avantaj olacaktır.
                         3-startup komutu ile instance başlatılmalıdır.
                         Loss Of a RedoLog File:
                         Eğer en azından bir redolog grup üyesi mevcutsa kayıp olan redolog dosyasını var olan redolog dosyasında kopyalayerak oluşturabiliriz.Ancak aynı log gurubuna ait redo dosyalarından en az birtanesi sağlam olmalıdır.Normal durumda instance etkilenmez.Alert loglarda loglardan birinin bulunamadığına dair bilgi bulursunuz.Kaybolan log dosyasını diğer dosyadan kopyalayarak oluşturabiliriz.
                         Eğer database archile modda ise diğer log dosyasını kopyaladıktan sonra aşağıdaki komutla kayıp log dosyasını tekrar oluşturabilirsiniz.
                         ALTER DATABASE CLEAR LOGFILE GROUP #;
                         Dikkat edilmesi gerekn durunm burada eğer database archive modda değilse bu işlemi yapmak data kaybına yol açabileceği için öncelikle veritabanının ful backupını almalısınız.Sonrasında aşağıdaki komut çalıştırılabilir.
                         ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP #;
                         Loss of a Datafile in NOARCHIVELOG Mode:
                         Eğer database archivelog mode konumunda değilse ve datafile kaybı yaşadıysanız aşağıdaki işlemleri yapmanız gerekir.
1-      Shutdown database.
2-      Kontrol fileler dahil olmak üzere bütün database restore edilmelidir.
3-      Open database.
4-      Tüm userlar son backuptan itibaren işlemlerini tekrarlamalıdırlar
                         Loss of a Non-Critical Datafile in ARCHIVELOG Mode
                         Eğer datafile zarar gördü yada bir şekilde kulanılamaz hale geldiyse ve system yada undo dosyası değilse aşağıdaki prosedür ile kayıp datafile kurtarılabilir.
1-      Enterprise Manager de Maintenance sayfasında Perform Recovery bölümüne girin.
2-      Kurtaracağınız datafile yi recover type olarak girin ve ardından “restore to current time” seçin.
3-      Corrupt olan tüm datafileleri seçin.
4-      Datafileyi nereye restore edeceğinizi seçin (eğer disk te sorun varsa farklı bir lokasyon olabilir)
5-      Daha sonra elde ettiğiniz rman scriptini çalıştırın.

                         Loss of A System Critical Datafile in in ARCHIVELOG Mode
                         Eğer zarar gören datafile system yada unto datafileler ise critic datafilelerden biri zarar görmüş demektir.Bu durumda recover işlemi için aşağıdaki prosedür takip edilebilir.
1-      Eğer database hala açısa “shutdown abort” komutunu çalıştırın.
2-      Database ‘i moun edin. “Startup mount”.
3-      Enterprise Manager de Maintenance sayfasında Perform Recovery bölümüne girin.
4-      Kurtaracağınız datafile yi recover type olarak girin ve ardından “restore to current time” seçin.
5-      Corrupt olan tüm datafileleri seçin.
6-      Datafileyi nereye restore edeceğinizi seçin (eğer disk te sorun varsa farklı bir lokasyon olabilir)
7-      Daha sonra elde ettiğiniz rman scriptini çalıştırın.
8-      Database’i açın “alter database open”.
9-      Son commitden itibaren tüm veriler recover edilmiştir.
Data Recovery Advisor
                         Data recovery advisor data ile iligili corruption yada hataları analiz etmede ve öneriler almada kullanılabilir.Aşağıdaki şekildede görüleceği üzere DRA hataları kontrol eder ve healt monitor dene kontrol mekanizması ile sorun ları tespit eder.Sonrasında hataları listeler gözlemlememizi sağlar. Bununla birlikte var olan sorunlar için çözüm önerileri sunar ve bizde bu önerileri kullanarak recover işlemlerini yapabiliriz.aşağıda şekil 2 de Data Recover Advisor (DRA) işlemlerini sırayla gözlemleyebiliriz.
Şekil 2 : Data Recovery Advisor
                             
                         V$IR_FAILURE, V$IR_FAILURE_SET,V$IR_REOCVER ve v$IR_MANUEL_CHECKLIST viewlardanda failure ve advislerleri kontrol edebilirsiniz.Ayrıca rman da list failure komutunu çalıştırıdığında hataları listeler ve advis failure komutunu çalıştırdığınızdada çözüm önerilerini görebilirsiniz.
                         Bu yazımızda Oracle Recovery konseptine ilişkin yazmayaçalıştık.Yüzeysel olarak data kayıplarından bahsettik ve bunların kurtarılmasına dair en bilinen prosedürleri işledik.Sonraki yazılarımızda dah detaylı olarak data kayıpları ve RMAN ile recover ve restore prosedürlerinden bahsedeceğiz ve rman komut satırını recover işlemleri için etkin kullanmaya dair örnekler sunacağız.
                                                                                          Özcan YILDIRIM

0 YORUM:

Yorum Gönder

"Sorularınız ve Eleştirileriniz Değerlidir"