Men-setting database menjadi archivelog mode

Di database Oracle, semua transaksi di-record (disimpan) di dalam log file. Dalam 1 instance, minimal ada 2 group logfile. Mekanisme kerjanya adalah sirkular. Bila logfile penuh, maka transaksi disimpan di log berikutnya. Setelah semua log terisi, maka log yang terlama akan ditulis ulang (rewrite), tentu saja dengan menghapus content (isi) sebelumnya. Tentu saja, kita akan kehilangan jejak transaksi yang ada di logfile tersebut.

Dalam database dengan mode archivelog, sebelum logfile ditulis ulang, content-nya dicopy (backup) dulu ke archived log. Oleh karena itu kita tidak kehilangan jejak transaksi yang disimpan di log yang ditulis ulang tersebut.

Archived log digunakan untuk recovery database. Bila kita me-restore dari hasil offline backup, maka data yang bisa diambil adalah data ketika off line backup dilakukan. Jadi, seandainya full backup dilakukan sebulan yang lalu, maka data yang bisa diselamatkan (diambil) adalah data sebulan yang lalu tersebut.

Berbeda dengan jika kita me-restore dari hasil online backup. Setelah file backup di-restore, kemudian archived log yang terbentuk setelah online backup (yang berisi rekaman transaksi itu) di-apply kembali (istilahnya recovery). Sehingga kita bisa mendapatkan data sampai archived log terakhir, atau sesaat sebelum terjadi bencana (kerusakan database).

Untuk melihat apakah database sudah dalam mode archivelog atau tidak
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /oradata/oracle/ts/arc
Oldest online log sequence 56
Next log sequence to archive 58
Current log sequence 58

Dalam contoh di atas, mode database masih belum archivelog. Untuk mengaktifkan mode archivelog, jalankan command berikut:
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;

Lihat, sekarang mode database sudah archivelog
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /oradata/oracle/ts/arc
Oldest online log sequence 56
Next log sequence to archive 58
Current log sequence 58

Catatan:
Perintah “alter database archivelog” adalah untuk membuat mode database menjadi ARCHIVELOG. Untuk meng-archive log file dilakukan dua cara:

  1. Manual
  2. otomatis

Pilihan manual adalah jarang terjadi, kecuali untuk tujuan tertentu, misalnya belajar. Semua database production selalu memilih yang otomatis.

Untuk mengotomatiskan pekerjaan archive, init parameter log_archive_start harus TRUE. Jadi harus mengaktifkan parameter tersebut di file init.

Saya menggunakan database 10g release 2 (10.2.0). Parameter log_archive_start tidak perlu saya setting, alias bernilai false, tapi archive jalan otomatis. Kayaknya di versi 10g parameter ini dah gak dibutuhkan lagi, saya belum explore lebih jauh.

Yang pasti, database 10g saya archive-nya jalan otomatis tanpa mensetting parameter log_archive_start.

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

