Skip to content

Dataguard 10g: Administrasi Physical Standby DB

Setelah semua persiapan beres dan standby database selesai dibuat, sekarang kita coba administrasinya.

MONITOR ARCHIVED LOG DI STANDBY DATABASE
Di standby database, lihat archived log yang sudah dan belum diapply:
SQL> set lines 120
SQL> col name for a50
SQL> select name,to_char(FIRST_TIME,'dd-mon-yy hh24:mi:ss') TIME ,SEQUENCE#,APPLIED from v$archived_log order by sequence#;

Misalkan hasilnya berikut ini (kolom TIME tidak ditampilkan, untuk menghemat space)
NAME--------------------- SEQUENCE#------ APPLIED
=================================================
/oradata/oracle/ts/arc106_1_655805448.arc 106 YES
/oradata/oracle/ts/arc107_1_655805448.arc 107 YES
/oradata/oracle/ts/arc108_1_655805448.arc 108 YES
/oradata/oracle/ts/arc110_1_655805448.arc 110 NO
/oradata/oracle/ts/arc111_1_655805448.arc 111 NO
/oradata/oracle/ts/arc112_1_655805448.arc 112 NO
/oradata/oracle/ts/arc113_1_655805448.arc 113 NO
/oradata/oracle/ts/arc114_1_655805448.arc 114 NO

Berdasarkan hasil query di atas, pastikan bahwa:

  1. Sequence harus urut.
    Kalau ada sequence yang tidak urut (atau ada gap), itu berarti ada archived log yang tidak terkirim, alasannya bisa bermacam-macam, misalnya karena network error atau standby database sempat mati. Pada contoh di atas, ada gap pada sequence 109. Kalau seperti itu:

    1. Archived log harus ada (dicopy manual dari database primary, atau di-restore dari backup)
    2. Register archived yang baru saja di-restore itu
      SQL> ALTER DATABASE REGISTER
      LOGFILE '/oradata/oracle/ts/arc109_1_655805448.arc';

      Setelah diregister, archived log sequence 109 harusnya sudah masuk kedalam list di view v$archived_log
  2. Kolom APPLIED harus bernilai YES, artinya archived log sudah di-apply
    Archived log belum di-apply itu ada 2 kemungkinan:

    1. Ada GAP. Contoh di atas SEQUENCE# 110 belum di-apply karena ada gap di sequence atasnya (SEQUENCE# 109). Solusinya sudah disebut di atas
    2. Proses recovery berhenti. Solusinya, jalankan lagi
      SQL> alter database recover managed standby database disconnect;

STARTUP DAN SHUTDOWN

  1. startup
    SQL> STARTUP MOUNT;Setelah itu, apply archived log secara background
    SQL> alter database recover managed standby database disconnect;
  2. Shutdown. Matikan dulu proses recovery-nya
    SQL> alter database recover managed standby database cancel;Setelah itu, baru shutdown
    SQL> SHUTDOWN IMMEDIATE;

Mode Recovery dan Open Read Only

  1. standby database bisa dibuat Open (hanya READ ONLY, tidak bisa READ WRITE) sehingga kita bisa melakukan query. Biasanya ini dilakukan untuk tujuan reporting. Untuk menjadilkan mode open read only, matikan dulu proses recoverynya
    SQL> alter database recover managed standby database cancel;Setelah itu, alter database open
    SQL> alter database open read only;
  2. setelah selesai dengan query reporting, kita bisa mengembalikan database ke mode recovery lagi.
    SQL> alter database close;
    SQL> alter database recover managed standby database disconnect;

Referensi:
Oracle® Data Guard Concepts and Administration, 10g Release 2 (10.2) - Managing a Physical Standby Database



Silahkan baca yang berikut ini juga :

6 Comments

  1. Homsan

    wah .. lengkap juga nich tutorialnya …
    thankyu mas…

    btw aku ada pertanyaan nich , kalo misal aku punya 3 database aktif , untuk membuat standby database ini aku harus nyediain 3 komputer atau bisa dengan 1 komputer aja dengan 3 instance ..???

    Posted on 24-Jun-08 at 2:10 am | Permalink
  2. rohmadne

    Ya…
    Kita bisa membuat standby database di mesin yang sama dengan primary database.

    Posted on 25-Jun-08 at 6:51 am | Permalink
  3. masdi2t

    Tetapi kalau standby database ada di 1 mesin dengan primary-nya, keuntungan HA tidak tercapai.
    Mesin jadi berat karena ada 2 instance dan juga menjadi single point of failure, misal jika terjadi kerusakan h/w, kemungkinan primary dan standby akan rusak bersamaan.

    -masdi2t-

    Posted on 17-Jul-08 at 3:03 am | Permalink
  4. rohmadne

    Rekan Masdi2t benar, kalau masih dalam 1 mesin, manfaat High Availability (HA) nya tidak optimal.

    Posted on 18-Jul-08 at 2:49 am | Permalink
  5. Homsan

    wah sipp penjelasannya …

    cuman saya masih bingung , kalo misal primarynya mati / server Hang misalnya .. untuk switch ke standbynya gimana yach ..??

    apakah bisa otomatis …???
    terus di sisi client .. apakah merasakan jeda dari perpindahan tsb ( transaksi terhenti ??? )

    Posted on 19-Aug-08 at 8:52 am | Permalink
  6. rohmadne

    Kalau mesin primary mati, kita bisa mengaktifkan mesin secondary untuk menjadi primary. Namun ini kita lakukan secara manual (tidak otomatis). Tentu saja, dari sisi client akan ada downtime.

    Posted on 19-Aug-08 at 9:41 am | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*