Monday, May 7, 2012

MySQL : Backup Database Using Mysqldump

techtwitt.com
Kita tidak mengetahui yang akan terjadi nanti dengan dengan database kita pada esok hari, bisa saja tiba-tiba terjadi kerusakan atau terhapus.

Untuk mengantisipasi hal tersebut maka kita perlu melakukan backup database secara rutin.



Backup database terbagi menjadi dua yaitu struktur atau DDL (Table, Store Procedure, Trigger dan semacamnya) dan data.

Pada database MySQL telah tersedia sebuah fitur untuk melakukan berbagai macam variasi backup database.

Pada posting ini akan menjelaskan backup database menjadi file text yang didalam berisikan SQL (Struktur Query Language) menggunakan command mysqldump melalui cara command line.

1. Berikut ini adalah cara melakukan backup database untuk mendapatkan struktur & data.

Pola
mysqldump -u[usename databasebase] -p[passwrod database] -R [nama database] > [nama file]
Contoh
mysqldump -uroot -ppass -R sisfo_kampus > data-struktur.sql
Penjelasan
  • mysqldump : adalah command untuk melakukan backup database.
  • -u : adalah parameter untuk memasukan username.
  • -p : adalah parameter untuk memasukan password.
  • -R : adalah parameter untuk memberikan perintah dalam melakukan proses backup database agar menyertakan routine (Store Procedure dan Function).
  • > : adalah perintah untuk meletakan data dan memberi nama file untuk hasil backup database.

2. Berikut ini adalah cara melakukan backup database untuk mendapatkan struktur atau DDL saja.

Pola
mysqldump -u[usename databasebase] -p[passwrod database] -R --no-data [nama database] > [nama file]
Contoh
mysqldump -uroot -ppass -R --no-data sisfo_kampus > struktur.sql
Penjelasan
  • mysqldump : adalah command untuk melakukan backup database.
  • -u : adalah parameter untuk memasukan username.
  • -p : adalah parameter untuk memasukan password.
  • -R : adalah parameter untuk memberikan perintah dalam melakukan proses backup data menyertakan dengan routine (Store Procedure dan Function).
  • --no-data : adalah parameter untuk memberikan perintah dalam melakukan proses backup databaset agar tidak menyertakan data.
  • > : adalah perintah untuk meletakan data dan memberi nama file untuk hasil backup database.

3. Berikut ini adalah cara melakukan backup database untuk mendapatkan data saja.

Pola
mysqldump -u[usename databasebase] -p[passwrod database] --skip-triggers --compact --no-create-info [nama database] > [nama file]
Contoh
mysqldump -uroot -ppass --skip-triggers --compact --no-create-info sisfo_kampus > data.sql
Penjelasan
  • mysqldump : adalah command untuk melakukan backup database.
  • -u : adalah parameter untuk memasukan username.
  • -p : adalah parameter untuk memasukan password.
  • --skip-triggers :  adalah parameter untuk memberikan perintah dalam melakukan proses backup database agar tidak menyertakan trigger.
  • --compat : adalah parameter untuk memberikan perintah cara ringkas untuk melakukan proses backup database.
  • --no-create-info : adalah parameter untuk memberikan perintah tidak menyertakan statement membuat table.
  • > : adalah perintah untuk meletakan data dan memberi nama file untuk hasil backup database

4. Berikut ini adalah cara melakukan backup database untuk mendapatkan data pada suatu table.

Pola
mysqldump -u[usename databasebase] -p[passwrod database] [nama database] [nama table]  > data.sql
Contoh
mysqldump -uroot -ppass sisfo_kampus mahasiswa > data.sql
Penjelasan
  • mysqldump : adalah command untuk melakukan backup database.
  • -u : adalah parameter untuk memasukan username.
  • -p : adalah parameter untuk memasukan password.
  • > : adalah perintah untuk meletakan data dan memberi nama file untuk hasil backup database.

5. Berikut ini adalah cara melakukan backup database untuk mendapatkan data pada suatu table dengan kriteria data tertentu.

Pola
mysqldump -u[usename databasebase] -p[passwrod database] [nama database] [nama table] --where [nama kolom]=[filter data] > data.sql
Contoh
mysqldump -uroot -ppass sisfo_kampus mahasiswa --where jurusan=\'TI\' > data.sql
Penjelasan
  • mysqldump : adalah command untuk melakukan backup database.
  • -u : adalah parameter untuk memasukan username.
  • -p : adalah parameter untuk memasukan password.
  • menyertakan dengan routine (Store Procedure dan Function).
  • --where : adalah parameter untuk memberikan perintah untuk memberikan kriteria data pada table yang akan di filter.
  • > : adalah perintah untuk meletakan data dan memberi nama file untuk hasil backup database.

14 comments:

  1. hi, saya mau tanya donk,
    saya coba dengan code brkt tapi hasilnya blanks yah?ada yg bisa bantu
    $backupFile = 'backup/t_cust.sql';
    $command = "mysqldump -u root -p -r csv_db t_cust > $backupFile";

    ReplyDelete
    Replies
    1. udah coba "mysqldump -uroot -p -R csv_db t_cust > $backupFile"

      hurup setelah -u jangan ada spasi, karena kalau ada spasi akan memunculkan promt untuk menginputkan password.

      Delete
  2. terima kasih mas, artikelnya sangat membantu saya.:D
    oiya mas, kalo cara restore backup-an nya gimana ya?

    ReplyDelete
    Replies
    1. Cara restorenya bisa di lihat di sini -> http://dendieisme.blogspot.com/2009/04/backup-dan-restore-database-mysql.html

      Delete
  3. artikel yang menarik, kami juga punya artikel tentang 'database' silahkan buka link ini
    http://repository.gunadarma.ac.id/bitstream/123456789/2350/1/02-02-005-Database%5BAgung%5D.pdf
    semoga bermanfaat ya

    ReplyDelete
    Replies
    1. Terima kasik mbak..

      alhamdulilah, semakin banyak yang sharing akan sangat baik.

      Terima kasih sudah sharing

      Delete
  4. kalo untuk membuat seperti fasiltas copy different/Hostname di sqlyog, bagaimana ya mas...
    saya sudah membuat tapi kadang server jad hang...
    ( tujuannya semua tabel di database x di pindah ke database y, tentunya database y sudah di create terlebih dahulu...)

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. Udah coba cara ini :

      mysqldump -uuser -ppassword myDatabase | mysql -hremoteserver -uremoteuser -premoteserver

      Delete
    3. thanks berat, mas bro. Setelah sekian lama aku mencari cara untuk melakukan hal ini, ternyata menemukan jawabannya disini.
      IT WORKSSS....!!!

      Delete
    4. Alhamdulilah manfaat, terima kasih

      Delete
  5. Gan, ane mau tanya.. gimana caranya backup data yang menggunakan triger.? klu backup biasa di phpmyadmin udah, tapi waktu ane restore, tabel yang pake triger kok error..?

    ReplyDelete
    Replies
    1. Secara default ketika backup triger ikut terbawa di backup.

      Seharunya tidak error. kalau ada pesan error nya di copy paste aja disini gan.

      Delete