Backup Otomatis Database MySQL Menggunakan Cron Posted by awal

Backup Otomatis Database MySQL Menggunakan Cron
Posted by awal
June 18, 2012
Melakukan backup database MySQL secara berkala sangat penting bagi system kita, sehingga jika terjadi kerusakan system, kita masih bisa menyelamatkan data – datanya.
Tetapi jika proses backup kita lakukan secara manual tentunya akan sangat merepotkan. Pada tulisan ini akan menjelaskan bagaimana melakukan backup otomatis database
mysql menggunakan cron.
Berikut adalah langkah – langkah setting autobackup mysql :
Langkah pertama adalah membuat folder tempat hasil backup (misal: /home/awal/backup) :
mkdir /home/awal/backup
kedua, membuat shell script, karena proses backup dilakukan dengan menggunakan shell script :
touch mysqlbackup.sh
taruh file diatas di /home/awal/backup
ketiga, isi file diatas dengan script dibawah ini, dan sesuaikan parameter koneksi dan nama – nama database yang ingin di backup :
#!/bin/sh
#tanggal melakukan backup
tgl=`/bin/date +%Y%m%d_%H-%M`
#folder path tempat meletakkan file backup
path='/home/awal/backup'
dpath=`/bin/date +%Y/%m`
#parameter untuk koneksi kedatabase
user="root"

pass="root"
host="localhost"
port="3306"
#nama beberapa database yang akan dibackup
dbnames="dbku1 dbku2 dbku3 dbku4"
#looping untuk melakukan backup per database
for db in $dbnames; do
#folder tempat file bakcup
filepath=${path}/${db}/${dpath}
#namafile file backup
filename=${db}_${tgl}.sql
#create direktory per database jika belum ada
if [ ! -d $filepath ]; then /bin/mkdir -p $filepath; fi
#masuk kedirektori backup
cd $filepath
#proses backup
/usr/bin/mysqldump --user=${user} --password=${pass} --host=${host} --port=${port} ${db} > ${filename}
#compress file backup
/bin/tar -czf ${filename}.tar.gz $filename
#hapus file aslinya

/bin/rm $filename
done
keempat, pastikan script diatas bisa dieksekusi :
chmod +x mysqlbackup.sh
kelima, tes apakah script diatas sudah berjalan dengan benar :
./mysqlbackup.sh
jika berjalan dengan benar maka di folder /home/awal/backup akan ada folder – folder berdasarkan nama tiap database, dan didalam folder – folder tersebut terdapat hasil
backup yang sudah terkompresi.
keenam, edit crontab agar proses backup berjalan otomatis (misal: backup dilakukan tiap hari pada jam 23:30) :
crontab -e
Isikan di baris paling bawah dengan script :
30 23 *
*
*
/home/awal/backup/mysqlbackup.sh
Untuk penjelasan lebih detail mengenai cron bisa anda baca Penggunaan Cron Scheduler di Debian.
NB:
- Proses backup diatas dijalankan dalam satu komputer dengan mysql server.
- Jika backup dilakukan di komputer lain, harus diinstall mysql client.