Categories: Шпаргалки

Безопасное удаление (чистка) логов mysql-bin в MySQL или MariaDB

Файлы mysql-bin.xxxxxx представляют из себя бинарные логи со всеми запросами к базе. Они необходимы для репликации данных или восстановления информации в случае необходимости.

Так данные файлы со временем могут занимать много дискового пространства, необходимо выполнить их чистку или, вовсе, настроить автоматическое удаление.

Данная инструкция не привязана к какой-либо системе — она подойдет как для Windows , так и Linux , например, Ubuntu или CentOS . Так как MariaDB — ответвление от MySQL , инструкция также актуально и для нее.

Прежде чем чистить логи, необходимо убедиться, что для СУБД не настроена репликация данных с другими серверами. Если репликация есть, необходимо убедиться, что все данные корректно скопированы. Удаление лога, для которого еще не прошла синхронизация приведет к необходимости восстанавливать репликацию .

Ручная чистка логов

Запросы выполняются из командной оболочки MySQL.

Для удаления конкретного bin-файла:

> PURGE BINARY LOGS TO ‘mysql-bin.000145’;

* где mysql-bin.000145 — имя файла с логами.

Для удаления логов за определенный период:

> PURGE BINARY LOGS BEFORE ‘2017-05-07 00:00:00’;

* удаляем логи до 5-о мая 2017 года.

Или так:

PURGE BINARY LOGS BEFORE DATE(NOW() — INTERVAL 90 DAY) + INTERVAL 0 SECOND;

* удаляем все, оставляем логи за последние 90 дней.

Автоматическое удаление

Открываем конфигурационный файл СУБД:

vi /etc/my.cnf.d/server.cnf

или в более ранних версиях:

vi /etc/my.cnf

и в секцию [mysqld] добавляем следующее:

expire_logs_days = 90

* в данном примере мы настроили срок хранения логов в 90 дней.

Настройки применятся после перезагрузки сервера баз данных:

systemctl restart mysql || systemctl restart mariadb

Также будет выполнена чистка логов, которые старше выставленной даты (90 дней в нашем примере).

admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

2 недели ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

2 недели ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

2 недели ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

2 недели ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

2 недели ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

2 недели ago