Script Backup Database

Posted on

Halo, kemarin saya sudah posting mengenai Script Backup Folder, nah sekarang saya mau berbagi untuk script backup databasenya. Kurang lebih mekanismenya sama dengan backup folder, namun pastikan saja service mysql dalam keadaan running untuk menjalankan perintah mysqldump.

Seperti backup folder, script ini hanya berjalan jika kita memiliki akses root terhadap server yang akan dibackup ya. Silakan copy paste script berikut pada file db-backup.sh :

#!/bin/sh

# Database yang ingin kita backup 
# Pisahkan dengan spasi untuk tiap database
databases="mydb1 mydb2"

# Waktu saat ini
date=$(date +"%Y-%m-%d")

# User dan password dari database
# Gunakan root supaya lebih enak
user=username
pass=password

# Tempat menyimpan database
bPath="/var/backups/databases"
bServer=192.168.100.82
bPort=22

# Buat folder bPath diatas jika belum ada
if [ ! -d $bPath ]; then
    mkdir -p $bPath
fi

# Hapus file backup di bPath jika umurnya melebihi 3 hari
find $bPath/*.sql.gz -mtime +3 -exec rm {} \;

# Mulai membackup database
for db in $databases; do
    # Nama dari file backupnya
    file=$db-$date.sql.gz

    # Membackup database dengan mysqldump
    echo "Starting to dump the $db database as $file"
    mysqldump --user=$user --password=$pass $db | gzip -9 > $bPath/$file
done

    # Upload file ke Backup Server menggunakan rsync
    echo "Starting to upload to Backup server"
    rsync -avhHP --progress --delete-after -r -e "ssh -p $bPort" $bPath/ root@$bServer:$bPath
    echo "Backup selesai"

# Clear cache. Hanya untuk KVM, Xen 
# ataupun dedicated server
free -m && sync && echo 3 > /proc/sys/vm/drop_caches && echo "" && free -m

Catatan:

  • Pada bagian databases, silakan sesuaikan dengan database yang akan kita backup. Biasanya saya hanya backup database yang dianggap cukup penting dan critical jika datanya hilang
  • Masukan juga username dan password, disarankan tidak menggunakan root
  • Lokasi server backup juga ditentukan alamat IP-nya

Jika sudah, jangan lupa untuk chmod file tersebut dengan perintah :

chmod +x db-backup.sh

Jalankan perintah berikut untuk menjalankan backup:

bash db-backup.sh

Jika sudah menjalankan perintah diatas, maka akan langsung melakukan backup dan lamanya proses tergantung dengan kapasitas data dari database yang akan dibackup.

Seperti dengan backup folder, script backup database ini bisa diintegrasikan untuk otomatisasi seperti pada Otomatisasi Backup Folder loh..

Semoga berhasil menerapkan, See you~~

Gravatar Image
Seorang warga negara Indonesia biasa. Pengguna MAC dan develop server Ubuntu & CentOS. Contact : admin [at] nugi.biz

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.