Приветствую уважаемый посетитель нашего сайта. Эта статья, вернее скорей всего просто заметка для пользователей собственных серверов.
Не давно я заметил что один из моих VPS серверов полностью забит под завязку и дисковое место на нем закончилось. Там крутилось всего парочка созданных веб сайтов на WordPress и на opencart которые ну аж никак не могли быть такими большими чтоб заполнить 50Гб памяти. Пришлось разбираться в чем проблема.
Оказалось все очень таки банально. После изучения размеров всех папок на сервере я заметил что одна из папок является намного больше чем положено а именно папка /var/lib/mysql , в ней было множество таких файлов как mysql-bin.000010, mysql-bin.000001, mysql-bin.000002, mysql-bin.000003, mysql-bin.000004, mysql-bin.000005 и так далее. Таких файлов было множество и все они имели совсем не маленький размер, некоторые файлы доходили до 1гб.
Что же это за файлы и для чего они нужны? - Это бинарные логи операций баз данных в mysql, и основное их предназначение это:
- Применяется для репликации БД, в случае если мы имеем много баз данных, которые настроены на репликацию.
- Применяется — для восстановления баз данных в случае какой то поломки или сбоя.
По сути можно смело удалить все эти бинарные файлы ничего страшного не произойдет, вы очистите место и все будет хорошо, но: Во первых через какое то время история повторится и Вам опять же придется все делать снова, а во вторых нас конечно же волнует пункт второй это восстановление в случае сбоя баз данных. По этому я не рекомендую полностью удалять все бинарные файлы а лучше удалить только те которые вам точно уже не нужны ориентируясь на дату создания файла.
И так ручное удаление бинарных файлов:
1 2 |
PURGE BINARY LOGS TO 'mysql-bin.010'; PURGE BINARY LOGS BEFORE '2014-02-02 22:46:26'; |
В данном примере как вы уже наверное догадались мы удаляем конкретный файл с бинарным логом или же удаляем лог с указанной датой.
Но я сделал все иначе, я не стал заморачиваться и вручную удалять все бинарные логи, а поручил все это делать серверу самостоятельно, для этого нужно в файл конфигурации my.conf внести всего одну строчку а именно:
1 |
expire_logs_days = 5 |
Этой строкой мы указываем серверу что нужно хранить бинарные логи не более пяти дней. После перезагружаем сервер mysqld и все бинарные файлы логов будут удалены автоматически за исключением файлов последних пяти дней.
Вот собственно и все, теперь ваш сервер не будет заполнятся ненужными логами. Удачи Вам.
Нет комментариев
Вы можете оставить комментарий первым.