System Terminal

حل مشكلة امتلاء القرص الصلب بسبب MySQL Binary Log

المشكلة – ملفات بإحجام كبيرة يصل حجم كل ملف 1 GB وشوية بداخل var/lib/mysql وتكون هذه الملفات بأسماء مثل mysql-bin.000001 و mysql-bin.00002 ..الخ الخ.


في حالة كان var بارتشن خاص فراح تاكل كل البارتشن واذا كان var ضمن البارتشن / فانفس الشيء راح تاكل كمية كبيرة من القرص. وايضاً سوف تتوقف القواعد وخادم mysql لانة لايستطيع ايجاد مساحة للكتابة فيها واذا كان var ضمن البارتشن / احتمال كبير تتوقف معظم وظائف النظام في حالة الامتلاء الكامل للقرص الصلب.

ماهية هذه الملفات

هذه الملفات عبارة عن ملفات LOG او تسجيل بصيغة Binary. تقوم هذه الملفات بتسجيل جميع الأحداث التي تحصل في mysql والكشوفات التي يتم تحديثها او التي قد تم فعلاً تحديثها. ايضاً من الممكن استخدامها لتقوم بتسجيل جميع الاستعلامات التي تحصل في mysql.

الغرض من هذه الملفات

  • النسخ الاحتياطي: في حالة قمت بإرجاع نسخة احتياطية اقدم , تستطيع ارجاع القاعدة إلى اخر point او نقطة كانت عليها.
  • عملية التكرار: في حالة كنت تستخدم اكثر من خادم لقواعد البيانات, فان هذه الملفات تعمل او تساعد على عملية التكرار بين السيد والخادم (بمصطلح ابسط بين الـ Master والـ Slaves).

حل هذه المشكلة

  • اولاً: استخدام الطريقة هذه تحت مسؤليتك ويجب عليك معرفة ماتقوم بة قبل التنفيذ. واذا كنت تستخدم اكثر من سيرفر لقواعد البيانات فلاتقم بعمل شيء قبل استشارة مختص.
  • ثانياً: يجب ان تعلم ان هذه الخاصية بشكل افتراضي غير مفعلة, وان كانت مفعلة فان مدير النظام هو من قام بتفعيلها.

الطريقة

قم بالدخول على السيرفر بالمستخدم root كالعادة.

1- نذهب إلى المجلد الذي يحتوي على القواعد, بالإضافة إلى امر عرض المحتويات.

cd /var/lib/mysql/ && ls -la

لنفرض ان الناتج كان كتالي

total XXXXXXXXXXXX
drwxr-x--x 14 mysql mysql     4096 Oct  7 20:09 ./
drwxr-xr-x 16 root  root      4096 Aug 15 14:06 ../
-rw-rw----  1 mysql mysql     3135 Aug 15 13:33 host.err
-rw-rw----  1 mysql mysql   316672 Oct  7 20:09 host.domain-name.err
-rw-rw----  1 mysql mysql        6 Oct  7 20:09 host.domain-name.com.pid
drwx------  2 mysql mysql     4096 Oct  7 19:00 modsec/
drwx--x--x  2 mysql mysql     4096 Oct  7 19:24 mysql/
srwxrwxrwx  1 mysql mysql        0 Oct  7 20:09 mysql.sock=
-rw-rw----  1 mysql mysql 10485760 Oct  7 18:32 ibdata1
-rw-rw----  1 mysql mysql  5242880 Oct  7 18:32 ib_logfile0
-rw-rw----  1 mysql mysql  5242880 Aug 1