Jumat, 25 November 2011

Backup dan Restore Database MySQL Menggunakan Script

Sebagai seorang DBA tentunya kita tidak berharap data yang tersimpan di dalam database hilang karena suatu sebab 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.
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

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

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.

Tidak ada komentar:

Poskan Komentar