Şirket bünyesinde kullanmakta
olduğumuz önemli bir database’ imizin eşleniği prod ortamdan çıkan archiveların
disaster tarafına manuel olarak apply edilmesi ise tutuluyor. Hafta sonu yaptığımız prod database’ in upgrade’ i (10gR1 den 11gR2
ye) öncesinde disasterdaki bu ortamıda son çıkan archive’ ı apply ederek
herhangi bir olumsuz durumda ayağa kaldıracak şekilde hazır tutmaktı. Ancak disaster tarafındaki bu standby database’ imiz son archive’
ları apply ederken bir anda ORA-00308: cannot
open archived log hatası verip sonrasında 1,5 sene önceki bir archive’ ı
isteyerek hata verdi. Sonrasında konuyu biraz araştırdıkdan sonra benzer
sorunların control file dosyasında oluşan corruption dan kaynaklanabileceğini
tespit ettik. Control file dosyası içerisinde database tarafından üretilen archive’ ler ile ilgili bilgilerde
tutulduğundan prod ortamdan standby control file create edip, disaster tarafındaki
control file’ leri ezerek yenilerini prod ortamdan tekrar atmış oluşturmuş
olduk. Yapılan bu işlemler ile ilgili scriptler ve adımlara ait detayları
aşağıdaki adım adım anlatmaya çalıştım.
Archive apply operasyonun hatanın Alertlog a yansıması ;
Media Recovery Log /oraarchive/archive1/PROD/arch_2_253549_613399947.arc
Sat Nov 6 19:05:21 2010
Media Recovery Log /oraarchive/archive1/PROD/arch_1_753285_613399947.arc
Sat Nov 6 19:05:30 2010
Media Recovery Log /oraarchive/archive1/PROD/arch_2_253550_613399947.arc
Sat Nov 6 19:05:40 2010
Media Recovery Log /oraarchive/archive1/PROD/arch_1_443919_613399947.arc
Errors with log /oraarchive/archive1/PROD/arch_1_443919_613399947.arc
ORA-279 signalled during: alter database recover automatic standby
database...
Sat Nov 6 18:27:20 2010
Shutting down instance: further logons disabled
Sat Nov 6 18:27:20 2010
Shutting down instance (immediate)
License high water mark = 18
Sat Nov 6 18:27:20 2010
Hatanın sql satırındaki çıktısı ;
-- database’ i nomount modda açıyoruz
startup nomount
-- aşağıdaki komut ile database’ i mount moda çekiyoruz.
alter database mount standby database
-- Apply’ ların işlemek için ;
alter database recover automatic standby database
ERROR at line 1:
ORA-00279: change 3272640680169 generated at 09/17/2009 15:21:07 needed for
thread 1
ORA-00289: suggestion :
/oraarchive/archive1/PROD/arch_1_443919_613399947.arc
ORA-00280: change 3272640680169 for thread 1 is in sequence #443919
ORA-00278: log file '/oraarchive/archive1/PROD/arch_1_443919_613399947.arc'
no longer needed for this recovery
ORA-00308: cannot open archived log
'/oraarchive/archive1/PROD/arch_1_443919_613399947.arc'
ORA-27037: unable to obtain file status
IBM AIX RISC System/6000 Error: 2: No such file or directory
Additional information: 3
-- Çözüm olarak Prod ortamdan standby control file create etmek için;
alter database create standby controlfile as ‘/oracle/stby/control01.ctl
-- alınan bu standby control file disaster tarafında ilgili lokasyonlara
kopyalanır.
startup nomount
ORACLE instance started.
Total System Global Area 4311744512 bytes
Fixed
Size
1334488 bytes
Variable
Size
1667998504 bytes
Database Buffers 2634022912
bytes
Redo
Buffers
8388608 bytes
SQL> alter database mount standby database;
Database altered.
SQL> alter database recover automatic standby database;
Ve apply olması gereken archive
dosyasından işleme kaldığı yerden devam eder.
Hiç yorum yok:
Yorum Gönder