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=
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