Backup dan Restore Database MySQL Membangun database dengan mysql terkadang mengalami kendala karena kesalahan mengetikan perintah dan mengeksekusi perintah sql tersebut dan ternyata berakibat data menjadi hilang atau disebabkan karena suatu sebab lainnya misalnya hard disk bad sector, server hilang, kebakaran atau yang lain. Untuk mencegah kehilangan data, tentunya kita harus melakukan backup database secara berkala, sehingga jika terjadi kejadian seperti di atas kita bisa langsung mengembalikan data sesuai dengan backup database terakhir. Backup database MySQL sebenarnya bisa dilakukan dengan banyak cara dan juga banyak aplikasi yang menyediakan fasilitas backup misalnya melalui PhpMyAdmin, Navicat atau aplikasi yang lain. Berikut ini adalah contoh cara membackup database MySQL dengan aplikasi bawaan MySQL sendiri yaitu aplikasi 'MySQLDump.exe'. Aplikasi ini secara default akan disediakan pada saat anda melakukan installasi MySQL, tepatnya berada pada directory BIN milik MySQL path. A. Backup Database Format penulisan backup menggunakan MySQLDump adalah : mysqldump --opt -u [user] -p[password] [database]>[file_backup.sql] [user] Nama user database [password] kata sandi untuk user database tersebut. Password ini dituliskan di belakang p tanpa ada space. [database] Nama database yang akan di backup [file_backup.sql] Nama file backup yang dihasilkan [--opt] Pilihan mysqldump Backup All Database Proses backup all database ini akan menghasilkan backup yang lengkap. Isi backup ini adalah Database Table Data Table View Trigger, function / procedure Untuk membackup seluruh database mysql, perhatikan contoh berikut : mysqldump --all-databases -u root -p > c:\all_mysql.sql Selanjutnya masukkan password user root Enter password: ****** Jika anda ingin melakukan backup tanpa ada konfirmasi permintaan password anda bisa menggunakan perintah : mysqldump --all-databases -u root -pichwan > c:\all_mysql.sql Perhatikan gambar berikut :
Backup 1 Database Proses backup 1 database ini akan menghasilkan backup yang seluruh object yang ada di dalam database yang ditunjuk saja dan nama database tidak ikut terbackup. Isi backup ini adalah Table Data Table View Trigger, function / procedure Untuk membackup 1 database anda bisa menggunakan pemanggilan nama database. Contoh : mysqldump kursus -u root -p > c:\kursus.sql Backup object ( Table, View dan lainnya ) dari Database Selain backup database anda juga dapat membackup object yang ada di dalam database seperti table, view atau yang lain. Isi backup ini adalah sesuai dengan object yang dibackup. Untuk membackup 1 table atau beberapa table yang ada di dalam database anda bisa menggunakan pemanggilan nama table yang akan dibackup dibelakang nama database table tersebut dengan dipisah space. Contoh : mysqldump kursus instruktur sesi -u root -p > c:\mysql_table.sql B. Restore Database Restore database adalah mengembalikan data yang ada di database sesuai dengan file bakcup yang ditentukan. Format penulisan restore database MySQL adalah : mysql -u [user] -p[password] [database] < [file_backup.sql] [user] Nama user database [password] kata sandi untuk user database tersebut. Password ini dituliskan di belakang p tanpa ada space. [database] Nama database tujuan
[file_backup.sql] Nama file backup yang direstore. Restore All Database Untuk melakukan restore hasil backup all database, anda bisa menggunakan database mysql sebagai database tujuan. Contoh : mysql -u root -pichwan mysql < c:\all_mysql.sql Restore 1 Database Untuk melakukan restore hasil backup 1 database anda bisa menunjuk nama database yang beda dengan nama database yang dibackup sebelumnya. Contoh : mysql -u root -pichwan coba < c:\mysql_kursus.sql Restore Object Database Seperti halnya restore 1 database, anda dapat merestore object database ini ke dalam database lain selain database yang anda backup. Contoh : mysql -u root -pichwan coba < c:\mysql_table.sql C. BACKUP DATABASE SECARA AUTOMATIS Anda dapat melakukan backup secara berkala secara automatis dengan menggunakan fasilitas scheduled Tasks ( Windows ) atau crontab ( Linux ). Dengan cara : 1.Daftarkan directory Bin milik MySQL ( C:\MySQL\bin ) pada path. a. Klik kanan pada My Computer Properties, pilih tab Advanced dan klik tombol Environment Variables
b. Pilih path pada System Variables klik tombol Edit c. Tambahkan tulisan dibawah ini ( jika lokasi MySQL di drive C ); C:\MySQL\Bin
2. Buka aplikasi Notepad, ketikkan perintah berikut : mysqldump --all-databases -u root -pichwan > c:\all_mysql.sql Simpan dengan nama BACKUP_CODE.BAT di C:\ 3. Buka scheduled Tasks dari menu Start Control Panel - Performance and Maintenance - scheduled Tasks. Pada area scheduled Tasks klik kanan pilih new scheduled tasks beri nama backup_mysql. 4. Klik kanan pada scheduled tasks yang baru kita buat pilih properties. Pada tab Task isikan : Run : C:\BACKUP_CODE.BAT Start in : C:\
Pada tab Schedule isikan : Schedule Task : Daily Start Time : 12:00 AM Every : 1
5. Klik OK, jika tampil dialog password, isikan pasword sesuai dengan user yang anda gunakan. Referensi: http://www.percona.com/services/data-recovery-services-mysql.html http://dev.mysql.com/tech-resources/articles/recovering-from-crashes.html http://code.google.com/p/innodb-tools/ http://kb.masterweb.net/beta/index.cgi/read/backup_dan_restore_database_mysql