Sebagai layanan data, MySQL tidak lepas dari berbagai macam risiko. Risiko adalah potensi terjadinya insiden. Potensi terjadinya hal-hal yang tidak diinginkan, dan tidak diketahui kapan persis terjadinya. Kadang, sebagian risiko tersebut akan memiliki dampak (impact) yang besar terhadap database. Entah corrupt, rusak, atau bahkan terhapus. Belakangan ini, ransomware mulai menjamah database MySQL. Dilaporkan puluhan ribu kasus database di MySQL Server mengalami perusakan oleh ransomware. Ransomware tersebut menyatakan bahwa mereka telah mengenkripsi database tersebut, dan minta tebusan sejumlah uang untuk mendapatkan kunci dekripnya. Show Mengenal MySQL DumpDatabase yang ada di dalam MySQL dapat disimpan dalam file text berformat SQL dengan menggunakan perintah mysqldump. Sintaks mysqldump dasarnya adalah sebagai berikut : Backup database tertentu : 1 mysqldump namadatabase -u user -ppassword 〉 namadatabase.sql Backup database dan tabel tertentu : 1 mysqldump namadatabase namatable -u user -ppassword 〉 namatable.sql Backup All Database 1 mysqldump --all-database -u user -ppassword 〉 namafile.sql Terkadang, ada kebutuhan khusus, membackup database lengkap dengan Stored Procedure, Trigger dan Functions 1 mysqldump namadatabase -u user -ppassword -R -K --triggers 〉 namadatabase.sql Terkadang, diharapkan dapat membackup database yang ada pada remote server, dan tidak pada port standar MySQL. Maka sintaksnya adalah : 1 mysqldump namadatabase -u user -ppassword -h 192.168.10.1 -P 4406 -R -K --triggers 〉 namadatabase.sql Mengenal Bash ScriptBash merupakan sebuah Unix Shell. Shell adalah antar muka antara mesin dengan manusia. Wujudnya adalah text mode. Manusia dapat memberikan perintah dengan mengetikkan command-command bash. Nah, sejarah tentang Bash dapat dilihat di https://en.wikipedia.org/wiki/Bash_(Unix_shell). Kumpulan perintah Bash Shell ini dapat digabungkan dan diurutkan dalam sebuah program script, yang selanjutnya dinamakan dengan Bash Script. Bash Script inilah yang banyak digunakan untuk membuat otomasi program, termasuk auto backup MySQL. Sebagai sebuah bahasa pemrograman script, bash shell memiliki persyaratan sebagai sebuah bahasa pemrograman. Antara lain :
Untuk mempelajarinya, sobat kampus dapat lebih detail di sini. Membuat Script Auto Backup MySQLTim eCampuz memiliki sebuah simple script auto backup yang biasa digunakan untuk melakukan backup MySQL secara otomatis. Script tersebut berisi perintah-perintah :
Pada script ini, diberikan pilihan. Apakah kita akan membackup seluruh database satu persatu, atau menentukan database tertentu saja yang akan dibackup. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #!/bin/bash #script auto backup database by ecampuz #bagian-1 user=userbackup pass=pass123 host=localhost dir=/home/ecampuz/backup_sql
#bagian-2 backup(){ date=$(date +%Y%m%d-%H%M) tanggal=$(date +%d) bulan=$(date +%m) tahun=$(date +%Y) if [ ! -d "$dir/$tahun/$bulan/$tanggal/" ]; then mkdir --parents $dir/$tahun/$bulan/$tanggal; fi dump=/usr/bin/mysqldump $dump $dbs -u$user -p$pass -h$host -R -K --triggers 〉 $dir/$tahun/$bulan/$tanggal/$dbs-$date.sql gzip -f $dir/$tahun/$bulan/$tanggal/$dbs-$date.sql }
#bagian-3 #######jika seluruh db dalam grant tersebut ingin dibackup sql=/usr/bin/mysql
for dbs in $($sql -u$user -p$pass -e 'show databases' | sed 1d); do if [ "$dbs" != "mysql" ] || [ "$dbs" != "information_schema" ] || [ "$dbs" != "performance_schema" ]; then backup; fi; done;
#bagian-4 #######jika database ditentukan yang akan dibackup
#database="db1 db2 db3" #for dbs in $database #do #backup #done exit 0
#bagian-5 rm `find /home/ecampuz/backup_sql/ -mtime +365` Pada bahasa bash ataupun shell yang lain, tanda # berarti tidak dijalankan, alias dianggap sebagai komentar saja. Pada script bagian-1, merupakan baris definisi variable. Bagian user dan password , adalah user password database yang memiliki kemampuan untuk melakukan dump/backup. Jika usernya adalah root, maka pastikan script ini terlindungi dari terbaca oleh pihak selain root. Pada bagian-2, dibuatlah fungsi backup(), fungsi ini dibagi lagi menjadi dua :
Struktur direktori auto backup yang direncanakan adalah sebagai berikut : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 └── 2020 │ ├── 01 │ │ ├── 01 │ │ ├── 02 │ │ │ │ ........... └── 2021 ├── 01 │ ├── 01 │ ├── 02 │ ├── 03 │ ├── 04 │ ├── 05 │ ├── 06 │ ├── 07 ├── db1-20210107-0101.sql.gz ├── db2-20210107-0101.sql.gz ├── db3-20210107-0101.sql.gz ├── db4-20210107-0101.sql.gz Pada pangkal direktori akan terisi nama direktori tahun. Selanjutnya dalam direktori tahun akan ada subdirektori bulan. Di dalam subdirektori bulan, akan ada subdirektori tanggal. Di dalam tanggal terdapat nama database yang dibackup. Bagian 2 ini merupakan fungsi utama dari backup. Semua dieksekusi pada fungsi backup(). Bagian-3 adalah bagian melisting seluruh database dengan show databases, dan sekaligus memanggil fungsi backup. Sedangkan bagian-4 adalah melisting database hanya yang ditentukan oleh user saja. Script tersebut sebaiknya diberikan permission executable. Misal script itu diletakkan di /root dan bernama sqlbackup.sh. Maka berikan atribut executable untuk script tersebut. 1 chmod +x /root/sqlbackup.sh Silakan diuji dengan cara dijalankan.. Perintahnya bisa menggunakan : 1 /root/sqlbackup.sh Dengan dijalankannya script tersebut, harusnya direktori tahun, bulan dan tanggal akan segera terbentuk. Pastikan parameter config pada bagian-1, bagian dir, sudah sesuai dengan struktur direktori yang sobat kampus miliki. Lho kok di bagian-5 ada perintah rm? Yes. Bagian-5 memiliki fungsi penting agar menjaga server tidak lekas penuh. File yang ada di find /home/ecampuz/backup_sql/, akan dihapus yang berusia lebih dari 365 hari. Membuat Cronjob Auto Backup DatabaseSetelah dipastikan bahwa script tersebut berjalan dengan baik, saatnya sobat kampus membuat penjadwalan otomatis agar auto backup berjalan pada jam-jam yang dikehendaki. Kita bisa menuliskan penjadwalan tersebut pada /etc/crontab, bisa juga pada perintah crontab -e. Eh, sudah kenal crontab? Crontab adalah model penjadwalan untuk sistem operasi Unix dan Linux. Mari kita bahas dulu crontab… 1 2 3 4 5 6 7 # |---------------- menit ke (0 - 59) # | .------------- jam ke (0 - 23) # | | .---------- tanggal (1 - 31) # | | | .------- bulan (1 - 12) # | | | | .---- hari ke, dalam pekan (0 - 6) (Minggu=0 or 7) # | | | | | # * * * * * command.sh Terdapat 5 buah bintang:
Contoh, saya ingin menjalankan auto backup tiap jam 01.01 malam, maka saya akan mengisikan sebagai berikut 1 1 1 * * * /home/ecampuz/sqlbackup.sh Apa bedanya crontab -e dengan /etc/crontab? Diharapkan semua proses crontab itu atas nama user, jadi menggunakan crontab -e. Penulisan di /etc/crontab harus juga disertakan dengan user yang mengeksekusinya. Pada crontab -e, semua user dapat menuliskan penjadwalan sendiri-sendiri. Kita dapat melakukan uji crontab dengan auto backup, dengan membuat jam backup secara dummy yang mendekati pada jam sekarang. Untuk sistem operasi Linux CentOS, dapat juga dimonitor lognya pada file text /var/log/cron. Sedangkan pada Ubuntu / Debian, dapat dilihat pada /var/log/message atau /var/log/syslog. Ngomong-ngomong crontab, bisa nggak si kita membuat crontab yang jalan 5 menitan sekali? Bisa saja.. Dengan cara seperti berikut : 1 */5 * * * * /home/ecampuz/testscript.sh Nah, setelah kita pahami tentang auto backup database, di catatan selanjutnya sobat kampus akan belajar cara mengkopi database ke lain server secara berkala juga. Untuk script auto backup ini, silakan dicoba lebih dulu, selamat scripting, semoga sukses dan bermanfaat. Langkah langkah menjalankan program database MySQL?MySQL Membuat Database dan Table. Buka command prompt dengan cara tekan ctrl + R keudian ketik cmd lalu enter.. Buka MySQL dengan cara mengetikan cd AppServ\MySQL\bin\MySQL.. Bila meminta password, masukkan password yang kalian buat (tapi biasanya password defaultnya “root”). Bagaimana cara membuat database di MySQL?Untuk membuat database MySQL baru, masuk cPanel dan klik menu MySQL Databases:. Pilih nama database. Prefix defaultnya adalah "yoururser_". ... . Scroll ke bawah dan cari Add New User. Masukkan username dan password, lalu klik Create User:. Cari opsi Add User To Database untuk menghubungkan User ke Database. ... . Selesai!. MySQL menggunakan model database apa?1. Pengertian MySQL. MySQL merupakan sistem manajemen database relasional (RDBMS) yang bersifat open source berbasis SQL dan bekerja dengan model client-server. MySQL sering juga disebut dengan my sequel.
Bagaimana cara memulai service MySQL?Klik menu Start > Control Panel > System and Security > Administrative Tools dan dari jendela yang terbuka, klik ganda Services. Untuk mulai menjalankan servis Windows dari MySQL, klik kanan pada MySQL dan pilih Start pada menu pop-up yang muncul.
|