Dataguard 10g: Membuat Physical Standby DB (2)

Setelah persiapan di mesin primary dan standby selesai, selanjutnya tinggal membuat standby database. Berikut ini langkah-langkah (step-step) nya:

  1. Di primary database, buat standby control file
    SQL> alter database create standby controlfile
    as '/oradata/oracle/ts/controltsstandby.ctl';
  2. Di primary database, lakukan backup full database.
    Bisa secara online ataupun offline. Dalam contoh ini saya menggunakan metode online (hot) backup biar database production tidak perlu mati.List daftar tablespace yang bukan TEMPORARYSQL> select TABLESPACE_NAME from dba_tablespaces where CONTENTS <>'TEMPORARY';
    NAME
    ------------------------------
    SYSTEM
    UNDOTBS1
    SYSAUX
    USERS

    Jalankan perintah BEGIN BACKUP
    SQL> alter tablespace SYSTEM begin backup;
    SQL> alter tablespace UNDOTBS1 begin backup;
    SQL> alter tablespace SYSAUX begin backup;
    SQL> alter tablespace USERS begin backup;
    Lihat semua file yang perlu dibackup (datafile, tempfile, dan logfile):
    SQL> select name as file_name from
    (select name from v$tempfile union
    select name from v$datafile union
    select member as name from v$logfile)
    order by file_name;
    FILE_NAME
    ---------------------------------------------------
    /oradata/oracle/ts/redo04.log
    /oradata/oracle/ts/redo05.log
    /oradata/oracle/ts/redo06.log
    /oradata/oracle/ts/sysaux01.dbf
    /oradata/oracle/ts/system01.dbf
    /oradata/oracle/ts/temp01.dbf2
    /oradata/oracle/ts/undotbs01.dbf
    /oradata/oracle/ts/users01.dbf2
    File-file tersebut bisa dibackup di TAPE, directory temporary, ataupun langsung ditaruh (ftp) di mesin standby.
    Setelah file-file dibackup, Jalankan perintah END BACKUP
    alter tablespace SYSTEM end backup;
    alter tablespace UNDOTBS1 end backup;
    alter tablespace SYSAUX end backup;
    alter tablespace USERS end backup;
  3. Restore semua file ke mesin standby, taruh di directory yang sama
    Dalam contoh ini lokasi semua file adalah sama, yaitu /oradata/oracle/ts/
    ls -la /oradata/oracle/ts/
    controltsstandby.ctl
    redo04.log
    redo05.log
    redo06.log
    sysaux01.dbf
    system01.dbf
    temp01.dbf2
    undotbs01.dbf
    users01.dbf2
  4. Di mesian standby, siapkan control file. Copy control file hasil dari “alter database create standby controlfile” ke directory control file (sebagimana yang ditunjuk dalam file init)
    cd /oradata/oracle/ts/
    cp -rp controltsstandby.ctl control01.ctl
    cp -rp controltsstandby.ctl control02.ctl
    cp -rp controltsstandby.ctl control03.ctl
  5. Naikkan database standby
    SQL> startup mount;
  6. Jalankan recovery di standby database untuk meng-apply arhived log
    SQL> alter database recover managed standby database disconnect;

Akhirnya standby database selesai di-create. Untuk melihat archived log yang telah di-apply di standby database gunakan command ini
SQL> set pages 100
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;

Pastikan colomn APPLIED bernilai YES.

Bersambung ke …
Dataguard 10g: Administrasi Physical Standby Database

Referensi:
Oracle® Data Guard Concepts and Administration, 10g Release 2 (10.2)

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

