Senin, 26 Desember 2011

Setting Database 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, hal ini akan membuat 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 jejak transaksi yang disimpan di log yang ditulis ulang dan tidak akan hilang.

Archived log digunakan untuk recovery database. Bila dilakukan proses 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 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 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.

Tidak ada komentar:

Posting Komentar