Backup database MySQL dan langsung kompres ke gzip

Kali ini yang saya share adalah tips dalam backup database MySQL yang biasa hasil filena masih murni teks dengan ekstensi sql, jadi ukurannya bisa cukup besar. Dan akhirnya toh nanti diarsip dengan tar dan dikompres menggunakan gzip. Biasanya perintah yang dieksekusi adalah 2 tahap. Karena saya nganggur banget malam ini iseng saja kepikiran bagaimana caranya jadi satu baris. 😛

Di Linux ada konsep menyambungkan hasil proses yang dinamakan pipe dengan simbol | dan pengalihan (redirection) dengan simbol < atau > tergantung arah input atau outputnya. Jadi konsepnya hasil dari mysqldump kita kompres dengan gzip dan langsung dijadikan file akhirnya. Bagaimana bentuk perintahnya?

mysqldump --opt --single-transaction servernesia_com | gzip > servernesia.sql.gz

Selesai. 😀

Saya tambahkan parameter --opt agar diproses baris per baris dan kode --single-transaction agar tidak terjadi penguncian tabel - tabel databasenya saat proses backup berlangsung.

Akhirnya kalau butuh kode backup MySQL satu baris yang sudah dikompres hasilnya akan lebih cepat pakai ini. Apalagi kalau niatnya langsung didownload filenya.

Semoga bermanfaat. 🙂

8 pemikiran pada “Backup database MySQL dan langsung kompres ke gzip

    • Lah… saya yang kurang update berarti mbak. Haha 😀

      Kebiasaan lama memang susah matinya, pasti mysqldump > tar.gz website dan dbnya. Baru disinkron DropBox atau download langsung. Kemarin pas butuh backup dbnya saja dan ngerasa kok repot harus ditar dulu.

      Memang harus pas butuh dan kemudian praktek baru ingat ilmunya. Haha. 😀

  1. mas chandra,
    berarti dengan menambahkan dua parameter seperti contoh diatas (--opt --single-transaction) lebih baik dari pada menggunakan cara biasa?
    contohnya dari kode :

    mysqldump -u database --password=kotaro database

    ke kode :

    mysqldump --opt --single-transaction -u database --password=kotaro database
    • Parameter --opt itu kalau singkatan dari deretan parameter ini mbak: --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset. Dan saya baru baca manualnya ternyata sudah default mengikutkan parameter ini walau tidak disebutkan. Bisa diabaikan berarti.

      Intinya sih lebih aman mbak dalam backup databasenya. Dengan --single-transaction akan diproses dengan konsisten sejak perintah mysqldump dieksekusi, jadi kalau pada saat itu ada data baru ya tidak ditambahkan dan juga tidak mengakibatkan tabel – tabelnya terkunci karena ada penulisan data barunya. Cuma berlaku di storage engine InnoDB dan BDB.

      • trims infonya mas chandra ( fast respon 😀 )
        berarti kalau sudah default bisa dihilangkan kode opt-nya.
        karna xenforo defaultnya pakai engine InnoDB jadi dua kode ini saja :
        --single-transaction --skip-lock-tables
        🙂

      • Kebetulan online mbak. Haha. 😀 Lagi backup – backup data sebelum liburan panjang nanti. Mumpung ada waktu luang. 😛

        Eh cukup --single-transaction saja mbak untuk InnoDB, sedangkan --skip-lock-tables untuk MyISAM.

    • Oh bisa mbak, fungsi --skip-lock-tables itu agar MySQL tidak mengunci tabel – tabelnya saat dibaca. Kurang lebih sama dengan --single-transaction tapi untuk MyISAM.

Tinggalkan komentar