RMAN Block REcovery kullanımı ve ORA-10567 hatasının çözümü
Bu aralar RMAN’e dalmışken yaşadığım sorunlarında bu taraftan gelmesi şans olsa gerek diye düşünüyorum artık. Yaşadığım bir başka sorun ise Dataguard yapısında StandBy tarafının arşivlog işlemediğinden geri kalmasıyla farkettiğim bir sorundu. Alert log’a baktığımda aldığım hata aşağıdaki gibi…
ORA-12801: error signaled in parallel query server P000
ORA-00600: internal error code, arguments: [3020], [56], [540563], [1518878611], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 56, block# 540563)
ORA-10564: tablespace A_back
ORA-01110: data file 56: ‘+ADG/ankstd/datafile/ A_back.757.779084211′
Sorunun çözümü olarak, hatayı aldığım “A_back.757.779084211” datafile’nda yani datafile 56 ’da data block recovery yaparak sorun çözüme kavuştu.
RMAN> recover datafile 56 block 540563;
Aslında RMAN bu hatayı kontrol etmekte bu bilgileri alert.log’a yazdığı gibi V$DATABASE_BLOCK_CORRUPTION view’na da yazmakta . Ancak RMAN’den kontrol etmek isterseniz aşağıdaki komutu da kullanabilirsiniz.
RMAN> recover corruption list;
Recovery datafile komutunun farklı kullanım çeşitleri de mevcuttur. Ben sadece block recovery örneğini verdim ancak aşağıdaki kullanımları ile de kullanbilirsiniz.
- Birden fazla datafile ve block ile ;
RMAN> recover datafile 7 block 22 datafile 8 block 43;
- Backup TAG ile kullanımı
RMAN> recover datafile 5 block 24 from tag=tues_backup;
- Sequence kullanarak Restore
RMAN> recover datafile 6 block 89 restore until sequence 546;
- Zaman verilerek Restore
RMAN> recover datafile 5 block 32 restore until ‘sysdate-1′;
- SCN ile Restore
RMAN> recover datafile 5 block 65 restore until scn 23453;
Bu işlemleri yaparken sisteminizin ARCHIVELOG modda olması gerekmektedir. Eğer Oracle 10g kullanıyorsanız komutunuzu blockrecovery olarak kullanmalısınız.
Özgür Umut VURGUN
www.ozgurumutvurgun.com