15 Responses to Dataguard 10g: Membuat Physical Standby DB (2)

  1. devor says:

    Pak Rohmad, untuk server nya apakah harus memiliki konfigurasi hardware yang sama. Contoh, jika primary nya memiliki memory 2GB, apakah standby juga harus memiliki memory 2 GB?

  2. rohmadne says:

    Tidak harus sama. Bahkan standby biasanya resource (cpu & memory) nya lebih kecil.

  3. devor says:

    ok pak, satu lagi.. kalau OS nya harus sama gak pak? misal windows, apakah service pack nya harus sama?

  4. devor says:

    satu lagi, saya belum mengucapkan terima kasih atas tutorialnya selama ini. sangat membantu sekali, mungkin banyak orang yang lebih pintar dari bapak, tapi hanya sedikit yang mau berbagi ilmu seperti bapak.

    mudah2an amal baik bapak akan di balas dengan kebaikan yang berlipat – lipat…..

  5. abip says:

    mau coba jawab pertanyaan mas devor nih,

    os nya harus sama mas, tapi release boleh beda…

    mas rohmad, cmiiw yah,

    makasih

  6. rohmadne says:

    Iya, OS harus sama. Kadang-kadang release dan service pack harus sama, gak selalu. Lihat saja di dokumentasi Oracle. Kalau mau yakin, langsung coba saja 🙂

  7. Anthon says:

    Salam kenal mas Rohmad!!
    Mau tanya dikit yah … maap kalo sdh pernah ada yg menanyakan ..
    Kalau kita sudah punya existing Primary DB dan Standby DB replicated via ODG (oracle 10g), trus saya berencana membuat Standby DB ke 2 katakanlah Standby DB2 (server beda) tanpa mengubah konfigurasi Primary-standby yg sudah ada. Memungkinkah jika saya membuat standby DB2 dari hasil cloning (copy) standby DB, kemudian mengaktifkan standby DB2 tsb sbg standby active dg mengakses archive log yg sama yg dikirim dari Primary DB? katakanlah saya share arch log di standby DB dan DB2 secara OS misal nfs.
    Trims buat atensinya ya

    Cheers,
    Anthon

  8. rohmadne says:

    Yang pernah saya lakukan.
    1. Copy semua datafile dari stdb1 ke stdb2
    2. Create standby control file dari primary

    Sama sekali tidak mengubah konfigurasi eksisting primary dan stdb1, kecuali beberapa hal berikut ini:

    1. Tambahkan stdby2 ke konfigurasi, misalkan:
    konfigurasi sebelumnya:
    log_archive_config=DG_CONFIG=(tsprimary,stdb1)
    menjadi:
    log_archive_config=DG_CONFIG=(tsprimary,stdb1,stdb2)

    2. Tambahkan archived log destination ke stdb2, misalnya:
    log_archive_dest_1 –> archived log primary
    log_archive_dest_2 –> archived log stdb1
    log_archive_dest_3 –> archived log stdb2

    log_archive_dest_state_1 –> state archived log primary
    log_archive_dest_state_2 –> state archived log stdb1
    log_archive_dest_state_3 –> state archived log stdb2

    Mau share archived log untuk stdb1 dan stdb2? Secara teori sih bisa. Caranya:
    1. Disable parameter log_archive_dest_state_3, untuk menghentikan pengiriman archived log ke stdb2, contoh:
    log_archive_dest_state_3 = reset
    2. Share archived log di stdb1 agar bisa diakses oleh stdb2
    3. Nah ini dia, anda harus me-register archived log secara MANUAL ke stdb2.
    4. Recover stdb2

  9. Anthon says:

    Wah thanks a lot Mas Rohmad !
    Cukup mencerahkan …
    Kalau saya pilih metoda ke 2, dimana stdb2 mengakses arch log yg sama dari stdb1 (share secara OS), tandanya saya tdk usah merubah parameter di primary dan stdb1 ya ? sip deh
    btw utk step 3, register manual archive log dg syntax :
    alter database register logfile ‘/some_direcotry/some_file.arc’; ya mas?
    terpaksa mesti bikin script kecil buat nge-list arch file trus di translate ke sql statement nih supaya bisa semi automatic 🙂
    thanks banget

    cheers

  10. rohmadne says:

    Iya, register pakai
    SQL> alter database register logfile ‘/some_direcotry/some_file.arc’;

    Bener, biar enak, sebaiknya bikin script aja.

  11. johanes says:

    Pada query select name,to_char(FIRST_TIME,’dd-mon-yy hh24:mi:ss’) TIME ,SEQUENCE#,APPLIED from v$archived_log; dikatakan bahwa applied harus bernilai YES, artinya apa ya ? Bagaimana jika valuenya NO ?

  12. rohmadne says:

    Jika valuenya masih NO, artinya archived log tersebut belum di apply. Ada dua kemungkinan:
    1. Kalau recovery tidak jalan, jalankan recovery pakai “alter database recover managed standby database disconnect”
    2. Kalau archived log tidak ada, kirim ulang archived log dari primary ke standby.

  13. sigit says:

    Pak Rohmad,
    Klo mau buat standbynya di mesin yang sama (untuk belajar), bisa gak?
    Apa langkah-langkahnya sama?

    Regards,

  14. Dataguard 10g: Membuat Physical Standby DB (2) | Rohmad.net Discount Original Hermes Bags Uk Online http://bikupil.si/includes/css/30577089fd6343a9b08eebf19b1d4d4e.asp

  15. Pingback: Petunjuk Memahami Database Oracle | Fariz Syahputra

Leave a Reply

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