12 Responses to Men-setting database menjadi archivelog mode

  1. Agung says:

    Bagaimana menseting database supaya bisa archive log otomatis dengan tidak mengedit init.ora.

  2. rohmadne says:

    Perintah “alter database archivelog” adalah untuk membuat mode database menjadi ARCHIVELOG. Untuk meng-archive log file dilakukan dua cara:
    1. Manual
    2. otomatis
    Pilihan manual adalah jarang terjadi, kecuali untuk tujuan tertentu, misalnya belajar. Semua database production selalu memilih yang otomatis.

    Untuk mengotomatiskan pekerjaan archive, init parameter log_archive_start harus TRUE. Jadi harus mengaktifkan parameter tersebut di file init.

    Saya menggunakan database 10g release 2 (10.2.0). Parameter log_archive_start tidak perlu saya setting, alias bernilai false, tapi archive jalan otomatis. Kayaknya di versi 10g parameter ini dah gak dibutuhkan lagi, saya belum explore lebih jauh.

    Yang pasti, database 10g saya archive-nya jalan otomatis tanpa mensetting parameter log_archive_start.

  3. ip0d says:

    mas rohmad, parameter log_archive_start letak filenya dimana ya ? ditempat ku ada sih file init.ora nya. tapi tidak ada parameter itu ? apa harus kita bikin sendiri ? saya masih pakai oracle 9i nih mas.

    yg ke-2, apakah script yg mas berikan diatas itu cukup dengan startup mount aja? kenapa tidak startup open ? apakah database kita sudah kembali ke keadaan semula dan siap utk diakses setelah mengaktifkan archivelog menjadi on ?

    newbie nih …

  4. ip0d says:

    mas rohmad, saya baru mencoba script yg mas berikan. Tapi kenapa automatic archival nya disable ?

    Lalu bagaimana cara merubah archive destination nya ya ?

    Thanks…

  5. rohmadne says:

    Database anda versi berapa? Lihat komentar #2 dari saya. Kalau versi database di bawah 10g, agar automatic, edit instance parameter log_archive_start menjadi TRUE.

    Untuk mengubah archive destination, edit instance parameter. Contoh:
    log_archive_dest_1=”LOCATION=/oradata/oracle/ts/arc”;

  6. ip0d says:

    Duh mas, archive lognya di oracle saya kudu di matiin nih…ternyata setiap pagi / jam kerja oracle membuat file .arc yang besarnya 102 Mb. Mana itu jam di saat production lagi berjalan.

    Apa gak bisa diseting waktunya ya ?

  7. rohmadne says:

    Archived log HARUS di backup bersama dengan ONLINE BACKUP. Ini adalah sepasang.
    1. Kalau archived dimatikan maka recovery yang dibisa dilakukan ya hanya sampai terakhir archived log terakhir tersebut.
    2. Kalau Archived log sempat dimatikan, tentunya akan ada gap. Jadinya ya, recovery hanya bisa dilakukan sampai archived log terakhir sebelum gap tersebut.

    Untuk maintain archived log:
    1. Compress (zip) archived log
    2. Kemudian backup di tape atau tempat lain

  8. ip0d says:

    wah archive log di oracle ku terpaksa di matiin nih mas…coz si ora men-generate file .arc sebesar 102 Mb di komputerku pada saat production berjalan.

    selama proses generate itu oracle ku gak bisa di akses untuk manipulasi data. terpaksa di disable nih…

  9. littlebro says:

    Mas Rohmad, saya ada sedikit masalah. Pada waktu saya ingin mounting database ada pesan error mucul seperti ini : RA-12514: TNS:listener does not currently know of service requested in connect escriptor
    Itu kira – kira penyebabnya apa ya mas? Apakah TNSnya? Setahu saya TNS itu diperlukan apabila ada koneksi client server. Padahal saya bekerja stand alone. Sebelumnya terimakasih atas balasannya.
    gambar error bisa dilihat disini</a

  10. ya2ts says:

    Bos aku mau tanya neh… Aku lg install oracle 9i tetapi tidak bisa jalan muncul pesan TNS Operation Time Out..Sedangkan pengaturan Servicenya sudah diaktifkan…
    Sebelumnya memang sudah ada Oracle Developer di PC nya bos..
    Gimana solusinya agar dua database ini berjalan bersamaan ta bos..
    Apa lagi yang perlu saya setting??
    Help Meee buat yang tauu……

    thanks before

  11. Maringan says:

    Pak Rohmad, saya lagi belajar oracle, di tempat saya menggunakan oracle
    10g, apakah setting DB menjadi archivelog mode harus dengan server lain
    atauDB production ditambah archivelog supaya semua transaksi di
    DB production di backup di archivelog, mohon pencerahannya,
    atas bantuannya saya. Saya sampaikan banyak Terimakasih

  12. Pingback: Petunjuk Memahami Database Oracle | Fariz Syahputra

Leave a Reply

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