Hurriyet

17 Eylül 2013 Salı

Oracle Veritabanı: Block Checking ve Block Recovery

Block Media Recovery'nin amacı corrupt olmuş data block'ların recover edilmesidir.  Mean Time To Recover(MTTR) zamanınu indirger.

Eğer sadece bir tane bile blok bile corrupt olursa bütün datafile offline'a çekilmesi gerekir ve backup dönülmesi gerekir. Buna  karşılık block media recovery ile datafile'ı offline'a çekmeden sorunun düzeltilmesini sağlar.Block Media Recovery ile recovery sırasında datafile'ın online kalmasını sağlar. Fiziksel bozulma olaylarında bizim işimize çok yarar.

Corrupt Block'lar Nasıl Belirlenir?

V$DATABASE_BLOCK_CORRUPTION tablosunda database tarafından belirlenen bloklar listelenir.

-Fiziksel Bozulma:

Database Checksum'ı sonucunda eğer bloklarda sorun olursa blok "physical corruption" olarak listelenir. Checksum işlemi database'de default olarak ayarlıdır. Eğer checksum işlemi disable edilip,  cpu overhead'ini azaltmak istersek database backup'ında "nochecksum" parametresini kullanabiliriz; ancak genel olarak database kontrolü sırasında yapılmasını engelleyemeyiz.

-Mantıksal Bozulma:

Database Checksum işlemini yaptığında her zaman bazı blokların değeri doğru çıksa da içerik olarak istikrarsız olabilir. Block Media Recovery ile bu düzeltilemez.

Mantıksal bozulma kontrolü default olarak set edilmemiştir. Onun yerine backup'taki checklogical  parametresi ile, restore, recover ve validate komutlarında  bunu sağlayacak işlemler vardır. Bu yazımızda logical corruption düzeltme metodu hakkında bilgiler bulabilirsiniz.

Database'de fark edilen corrupt olmuş blok'lar ise v$database_block_corruption'da bulunmazlar.

Block Media Recovery İçin Gereklilikler:

Database archivelog'da bulunmalıdır ve mount mode'da veya open olarak çalışmalıdır. Database Archivelog Mode'a Nasıl Alınır?

Datafile'ların backup'ları full ve level 0 backup'lar olmalıdır ve corrupt block'tan daha eski backup'lar olmalıdır.

Rman sadece archived redo log'ları kullanarak recovery yapabilir. Buradan da tekrar archivelog yedeklemenin önemini görebiliriz.  Archivelog yedeklenmesi

(Opsiyonel)Flashback Database'in enabled olması lazımdır; eğer rman'in flashback log'larına bakıp buradaki sağlam versiyonlarına göre düzeltilmesi isteniyorsa.

Block Corruption Nerelerden Görülebilinir?

-List Failıre,Validate, Backup .. Validate gibi komutların sonucunda görülebilinir.
-Alert log'larında  belirtilir.
-v$database_block_corruption view'ında belirtilir.
-Trace File'larında bulunur.
-Analyze Table ve Analyze Index sonuçlarında çıkabilir.
-DBVERIFY komutuyla (dbv)
(dbv file= BLOCKSIZE=8192
LOGFILE=test.log)

Block'lar Nasıl Recover Edilir?

Bütün corrupted olarak işaretlenmiş block'ların recovery'si için rman'e bağlanıp "recover corruption list" komutuyla düzeltebiliriz.

RMAN>recover corruption list;  

veya

 RMAN>BLOCKRECOVER corruption list;  

Bu işlemden sonra veritabanındaki  v$database_block _corruption view'ın bilgiler silinir.

select * from v$database_block_corruption  



Hiç yorum yok:

Yorum Gönder