Thursday, May 10, 2012

Masalah "Out of Resource When Opening File" di MySQL

Barusan ngalamin error di database backup. Error yang dimunculkan adalah "Out of resources when opening file './database_name/table_name.MYD' (Errcode: 24) (23)".

Seperti biasa gw cari beritanya di google. Dan beberapa sumber (stackoverflow, ) memberi solusi dengan cara memperbesar nilai open-files-limit sebab nilai default 1024 dianggap terlalu kecil untuk transaksi-transaksi database.

Namun, gw pikir solusi itu tidak dapat digunakan untuk database backup. Kenapa? Karena paramater open-files-limit di database backup telah diperbesar menjadi 45970. Artinya gw butuh solusi lain.

Lalu gw teringat dengan persoalan serupa di database yang digunakan untuk serving ads. "Out of resource" terjadi karena DBMS membuat file descriptor untuk setiap query. Solusi yang kemudian digunakan untuk hal ini adalah dengan memaksa DBMS menutup atau melepas file-file descriptor tadi dengan perintah flush. 

Maka gw coba mengeksekusi perintah: FLUSH QUERY CACHE; FLUSH TABLES; FLUSH TABLES WITH READ LOCK; Dan, voila, berhasil ^^

PS:
Ada juga alternatif lain yang mungkin bisa dipertimbangkan untuk menangani hal ini:

  1. Memperkecil nilai variable table_cache (sumber forum mysql)
  2. Memperkecil nilai variable max_connection (sumber forum mysql)
Tentunya solusi alternatif ini perlu dipertimbangkan sesuai dengan keadaan database/aplikasi