Berawal dari masalah database temen yang lumayan besar karena ukuran file hampir menyentuh 700MB, wuaaww... 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. Gimana kalau 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) tongue

Setelah berdiskusi dengan rekan ane ternyata caranya harus displit terlebih dahulu database yang besar ini :D. Jujur gw udah pernah baca tutorial nya, 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 perintah di atas itu akan menghasilkan file splitting yang cukup banyak (tergantung seberapa besar file yang mau displit juga sih tongue ). 

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 disini. 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 big grin ).

Masih dari keterangan rekan gw ternyata biar gak repot ya harus pake looping. Bingung lah gw, secara gw lum pernah pake perintah yang aneh big grin

Alhamdulillah dengan baik hati dan penuh kesabaran rekan gw 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’ 

Ok... cukup sekian share yg gw kasih, semoga bisa membatu... happy

BTemplates.com

Categories

Kamera CCTV Palembang

Popular Posts

Blog Archive