CentOS: Backup Database MySQL

BY IN Linux Comments Off on CentOS: Backup Database MySQL

Kalau kita memiliki akses console, kita dapat melakukan backup terhadap database MySQL dengan cara sebagai berikut:

# mysqldump -u user -p database | bzip2 -c > /home/user/public_html/data/nama_database$(date +%Y-%m-%d-%H.%M.%S).sql.bz2
Enter password: ********

Perintah diatas akan mengekspor database dalam format sql yang dikompresi dalam bentuk bz2 yang disimpan di folder data, dan dapat didownload dari FTP. Format bz2 ini adalah format kompresi, dimana file yang dihasilkan lebih kecil daripada format zip biasa. Jika anda pengguna windows, program WinRAR dapat mengunzip format ini. Jika kita mau mengimport data ini, kita tinggal download dengan FTP, lalu mengunzip file ini dengan WinRAR. Sebagai catatan, database saya sebesar 1.0 GB, dapat dikompresi menjadi hanya 40 MB saja!!!

Lalu, kita import data tersebut dengan perintah sbb (asumsi, kita menggunakan XAMPP for Windows)

xampp/mysql/bin> mysql -u user -p database < nama_database.sql
Enter password: ********

Terkadang proses import tidak berhasil sepenuhnya dan kita akan menjumpai error semacam ini:
ERROR 2006: MySQL Server has gone away!

Solusinya, kita akan mengedit file my.ini yang ada di /xampp/mysql/bin

Ubah nilai “max_allowed_packet” yang defaultnya adalah 1M, menjadi 25M, silakan di-SAVE dan Restart APACHE dan MySQL Service.

Jika berhasil, selanjutnya kita akan mencoba membuat shell script, sehingga proses backup dapat kita jalankan melalui shell script yang disetting dalam crontab.

Langkahnya dalah sebagai berikut:

# touch /bin/backup.sh
membuat file shell baru backup.sh

# nano /bin/backup.sh
mulai menuliskan shell scriptnya sbb:
#!/bin/sh
#backup.sh
Mdate=”$(date +”%Y.%m.%d.%H.%M.%S”)”
mysqldump -u user -ppassword database | bzip2 -c > /home/user/public_html/data/backup.$Mdate.sql.bz2

save dan exit.

Selanjutnya kita akan mengubah atribut filenya menjadi executable:

# chmod +x /bin/backup.sh

sampai pada langkah ini, kita bisa menjalankan shell script tersebut dengan perintah:

# sh /bin/backup.sh  atau langsung dengan mengetikkan
# /bin/backup.sh

Setelah dipastikan shell script berjalan dengan benar, kita akan setting di crontab CentOS

# nano /etc/crontab


59 23 * * * root /bin/backup.sh

Tambahkan baris terakhir diatas dan save. Jika semuanya benar, maka database MySQL kita akan otomatis terbackup setiap malam jam 23:59.




Comments are closed.