Anda di halaman 1dari 2

Mengatasi Pembengkakan data Innodb pada MySQL

pernah dengan MySQL, pasti untuk para blogger dan pengguna wordpress atau web programmer
pernah dengar yang namanya innodb. pernah dengar yang namanya innodb dan myIsam ?
pengguna database MySQL pasti juga pernah dengar. nah kali ini saya ingin sedikit membahas
tentang Innodb.
Innodb adalah sebuah storage Engine yang ada dalam MySQL, saya pernah baca sekali sebuah
artikel kalau storage engine ini dibuat oleh para pengembang Oracle, dimana dengan storage
engine ini kita dapat melakukan transaction, rollback, dan commit yang tidak dimiliki oleh MyIsam.
nah para pengguna Innodb pasti sudah tahu kalau salah satu default innodb yang cukup
menyebalkan adalah penggunaan 1 file untuk keseluruhan database (coba buka di /var/lib/mysql/),
tentu hal ini sangat menjengkelkan mengingat pengembangan data semakin besar. pengalaman
saya, 1 file ibdata milik innodb membengkak sampai 22 GB. bayangkan jika file ini rusak, artinya
semua database yang ada dalam innodb menjadi rusak, nangis kali bukan. tetapi sebenarnya itu
cuma setting default innodb, terdapat sebuah settingan lain yang memang diperuntukan supaya
membuat innodb membuat 1 file untuk tiap table. sayangnya cara ini harus dilakukan di awal
pembuatan system, jadi kalau sudah terlanjur jadi 1 file, mau tidak mau harus membackup dahulu
semua database. berikut ini langkah sederhananya.

 Backup semua database kecuali 3 table, information_schema, performance_schema,


dan mysql.
 saya sarankan membackup menggunakan MySQL Dump, Navicat atau MySQL WorkBench.
 matikan service mysql, dengan mengetikan
 # service mysql stop

 kemudian hapus semua file yang bernama ibdata1, ib_logfile0 dan ib_logfile1. saran saya
mungkin jangan dihapus dulu, pindahkan dulu ke tempat lain.
 kemudian edit file /etc/mysql/my.cnf, tepat dibawah section [mysqld] tambahkan hal berikut.
 [mysql]
innodb_file_per_table
innodb_flush_method=O_DIRECT
innodb_log_file_size=1G
innodb_buffer_pool_size=4G

 pastikan innodb_buffer_pool_size adalah 4 kali lipat dari innodb_log_file_size.


 kalau sudah simpan file tersebut.
 nyalakan kembali mysql anda dengan mengetikan
 # service mysql start

 dengan menyalakan kembali mysql maka file ibdata1, ib_logfile0 dan ib_logfile1. tapi jangan
khawatir karena sekarang ibdata1 hanya akan menyimpan metadata saja.
sedangkan ib_logfile0 akan berukuran 1 GB maksimal, sehingga jika lebih dari itu akan meng-
create file baru lagi (ib_logfile1, ib_logfile2, dst).
 restore database yang tadi telah kita export. ketika me-restore data, ibdata1 akan semakin
membesar tapi jangan khawatir karena dia hanya akan menyimpan metadata saja. sedangkan
data aslinya dari tiap-tiap database akan dibuatkan sebuah folder dan setiap folder tersebut
akan berisikan banyak file , yang masing-masing file merepresentasikan table tertentu.
 selesai. jika tidak ada error maka sekarang ibdata tidak akan lagi sebesar yang biasanya,
dan grow up-nya juga tidak se horror biasanya.
oke demikian yang bisa saya share, tentang pengalaman saya menggunakan innodb, memang
innodb terkesan berat dan berbahaya, tapi bukan berarti dia tidak reliable, justru sebaliknya innodb
sangat reliable sekali, cuma memang perlu sedikit set up.

Anda mungkin juga menyukai