Backup Otomatis Database MySQL atau MariaDB

MySQL database
MySQL database

Sebagai sistem administrator, kepentingan membackup database aplikasi berbasis web secara otomatis apalagi dengan hosting di server dedicated membuat  saya harus memutar otak. Backup otomatis database MySQL atau MariaDB dengan webmin yang biasanya saya pakai tidak bisa berjalan dengan baik. Akhirnya saya mencari dan ketemu script untuk menjalankan backup secara otomatis tiap jam 1 dini hari. Script backup otomatis database mysql atau mariadb ini membuat folder backup tiap hari dan hanya menyimpan file 14 hari terakhir. bisa diubah sesuai dengan kebutuhan.

Copy script berikut:

#!/bin/bash

# Basic configuration: datestamp e.g. YYYYMMDD

DATE=$(date +"%Y%m%d")

# Location of your backups (create the directory first!)

BACKUP_DIR="/backup/mysql"

# MySQL login details

MYSQL_USER="root"
MYSQL_PASSWORD="YOURSECUREPASSWORD"

# MySQL executable locations (no need to change this)

MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump

# MySQL databases you wish to skip

SKIPDATABASES="Database|information_schema|performance_schema|mysql"

# Number of days to keep the directories (older than X days will be removed)

RETENTION=14

# ---- DO NOT CHANGE BELOW THIS LINE ------------------------------------------
#
# Create a new directory into backup directory location for this date

mkdir -p $BACKUP_DIR/$DATE

# Retrieve a list of all databases

databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"`

# Dumb the databases in seperate names and gzip the .sql file

for db in $databases; do
echo $db
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz"
done

# Remove files older than X days

find $BACKUP_DIR/* -mtime +$RETENTION -delete

simpan dengan nama histla_mysqlbackup.sh pada folder /usr/local/sbin/.

Cek juga bahwa folder /backup/mysql sudah ada, atau jika ingin menyimpan di folder lain bisa diubah.

Kemudian ubah permissionnya menjadi 755

chmod 755 histla_mysqlbackup.sh

Buat sebuah cron job setiap jam 1 dini hari menjalankan backup

nano /etc/crontab

0 1 * * * root /usr/local/sbin/histla_mysqlbackup.sh

Selanjutnya tinggal restart service cron jobnya

service cron restart

Demikian cara backup otomatis database mysql atau mariadb dengan mudah dan cepat.

Sumber

,,

Tinggalkan Balasan

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