Hanya sekedar memberi informasi tentang perbedaan pengertian backup, restore dan recovery dalam
database. Sebagian kalangan kadang belum begitu tepat dalam mengartikan kata RECOVERY. Ada yang
mengatakan “Saya sudah melakukan recovery”, padahal dia hanya melakukan proses restore.
BACKUP
Backup secara sederhana diartikan sebagai proses copy data operasional ke media lain. Pilihan metode
dan strategi backup yang digunakan tergantung dari kebutuhan dan kondisi.
Perhatikan gambar dibawah ini, t0 adalah database dalam kondisi awal, kemudian database dibackup pada
saat t1 (1). Setelah dibackup database digunakan untuk operasional.
RESTORE
Proses mengembalikan atau copy file backup database ke server database (3). Setelah proses restore
selesai berarti database kembali pada kondisi saat terakhir kali dibackup atau kalau pada gambar database
kembali ke kondisi t1.
RECOVERY
Pada saat crash database berada pada posisi tn, kemudian dilakukan restore. Restore hanya
mengembalikan database ke kondisi backup yang terakhir. Proses mengembalikan transaksi yang terjadi
antara posisi backup terakhir sampai terjadinya crash inilah yang disebut proses recovery (4). Jadi proses
recovery secara normal harus bisa mengembalikan semua transaksi sampai sesaat sebelum terjadinya
crash database. Lebih lanjut proses recovery ini nantinya dibagi menjad beberapa mode dan strategi
tergantung dari jenis backup yang kita miliki dan jenis kerusakan yang terjadi pada database.
A. Backup dan Metode Recovery
Pengertian backup data adalah memindahkan atau menyalin kumpulan informasi (data) yang tersimpan di
dalam hardisk komputer yang biasanya dilakukan dari satu lokasi/perangkat ke lokasi/perangkat lain.
Data atau kumpulan informasi tersebut bisa berupa file dokumen, gambar, video, audio, system windows,
driver, atau software/program tertentu.
Backup data merupakan salah satu kegiatan yang harus dilakukan oleh pengelola database untuk
melakukan penyalinan sistem,data,dan aplikasi. Backup data harus dilakukan untuk terjadinya kerusakan
sistem dari luar maupun dalam sistem yang disengaja atau ditentukan.
a. Konsep Backup
Proses backup dalam teknologi informasi mengacu pada penyalinan data, sehingga salinan tambahan
tersebut bisa digunakan untuk mengembalikan (restore) setelah peristiwa kehilangan data. Backup sangat
berguna terutama untuk dua tujuan yaitu untuk memulihkan keadaan setelah bencana (disaster recovery)
dan untuk mengembalikan beberapa file yang sengaja dihapus atau rusak. 66% pengguna internet telah
kehilangan data yang serius. Konsistensi data dalam proses backup harus dijaga sebelum melakukan
backup data. Mengecek konsistensi data dengan membandingkan data pada struktur direktori dengan data
pada blok. Lalu, apabila ditemukan kesalahan maka program backup akan mencoba memperbaiki.
Pengecekan kekonsistenan data inilah yang disebut dengan Recovery.
Backup dapat dibagi berdasarkan lingkup datanya menjadi :
· Full Backup
· Network Backup
· Dump Backup
· Incremental Backup
· Diferensial Backup
b. Konsep Replikasi
Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dengan objek-objek
database dari satu database ke database lain dan melakukan sinkronasi antara database sehingga
konsistensi data dapat terjamin. Jenis-jenis replikasi meliputi :
· Snapshot Replication
· Transactional Replication
· Merge Replication
Untuk keperluan ini MySQL memerlukan utility yang dinamakan MySQL Dump. MySQL Dump adalah
utilitas berupa program cadangan yang pertama kali ditulis oleh Igor Romanenko, digunakan untuk
pembuangan (dump) data sebuah database, untuk cadangan (backup) atau pemindahan (transfer) data
keserver lain. Hasil dumping dapat berisi pernyataan SQL untuk membuat tabel,insert dan yang lain
dalam bentuk file CSV,teks editor , atau format XML.
Berikut ini adalah metode yang bisa dilakukan saat akan melakukan backup data :
Melakukan backup file diakun Cpanel kita secara mandiri akan memudahkan kita jika suatu saat ada
sesuatu yang bermasalah diserver. Misalnya, hardisk utama mengalami kebakaran ataupun bad
sector/crash yang membutuhkan waktu lama untuk repair/perbaikan. Biasanya dalam hal ini webhoster
akan memindahkan akun kita keserver lain yang masil berjalan normal.
Backup bisa digunakan untuk restore serelah failure. Failure disebabkan oleh :
Ø Media Failure;
Ø User error, misal : tidak sengaja drop table;
Ø Hardware failure, misal : disk-drive rusak atau permanent loss sebuah server dan;
Ø Natural disasters
Apakah berubahan kecil atau besar terjadi pada database? Untuk database besar yang terkonsentrasi pada
bagian file atau filegroups, pilih partial backup atau file backup.
Berapa banyak ruang disk dibutuhkan untuk backup? Perkiraan disk space terutama untuk full database
backup. Backup berisi data actual pada database , tidka termasuk space kosong/ tidak digunakan.
Seharusnya ukuran backup lebih kecil dibanding database itu sendiri. Gunakan system Stored Procedure
sp_spaceused.
2. Recovery
Adalah suatu proses untuk mengupdate database dengan file backup yang telah disimpan terakhir kalinya. Recovery
ini memiliki model yaitu Recovery model yang digunakan untuk menentukan tipe backup dan skenario restore dan
mengkontrol bagaimana transaction log dikelola. Database yang menggunakan model recovery adalah sebagai
berikut :
a. Full Recovery Model
Pada model ini, transaction log akan di truncate (dipotong) pada saat dilakukan backup transaction log. Pemotongan
Transaction log hanya terjadi pada saat backup transcation log. Pada full recovery model, backup transaction log
harus dilakukan secara berkala agar transaction log tidak membengkak. Sebagai catatan, perintah truncate
transaction log tidak akan berpengaruh pada ukuran transaction log.
Full recovery model menggunakan Log backup untuk menghindari kehilangan data karena skrenario kegagalan.
Dapat me-restore database kesuatu titik waktu yang terdapat dalam log backup (pint-in-time recovery). Dapat
menggunakan log backup untuk roll-for-ward database kesuatu titik pada suatu log-backup. Misal, bisa membackup
active log (tail) setelah terjadi bencana maka dapat merestore database ketitik terjadi kegagalan tanpa kehilangan
data. Kelemahannya membutuhkan media penyimpanan besar dan waktu restore dan kompleksitas meningkat.
Ilustrasi Full Recovery Model
1. Full database backup + log (yang paling mudah)
– Backup full database : Db_1 ; Log Backup ; Log_1 , Log_2
– Setelah Log_2, hilangnya data terjadi
– Sebelum ketiga backup direstore, db admin harus membackup acvtive log (tail of the log/tail)
– Restore db_1 , Log_1 , Log_2 tanpa recovery database
– Db admin merestore dan merecover tail
– Database ter-recover ketitik kegagalan , merecover semua data
2. Strategi backup mengurangi workloss exposure dengan
– Differential Backup+log
– Transaction log backup mengurangi workless exposure potensial setelah log backup terbaru, t14
– Rangkaian 3 diff backup digunakan mengurangi jumlah transaction log that akan direstore kalau ada kegagalan
– 3 diff backup cukup besar untuk backup berikutnya sebagai full database backup.
3. Sebelum backup database pertama, ada kemungkinan hilangnya data pada t0-t1
4. Setelah itu Log Backup yang rutin mengurangi kemungkinan hilangnya data setelah log backup terakhir
5. Bila ada kegagalan, maka db admin membackup tail of the log (tail) atau log yang belum dibackup.
6. Bila tail-log sukses dibackup. Db admin dapat menghindari kehilangan data dengan merestore ketitik kegagalan.