Nafies Luthfi

Life will always feel wonderful if we always think positively.

Regular Auto Backup MySQL / MariaDB di Ubuntu

Bismillahirrahmanirrahim.

Untuk mengamankan data dari potensi kehilangan Saya butuh melakukan backup seluruh database MariaDB di laptop seminggu sekali, ini adalah hal kedua yang saya lakukan untuk menghindari kehilangan data mysql/mariaDB kalau ada apa-apa di OS linux mint laptop (hal pertama, baca Cara Mengubah Direktori Data MariaDB dengan Symlink).

Waktu googling sana sini, saya ketemu artikel yang berisi bash script untuk membuat backup seluruh database MySQL atau MariaDB menjadi 1 file per database.

https://skycube.net/2014/06/13/backup-all-mysql-databases-in-separate-files

Ini saya buat gist bash script-nya.

Cara menggunakan script

Cara pakainya di localhost/laptop:

  1. Buat script dulu backupMySQLDBsinSingleFiles.sh bebas taruh di direktori mana saja, misal saya di /home/nafies/Documents/Nafies/backups.

  2. Pastikan kedua variable di dalam file tersebut sesuai dengan credential MySQL di localhost

USER='root'
PASSWORD='root_password'
  1. Pastikan MySQL/MariaDB kita sedang aktif.

  2. Coba jalankan script (abaikan [Warning] Using a password...):

$ cd /home/nafies/Documents/Nafies/backups
$ chmod +x backupMySQLDBsinSingleFiles.sh
$ ./backupMySQLDBsinSingleFiles.sh
Starting MySQL Backup
Mon Apr 26 06:41:40 +08 2021
mysql: [Warning] Using a password on the command line interface can be insecure.
Dumping database: database_1
mysqldump: [Warning] Using a password on the command line interface can be insecure.
Dumping database: database_2
mysqldump: [Warning] Using a password on the command line interface can be insecure.
Dumping database: database_3
mysqldump: [Warning] Using a password on the command line interface can be insecure.
Dumping database: database_4
mysqldump: [Warning] Using a password on the command line interface can be insecure.
Finished MySQL Backup
Mon Apr 26 06:41:51 +08 2021
  1. Sampai di sini kita akan mendapatkan direktori/folder baru berupa timestamp 20210426_064140, didalamnya ada file *.sql.gz sebagai file backup tiap database. Seperti gambar di bawah:

    Backup result backupMySQLDBsinSingleFiles.sh

Setup CRON untuk auto backup regular

Sekarang kita lanjutkan membuat CRON sintax agar proses backup jalan otomatis seminggu sekali. Misal tiap hari Sabtu jam 10 pagi. Jalankan perintah di terminal berikut:

$ crontab -e
# Taruh paling bawah
0 10 * * 6 cd /home/nafies/Documents/Nafies/backups && ./backupMySQLDBsinSingleFiles.sh 2>&1 | /usr/bin/logger -t MYSQL_BACKUP

Persis seperti gambar di bawah, kemudian simpan.

CRON setup for backupMySQLDBsinSingleFiles.sh

Sampai di sini selesai prosesnya.

Nanti cron akan melakukan backup otomatis seluruh database setiap Sabtu jam 10 pagi dari setting ini:

0 10 * * 6 

Referensi: https://crontab.guru

Baik teman-teman, itu saja tips cara membuat auto backup database MySQL atau MariaDB secara regular di Ubuntu dan distro turunannya. Jika ada yang belum dipahami, silakan tuliskan dikolom komentar. Semoga bermanfaat, terima kasih.