Standby Database Archive Apply Hatası (ORA-00308: cannot open archived log)

Ş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.

Be Sociable, Share!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


4 × = onaltı