Dataguard 10g: Solusi Archived Log Hilang

Karena masalah jaringan, beberapa waktu yang lalu archived log di primary database tidak terkirim ke standby database (hal seperti ini sering saya alami). Kadang-kadang karena kesibukan, saya tahunya setelah beberapa hari, jadi mesti mengejar untuk apply archived log yang tertinggal itu.

Policy saya, archived log di production saya compress (zip), backup ke tape, dan hapus setiap hari. Archived log di-keep di backup sehingga tidak banyak memakai banyak space di production (primary).

Jadi, mau gak mau saya mesti me-restore backup archived log untuk di-apply di mesin standby:

  • Restore archived log ke mesin standby
  • Uncompress archived log (yang di-compress sebelum backup)
  • Register: ALTER DATABASE REGISTER LOGFILE ‘…’;
  • Recover : alter database recover managed standby database;

Kadang-kadang recover gagal karena archived log corrupt.
ORA-00308: cannot open archived log '/.../_30383.arc'
ORA-27046: file size is not a multiple of logical block size
Recovery interrupted!

Kalau begitu biasanya archived log (sequence 30383) tersebut saya coba restore dan recovery ulang. Sering berhasil. Kadang juga masih tidak bisa. Gimana dong? Ada dua solusi:

  • Recreate standby database lagi
  • Recover dengan RMAN

Recreate standby database lagi, wah… perlu effort yang besar. Akhirnya saya pilih option kedua, recover dengan RMAN. Berikut ini step-step Recovery dengan RMAN

  1. Di standby database, lihat SCN (system change number) terakhir
    SQL> col CURRENT_SCN for 9999999999999999999
    SQL> select current_scn from v$database;

    Misalkan saya dapatkan current SCN 2254678976792
  2. Di primary, lakukan incremental backup sejak sequence 2254678976792. Backup bisa dilakukan di disk ataupun tape. Dalam dontoh ini, backup ke disk.
    mkdir /tmp/rman_bkup
    rman target /
    RMAN> BACKUP DEVICE TYPE DISK INCREMENTAL FROM SCN
    2254678976792 DATABASE FORMAT '/tmp/rman_bkup/bkup_%U';
  3. Restore hasil backup ke mesin standby. Dalam contoh ini saya restore ke /tmp/restore_rman/. Kemudian jalankan RMAN di standby
    rman target /
    RMAN> CATALOG START WITH '/tmp/restore_rman/';
  4. Kemudian jalankan recover di standby database
    RMAN> RECOVER DATABASE NOREDO;
    Kadang error seperti ini
    ORA-01219: database not open: queries allowed on fixed tables/views onlySolusinya, restart database, dan jalankan RMAN lagi
    SQL> shutdown immediate
    SQL> startup mount
    RMAN> exit
    rman target /
    RMAN> RECOVER DATABASE NOREDO;
  5. Sampai di sini, database standby sudah sinkron dengan primary, jadi archived log sequence 30383 sudah tidak dibutuhkan lagi. Namun, tampaknya standby database masih butuh archived log sequence 30383 tersebut ketika saya menjalan recover standby database seperti biasa:
    SQL> alter database recover managed standby database;
    ORA-00308: cannot open archived log '/.../_30383.arc'
    ORA-27046: file size is not a multiple of logical block size
    Recovery interrupted!
  6. Ya… ternyata standby control file harus dicreate ulang
    Di database primary, buat standby control file
    SQL> alter database create
    standby controlfile as '/tmp/standby.ctl';

    Copy contol file /tmp/standby.ctl ke mesin standby.
    Shutdown standby database.
    Delete (rename) control file yang lama, dan ganti dengan standby control file yang baru dibuat tersebut:
    mv control01.ctl control01.ctl.bak
    mv control02.ctl control02.ctl.bak
    mv control03.ctl control03.ctl.bak
    cp -rp standby.ctl control01.ctl
    cp -rp standby.ctl control02.ctl
    cp -rp standby.ctl control03.ctl
    Kemudian startup dan kembali recover
    SQL> startup mount
    SQL> alter database recover managed standby database;
  7. OO… Berhasil

Referensi:
Oracle┬« Database Backup and Recovery Advanced User’s Guide
10g Release 2 (10.2)

This entry was posted in Backup & Recovery, Dataguard and tagged , , , , , . Bookmark the permalink.

2 Responses to Dataguard 10g: Solusi Archived Log Hilang

  1. Adhika says:

    Halo Mas, mau tanya, di step ke 6, tau darimana kalo controlfile nya yang rusak juga?
    thank you

  2. tito says:

    kalo masih pake 10g release 1 gimana solusinya ?
    selain upgrade ke release 2 ?

Leave a Reply

Your email address will not be published. Required fields are marked *