Tips dan trik import database mysql ukuran besar

mysql

Berawal dari masalah sama database yang lumayan besar karena ukuran file hampir menyentuh 500MB, wew!! File ini adalah file backup yang sudah menjadi hasil dump dengan extension .sql.

Masalahnya, dengan file segede gambreng ini tentunya gak bakalan bisa diimport dari phpmyadmin. Pakai shell (Linux) atau command-prompt (Windows)? Bisa sih, cuma menurut gw keknya hasilnya gak sempurna. Gw udah coba tapi hasil dumping malah jadi lebih kecil dari file aslinya yaitu sekitar 240-an MB (yakin 100% ini corrupt) 😛

Setelah berdiskusi dengan a’Ganteng kantor ane ternyata caranya harus displit terlebih dahulu database yang guedhe ini 😀 . Jujur gw udah pernah baca tutorial dari a’Ganteng ini tapi gw lum praktekin sama sekali. Perintahnya adalah ini:

csplit -f tabelsql. -n 3 bigdump.sql /^\-\-\ Table/ {*}

Perintah itu akan menghasilkan output file dengan urutan angka (misal: tabelsql.000, tabelsql.001 dan seterusnya). Tapi (masih ada tapinya) perintah di atas itu akan menghasilkan file splitting yang cukup banyak (tergantung seberapa besar file yang mau displit juga sih 😛 ). So,bagaimana biar file itu kita sendiri yang nentuin seberapa besar size per-splitnya? Misal, ukuran file asli adalah 500MB dan gw mau supaya size per-file splitnya adalah 20MB. Berhubung gw juga gak terlalu paham dengan perintah-perintah dasar Linux alternatif lain gw adalah pake software dengan nama SQLDumpSplitter. Dengan file ini kita bisa tentuin seberapa besar ukuran output file yang akan displit (byetes, kilobytes atau megabytes). Silahkan download aplikasinya di sini. Nah, bagaimana cara melakukan importnya? Ya tetep sama perintahnya yaitu:

mysql –uUSER –pPASSWORD NAMADB < /lokasi/file/namafile.sql

Nah, perintah di atas ini adalah perintah umum yang biasa dipakai untuk melakukan importing database dengan ukuran standard dan yang gak terlalu besar. Karena kita akan melakukan importing file hasil splitting tadi yang jumlahnya lumayan banyak.. keknya agak repot kalo harus import satu persatu dengan cara manual (cape euyhh 😀 ).

Masih dari keterangan a’ ganteng ternyata biar gak repot ya harus pake looping. Bingung lah gw, secara gw lum pernah pake perintah yang aneh 😀

Alhamdulillah dengan baik hati dan penuh kesabaran a’ ganteng bersedia ngasih ilmu tambahan buat gw, caranya gini:

for f in `seq -w 0 23`; do echo $f; mysql -uwim_user -ppassword wim_db < filehasilsplit_$f.sql; sleep 10; done

Arti dari perintah di atas adalah mengeksekusi/import file dengan looping sebanyak 23x (sesuaikan dengan banyaknya jumlah file hasil split) sesuai dengan jumlah looping yang udah kita set di variable $f dan setiap eksekusi diberi jeda waktu 10 detik biar mysql server gak terlalu ‘ngos-ngosan’ (kalo gw gak salah ya, klo salah tolong dikoreksi pliiiiisshhh :P).

Huft, akhirnya perintah berhasil dieksekusi dan database berhasil diimport dengan baik 🙂

Many thank’s to kang Idud yang udah ngasih tutorial, tips & trik 🙂

Ngutip dari: a’Ganteng

wim

Seorang Network Administrator merangkap sebagai System Administrator di salah satu perusahaan hosting terbesar di Indonesia

You may also like...

6 Responses

  1. adpit says:

    nice ijin copas gan 😀 :malu

  2. wim says:

    @adpit: seep…. 😉

  3. adpit says:

    csplit: write error for `tabelsql.030′ << kalo muncul pesenan kaya gini pesen apa bro :cendol aja kali yak? :ngakak

  4. wim says:

    diemin aj de’… biasanya itu prosesnya ngedrop.. Lgian klo db-nya udah kelewat guedhe sampe bergiga-gigaan (2GB keatas) mendingan copy-paste aj cuy.. trus di reset deh permissionnya.. hehe

  5. usup says:

    Trus maksudnya ini gimana gan
    for f in `seq -w 0 23`; do echo $f; mysql -uwim_user -ppassword wim_db

    Apa pake Coammand gitu binund….please bantu ane gan….
    balas lewat imel ya gan….trims

  6. kemod says:

    usup :

    Trus maksudnya ini gimana gan
    for f in `seq -w 0 23`; do echo $f; mysql -uwim_user -ppassword wim_db

    Apa pake Coammand gitu binund….please bantu ane gan….
    balas lewat imel ya gan….trims

    Perasaan ane ‘dah jelasin dah di atas.. Coba dibaca lagi gan… Klo baca sekali, dua kali, tiga kali mah emang biasanya lum paham :gila:

    No offense gan :Peace:
    Coba dibaca2 lagi aj deh.. Pasti nanti jdi paham :shakehand

Leave a Reply

Your email address will not be published.