Backup MySQL Ubuntu

Backup Database MySQL pada Ubuntu / Centos Secara Otomatis

Backup database MySQL pada server yang kamu miliki khususnya jika server mu memakai sistem operasi Linux seperti Centos atau Ubuntu sangat mudah untuk dilakukan. Kamu juga dapat mengatur fungsi backup MySQL tersebut berjalan secara otomatis dalam periode waktu tertentu.

Backup database adalah praktik kunci dalam manajemen data yang berkelanjutan dan perlindungan terhadap kehilangan atau kerusakan data yang tidak terduga. Dengan memiliki backup yang teratur dan terenkripsi, Kamu dapat memastikan bahwa data kamu aman, dapat diakses, dan dapat dipulihkan dengan cepat dalam situasi darurat atau perubahan sistem yang direncanakan.

Berikut adalah panduan langkah-demi-langkah tentang cara melakukan backup database MySQL pada Ubuntu / Centos :

1. Persiapan Awal:

Sebelum kamu mulai membuat backup, pastikan bahwa kamu memiliki akses ke terminal dan telah login sebagai pengguna dengan hak akses sudo atau root.

2. Membuat Backup dengan mysqldump

Buatlah script backup yang nanti akan kita jalankan, kamu bisa menggunakan nano atau vi text editor, Kami sarankan menggunakan nano text editor yang penggunaannya sangat mudah. Buka terminal dan jalankan perintah dibawah ini

nano BackupDBMySQL.sh

Setelah itu tulisankan script dibawah ini

#!/bin/bash

################################################################
##
##   MySQL Database Backup Script
##   Written By: Rahul Kumar
##   URL: https://tecadmin.net/bash-script-mysql-database-backup/
##   Last Update: Jan 05, 2019
##
################################################################

export PATH=/bin:/usr/bin:/usr/local/bin
TODAY=`date +"%Y%m%d"`

################################################################
################## Update below values  ########################

DB_BACKUP_PATH='/home/Backup/db'
MYSQL_HOST='127.0.0.1'
MYSQL_PORT='3306'
MYSQL_USER='root'
MYSQL_PASSWORD='xxxxx'
DATABASE_NAME='penjualan'
BACKUP_RETAIN_DAYS=7   ## Number of days to keep local backup copy

#################################################################

mkdir -p ${DB_BACKUP_PATH}/${TODAY}
echo "Backup started for database - ${DATABASE_NAME}"


mysqldump -h ${MYSQL_HOST} \
   -P ${MYSQL_PORT} \
   -u ${MYSQL_USER} \
   -p${MYSQL_PASSWORD} \
   ${DATABASE_NAME} | gzip > ${DB_BACKUP_PATH}/${TODAY}/${DATABASE_NAME}-${TODAY}.sql.gz

if [ $? -eq 0 ]; then
  echo "Database backup successfully completed"
else
  echo "Error found during backup"
  exit 1
fi


##### Remove backups older than {BACKUP_RETAIN_DAYS} days  #####

DBDELDATE=`date +"%Y%m%d" --date="${BACKUP_RETAIN_DAYS} days ago"`

if [ ! -z ${DB_BACKUP_PATH} ]; then
      cd ${DB_BACKUP_PATH}
      if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; then
            rm -rf ${DBDELDATE}
      fi
fi


### End of script ####

Sesuaikan beberapa paramater script di atas sesuai dengan konfigurasi server dan MySQL yang kamu miliki

  • DB_BACKUP_PATH : Isikan sesuai folder dimana hasil backup database ingin kamu simpan
  • MYSQL_HOST: Isikan host server MySQL
  • MYSQL_PORT : Isikan port server MySQL
  • MYSQL_USER : Isikan user MySQL
  • MYSQL_PASSWORD : Isikan password MySQL
  • DATABASE_NAME : Isikan nama database yang ingin di backup
  • BACKUP_RETAIN_DAYS : File backup akan di simpan sampai berapa lama
    contoh : kamu isikan 7, yang berarti file backup akan di simpan selama 7 hari, jika lebih dari 7 hari file tersebut akan di hapus. Ini berguna untuk menjaga kapasitas penyimpanan server mu tetap tersedia.

Simpan file lalu ubah hak akses agar file BackupDBMySQL.sh dapat di jalankan oleh sistem operasi.

chmod +x BackupDBMySQL.sh
backup mysql ubuntu

3. Uji Coba Backup MySQL

Selanjutnya kita akan mencoba backup MySQL dengan menjalankan perintah

./BackupDBMySQL.sh
backup mysql centos

Database berhasil terbackup, kamu dapat mengecek pada folder tempat hasil backup itu di simpan

backup mysql otomatis

Jika sudah terbentuk file sql.gz berarti backupmu berhasil di jalankan. Kamu juga dapat merestore file tersebut ke database mu agar dapat memastikan bahwa hasil backup dapat di kembalikan secara sempurna.

4. Menjadwalkan Backup Otomatis

Dengan bantuan cronjob kamu dapat menjalankan scirpt backup yang kamu buat secara otomatis. Misal jika kita ingin menjalankannya setiap hari pada tengah malam

  • Buka terminal.
  • Ketik perintah crontab -e dan tekan Enter untuk mengedit crontab file.
  • Tambahkan baris berikut untuk menjadwalkan backup pada waktu yang di inginkan:
0 0 * * * /home/Backup/BackupMbj.sh

Kamu dapat menyesuaikan jadwal crontab sesuai kebutuhanmu. Kamu dapat menggunakan crontab generator : https://crontab.guru/ untuk memudahkan mu menulis script crontab.

Penutup

Backup database MySQL secara otomatis adalah langkah penting dalam menjaga keberlangsungan operasi bisnis dan keamanan data. Dengan memiliki backup yang teratur dan terenkripsi, kamu dapat memastikan bahwa data kamu aman, dapat di akses, dan dapat di pulihkan dengan cepat dalam situasi darurat atau perubahan sistem yang di rencanakan.