Tutorial cara backup database di Ubuntu

By Admin
29 Jul 2022

Halo teman Ngide, kali ini kita akan belajar bagaimana cara membuat backup database di server Ubuntu. Kenapa kita wajib mempunyai backup? Backup akan sangat penting ketika terjadi kesalahan atau kehilangan data di server sehingga masih ada data cadangan yang bisa kita pakai.

Pada tutorial ini kita akan membuat sebuah script untuk mejalankan backup dan membuat penjadwalan sehingga script tersebut berjalan setiap hari.

1. Membuat script backup

Langkah pertama kita adalah membuat sebuah script dengan nama backup-db.sh di dalam folder scripts.

Buat dulu folder scritps

sudo mkdir /scripts

Buat file backup-db.sh

sudo vim /scripts/backup-db.sh

Lalu copy script di bawah ini ke dalam file tersebut:

#!/bin/bash
#----------------------------------------
# OPTIONS
#----------------------------------------
USER='root'       # MySQL User
PASSWORD='webdev' # MySQL Password
DAYS_TO_KEEP=0    # 0 to keep forever
GZIP=1            # 1 = Compress
BACKUP_PATH='/backups/database'
#----------------------------------------

# Create the backup folder
if [ ! -d $BACKUP_PATH ]; then
  mkdir -p $BACKUP_PATH
fi

# Get list of database names
databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "|" | grep -v Database`

for db in $databases; do

  if [ $db == 'information_schema' ] || [ $db == 'performance_schema' ] || [ $db == 'mysql' ] || [ $db == 'sys' ]; then
    echo "Skipping database: $db"
    continue
  fi

  date=$(date -I)
  if [ "$GZIP" -eq 0 ] ; then
    echo "Backing up database: $db without compression"      
    mysqldump -u $USER -p$PASSWORD --databases $db > $BACKUP_PATH/$date-$db.sql
  else
    echo "Backing up database: $db with compression"
    mysqldump -u $USER -p$PASSWORD --databases $db | gzip -c > $BACKUP_PATH/$date-$db.gz
  fi
done

# Delete old backups
if [ "$DAYS_TO_KEEP" -gt 0 ] ; then
  echo "Deleting backups older than $DAYS_TO_KEEP days"
  find $BACKUP_PATH/* -mtime +$DAYS_TO_KEEP -exec rm {} ;
fi

Ada beberapa options yang harus kamu perhatikan disini:

  1. USER: user database/mysql
  2. PASSWORD: password database/mysql
  3. DAYS_TO_KEEP: 0 berarti file backup tidak akan pernah dihapus, jika kamu ingin hanya menyimpan data backup 30 hari kebelakang maka isi dengan 30
  4. GZIP: 1 untuk zip
  5. BACKUP_PATH: folder dimana hasil backup database kamu akan ditaruh. Disini kita simpan saja di ‘/backups/database’

JIka sudah di copy dan disesuaikan optionnya maka silakan tutup dan save file tersebut.

Beri akses execute untuk file backup-sb.sh agar bisa di jalankan oleh server.

sudo chmod +x backup-db.sh

Jalankan dan test script yang sudah kita buat.

sudo ./backup-db.sh

Jika tidak ada error kamu bisa mengecek folder backups/database untuk melihat hasil backup yang sudah kita buat. Hasilnya mungkin seperti ini tergantung dengan isi database kamu y.

Cara backup database di ubuntu

Hasil backup

2. Penjadwalan Backup

Jika sudah berhasil membuat backup, maka sekarang kita melanjutkan membuat penjadwalan setiap hari.

Caranya dengan memanggil script backup-db.sh di dalam root crontab.

Buka crontab:

sudo crontab -e

Tambahkan cron baru untuk memanggil script backup-db.sh seperti di bawah ini:

@daily sh /scripts/backup-db.sh >> /var/log/mysql-backup.log 2>&1

Simpan dan close.

Kamu bisa menunggu script tersebut dijalankan oleh crontab. Kamu bisa mengecek jika backup berhasil atau error di /var/log/mysql-backup.log.

3. Penutup

Mudah kan? Sekarang kamu sudah mempunyai script untuk membackup database setiap hari. Ini sangat penting untuk jaga-jaga jika terjadi hal-hal yang tidak diingkan dan data kamu hilang?

Semoga tutorial ini bermanfaat untuk kalian ya. Silakan like & share ^^

Artikel Lainnya

Artikel lain yang mungkin menarik juga untuk kamu baca.

Apa itu Persistance Layer?

Kali ini kita akan membahas tentang apa itu persistance layer khususnya dalam PHP OOP. Persistance layer biasa dijelaskan sebagai layer tempat untuk CREATE, UPDATE, DELETE data.
Admin
5 min read

Tips untuk simple code: part 4. Batasi penggunaan variable yang tidak perlu

Tips untuk simple code adalah membatasi penggunaan variable yang tidak perlu. Mau tahu implementasinya seperti apa? Yuk baca artikel ini lebih lanjut.
Admin
5 min read

Tips untuk simple code: part 3. satu level indentation

Part ketiga dari tips membuat kode kamu lebih simple ini adalah bagaimana caranya agar kode yang kamu buat memiliki minimal satu level indentation di dalam fungsi yang kamu buat. Kedengarannya memang susah sih, tapi kita lihat dahulu sample kode di bawah ini.
Admin
5 min read

© 2024