in Digital, Linux

MySQL di Hari Minggu

Semalam dapet kabar kalau webserver F tewas lagi (kedua kalinya dalam bulan ini). Masalahnya sederhana sebenarnya, hardisknya penuh.

Jadi dengan menggunakan Debian 5.0 di Amazon EC2, default setting partisnya dibagi dua. Total kapasitas hardisknya sekitar 500GB, 10 GB nya buat system (/), sisanya dimount di partisi antah berantah. Dulu sudah saya set agar partisi satunya digunakan untuk DocumentRoot Apache. Karena total file di DocumentRoot nya itu nyampe 44GB.., ya harus masuk di partisi kedua. (baru nyadar kalo web F itu total file nya 44GB, pantes dulu pindah dari dedicated server ke Amazon EC2 prosesnya lama banget.., rsync dari jam 11-an malem, pas sahur baru selesai..)

Tapi ada yg saya enggak tahu. Di partisi sistem itu, 10GB saya rasa sudah cukup. Tapi ternyata tidak.., dari hasil monitoring setiap hari space nya selalu terpakai makin banyak, hingga mencapai 100%. Otomatis /tmp nggak bisa ditulisi.., /var/lib/mysql juga nggak bisa ditulisi.. matilah sudah MySQL nya.. Dan tewaslah webnya.. Sampai sekarang saya masih bertanya – tanya apa yang bikin space hardisknya terus – menerus habis, lalu tiba – tiba berkurang lagi.

df-week

Jadi terpaksa lah diambil alternatif lain, bagaimana caranya agar web F tetap jalan sementara saya mencari tahu apa yang memakan space terus menerus..

Beginilah jadinya :

  1. Buat direktori /var/labanux
  2. Ubah /etc/fstab, saya set agar partisi kedua di mount di /var/labanux
  3. Buat direktori /var/labanux/www
  4. Semua file web dipindah ke /var/labanux/www (ini nih yang 44GB itu)
  5. rsync -avz /var/lib/mysql /var/labanux/   (Tadinya pake copy aja.., tapi sepertinya ada yang ndak beres, makanya ganti rsync aja)
  6. Rename /var/lib/mysql /var/lib/mysql-lama
  7. Ubah konfigurasi /etc/mysql/my.cnf (‘datadir  = /var/lib/mysql’ diganti jadi ‘datadir  = /var/labanux/mysql’
  8. Buat direktori /var/labanux/tmp
  9. Delete /tmp
  10. Link : ln -s /var/labanux/tmp /tmp
  11. /etc/init.d/mysql start
  12. GAGAL…!! Error mysqlnya…
  13. Oh iya : chown -R mysql /var/labanux/mysql (karena tadi yang bikin direktori dll nya adalah root, jadi user mysql ndak punya akses toh.., makanya diganti ownernya)
  14. /etc/init.d/mysql start
  15. GAGAL lagi…. Masih masalah disk full..
  16. Ya udah, nekat delete /var/lib/mysql (sekitar 500MB)
  17. /etc/init.d/mysql start
  18. Yiihaaa….! Dah jalan lagi

Jadi sekarang semua data – data MySQL sudah masuk di partisi kedua (sekitar 490-an GB), begitu juga /tmp sekarang masuk di partisi tersebut. Jadi sementara ini partisi root (/) masih bersisa 500-an MB, yang mana nanti juga saya curiga bakal penuh lagi. Tapi setidaknya sementara web F udah bisa jalan lagi.. Tidur lagi ah…

Write a Comment

Comment

  1. apa presentase /var yang paling gede makan tempat ?? coba deh du -h / --max-depth=1 --exclude=/klo/ada/yg/diexclude -B G | sort -g. Mungkin log apache-nya kali. Kalau mau ekstrim logrotate apachenya di compress pake lzma >:)

  2. Halo Halo Mas,

    Saya mau tanya nih, sebenernya batasan MySQL Server itu untuk menampung data dan transaksi seperti apa sih ?

    Kebetulan saya mendevelop aplikasi web dengan user yang masih unpredictable, nah kebetulan juga backend database menggunakan MySQL.

    Sebenernya sama mempunyai sedikit kekhawatiran karena jenis kegiatannya adalah transactional.

    Mungkin mas Okto dapat memberikan tips dan trick mengenai penggunaan MySQL untuk production server?

    Terima Kasih