Tuesday, March 14, 2017

Backup Harian MariaDB Secara Otomatis dengan MySQLdump dan Crontab

  No comments
Illustration Image | Source Image: DominicM
Assalamu'alaikum Wr. Wb.
Diartikel ini saya akan menuliskan tentang bagaimana caranya mengotomatiskan Backup Database Harian MariaDB menggunakan MySQLdump dan Crontab. Ini merupakan salah satu Program Kerja Bersama SMK Negeri 1 Pedan dengan SMK Negeri 1 Sawit (6 s/d 11 Maret 2017).

a. Pengertian
MySQLdump atau mysqldump merupakan sebuah tool yang dapat digunakan untuk melakukan operasi backup atau pencadangan dari sekumpulan atau sebuah database.

Sedangkan Cron sebuah tool berbasis waktu yang dapat digunakan untuk menjalankan perintah secara rutin pada sistem operasi UNIX.

b. Latar Belakang
Dikarenakan saya ingin mencoba mengotomatiskan tugas-tugas harian sistem salah satunya adalah melakukan Backup Database ini. Dan juga saya ingin membuat semua tugas-tugas yang penting berjalan secara Fully Automated dan pada waktu yang tepat dan terjadwal.

c. Maksud dan Tujuan
Percobaan ini bertujuan agar dapat mengetahui, memahami, dan mempraktekkan bagaimana melakukan konfigurasi Backup Database Otomatis dan Terjadwal.

d. Waktu Pengerjaan
Waktu yang dibutuhkan untuk melakukan percobaan ini kurang lebih 10-15 Menit.

e. Alat dan Bahan
- PC
- 2 (Dua) Komputer Server

f. Langkah Pengerjaan
1. Buat Script Bash sederhana yang berisi Perintah MySQLdump
Pembuatan Script Bash dilakukan dengan tujuan memudahkan penulisan di Crontab dan memudahkan penggunaan dilain waktu.
Contoh Script Bash yang saya gunakan:
mysqldump -h localhost -u root -p12345 --databases wordpress > /home/fajar/dump.sql && scp -i /home/fajar/.ssh/id_rsa /home/fajar/dump.sql fajaruslv@192.168.101.2 ; rm /home/fajar/dump.sql 
Script ini akan melakukan backup sebuah database bernama Wordpress apabila dijalankan. Dan akan menyimpannya dengan nama dump.sql yang berlokasi di /home/fajar/ dan kemudian akan ditransfer ke server lain dengan tool scp menggunakan proses autentikasi Key Pair agar dapat login secara passwordless. Setelah transfer selesai, file yang disimpan pada server lokal tersebut (yang bukan server transfer) akan otomatis dihapus.

Jika ingin membackup semua database yang ada, teman-teman dapat mengganti --databases wordpress menjadi --all-database.

2. Memasukkan Script ke Crontab
Seperti biasa, silahkan buka file Schedule Cron kalian dengan perintah crontab -e pada User root. kemudian tambahkan baris berikut di paling bawah.
0   1   *   *   *   cd  /  && sh /home/fajar/backup.sh
Sesuaikan teks yang saya cetak biru dengan konfigurasi teman-teman.

Perintah Crontab ini akan berjalan setiap jam 01:00 Pagi. Sekedar info, Saya baru menyadari, bahwa Current Working Directory akan berpengaruh besar pada jalannya Perintah Cron. Jadi bagi teman-teman yang menjalankan perintah Cron yang cukup berbahaya seperti perintah Delete (rm) terutama dengan argumen Force dan Recursive (-rf), saya sangat menyarankan untuk berhati-hati. Penggunaan Chain Command yang tidak tepat dan Gagalnya Pergantian Directory akan membahayakan file teman-teman!

Apabila sudah silahkan simpan konfigurasi tersebut.

3. Backup Otomatis telah Berjalan!
Script akan menunggu sampai waktu yang ditentukan untuk dieksekusi.

g. Referensi
--

h. Kesimpulan
Dengan memanfaatkan Cron dan MySQLdump, tidak hanya cepat dalam membackup database namun juga kita bisa mengotomatiskan prosesnya. Karena dalam Lingkungan Produksi, tidak mungkin kita akan membackup disaat jam-jam sibuk bukan?

Cukup sekian yang dapat saya tulis, semoga bermanfaat bagi teman-teman semuanya!
Dan seperti biasa, Terima Kasih!
Wassalamu'alaikum Wr. Wb.

No comments :

Post a Comment