Mengakali Recovery Data di MySQL Community Edition (Gratisan)
Awank : An… Databasemu nganggo opo? (An.. Kamu menggunakan database apa?).
Saya : Script-e PHP nek database-e nganggo MySQL seng free, ono opo iki ? (Skrip-nya menggunakan PHP dan database-nya menggunakan MySQL yang free, ada apa ini?).
Awank : Aku nganggo MySQL… enek kesalahan pass n-delete, iso di-recovery ora yo? (Aku menggunakan MySQL… ada kesalah pas menghapus data, bisa di-recovery tidak ya?)
Saya : Wealah… yo wess wasallam. (Waduuh… ya udah selesai deh..)
Apakah Anda juga pernah mengalami hal yang dialami teman saya Awank di atas? Kesalahan yang terjadi dalam peristiwa ini adalah kesalahan dari sisi pengguna (pada saat menghapus record). Tapi, bisakah masalah ini ditanggulangi ?
Jika Anda menggunakan database sekelas Oracle, menurut yang pernah menggunakannya (terus terang sampai saat ini saya tidak pernah menggunakan Oracle secara langsung), ada fasilitas untuk melakukan recovery data yang terhapus dari sisi penggunaan Front-End (Kesalah penghapusan data dari user tidak termasuk hilangnya data secara fisik). MySQL Enterprise juga mempunya fasilitas yang sama, tapi tidak untuk MySQL Community Edition (Kok neko-neko, udah dikasih gratis sekarang minta yang bagus :p).
Untuk mencegah terjadinya hal ini (dari sisi programmer), ada beberapa trik yang bisa kita lakukan, misalnya :
- Menambahkan satu field/kolom yang berfungsi sebagai flag di tiap tabel. Isi field ini misalnya INT(1) yang berisi 1 jika record aktif dan flag di-sett ke 0 jika record dihapus dari program. Misalnya ada penghapusan data pelanggan, nilai di field Flag di-set enjadi 0, dengan demikian data tidak benar-benar terhapus
- Menambahkan field untuk mencatat waktu perubahan terakhir setiap record. Sehingga, apabila terjadi kesalahan/keanehan tinggal mengecek berdasarkan waktu update data.
- Mem-backup data secara periodik dan menyimpan dengan mencantumkan tanggal di nama file/folder backup-an
Diatas hanyalah sedikit contoh teknik untuk mempermudah pada saat recovery data (jika menggunakan MySQL Community Edition atau database free lain yang tidak menyertakan fitur recovery data). Kekurangan dari cara diatas adalah bertambahnya ukuran (size) dari setiap record.
Akhir kata, semoga bermanfaat