Back Up Database MySql Harian Secara Otomatis


Berikut ini script sederhana dari saya untuk backup database Mysql secara otomatis. Untuk menjalankannya bisa menggunakan cron. Sebelum memulai langkah – langkah di bawah ada paket yang harus anda install terlebih dahulu (jika belum ada) yaitu bzip2 yang berfungsi mengkompress file hasil backup. Untuk distro Debian atau Ubuntu bisa menggunakan perintah berikut:

apt-get install bzip2

Sedangkan langkah installasi script back up-nya adalah sebagai berikut:

  • Login ke Database Serversebagai root
  • Buat file seperti di bawah dengan nama backupdb.sh
  • Simpan file ke suatu directory. Misal ke directory /sbin
  • Ubah permission file backupdb.sh agar bisa di execute dengan perintah berikut:

chmod + x /sbin/backupdb.sh

  • Edit crontab dengan perintah berikut:

crontab -e

  • Tambahkan baris berikut pada file cron:

* 00 * * * /sbin/backupdb.sh

  • Maksud dari baris di atas adalah menjalankan script /sbin/backupdb.sh pada jam 00 (tengah malam) setiap hari. Deatil mengenai crontab akan saya bahas pada artikel yang lain insya Allah.
  • Simpan file cron dan keluar dari editor

#!/bin/bash

######################################################
# Database Configuration, sesuaikan dengan konfigurasi database Anda
######################################################

db_host=”localhost”
db_user=”root”
db_pass=”password”

######################################################
# Masukkan nama database yang akan di backup berurutan
######################################################

db_name=”db1 db2 db3″

#####################################################
# Nama file backup dibedakan dengan variable waktu, sesuaikan dengan kebutuhan
#####################################################

now=`date +%d%m%Y`
backup_file=”/home/backup/backupdb-$now.sql”

#####################################################
# Simpan database dengan format bz2 ke directory yang sudah di tentukan
#####################################################

mysqldump -h $db_host -u$db_user -p$db_pass –databases $db_name > $backup_file
bzip2 $backup_file

exit 0

Script ini bisa dikembangkan dengan mengirimkan file backup ke ftp server seperti yang pernah saya implementasikan di tempat kerja saya (artikelnya segera akan saya tulis insya Allah). Demikian script sederhana dari saya mudah – mudahan bisa berguna. Mohon koreksi dan saran.