MariaDB - Срок хранения двоичных журналов, часть вторая
Коллеги всем привет.
В сегодняшней статье мы поговорим о том как удалять двоичные журналы в MariaDB. Как мы знаем двоичные журналы создаются постоянно и забивают место на диске, и по этому их нужно иногда удалять, либо настроить автоматическую чистку. Мы сегодня будем разбирать все варианты очисти двоичных журналов.
Содержимое статьи:
- Просмотр всего списка двоичных журналов в консоли.
- Просмотр всего списка через файл mariadb-binary-log.index.
- Просмотр какой двоичный журнал сейчас активный для записи.
- Удаляем все журналы RESET MASTER.
- Удалить журналы с помощью PURGE BINARY LOGS.
- Переменные binlog_expire_logs_seconds и expire_logs_days
1. Просмотр всего списка двоичных журналов в консоли.
Для просмотра всего списка у нас есть два варианта: SHOW BINARY LOGS и SHOW MASTER LOGS.
mariadb> SHOW BINARY LOGS;
mariadb> SHOW MASTER LOGS;
Оба эти варианта абсолютно одинаковые, они покажут вам весь список двоичных журналов которые есть на данный момент на сервере.
2. Просмотр всего списка через файл mariadb-binary-log.index
Есть еще один вариант просмотра списка это через файл mariadb-binary-log.index. Я им пользуюсь очень редко, пользуюсь только тогда когда хочется на 100% убедится что результат консоли соответствует результату в этом файле.
Для начала давайте найдем этот файл, для поиска можно воспользоваться командой в консоли:
mariadb> SHOW VARIABLES LIKE 'log_bin_index';
Как видим в файле mariadb-binary-log.index находится 5 записей, а значит консоль базы данных сказала нам правду.
3. Просмотр какой двоичный журнал сейчас активный для записи.
Как мы помним из прошлой статьи каждый двоичный журнал имеет размер по умолчанию 1 гигабайт. И чтобы узнать какой журнал сейчас использует база данных для записи в него есть команда:
mariadb> SHOW MASTER STATUS;
Как видим база данных сейчас использует двоичный журнал mariadb-binary-log.000005 для записи. Position означает на какой позиции сейчас идет запись в файл, этот параметр очень важен когда у вас построена репликация.
4. Удаляем все журналы RESET MASTER.
Самый простой способ удалить все двоичные журналы это использовать команду:
mariadb> RESET MASTER;
После выполнения данной команды абсолютно все двоичные журналы удаляются из сервера, даже тот журнал который в данный момент использовала база данных. Я вам рекомендую очень осторожно использовать данную команду.
!!!ВАЖНО!!! Никогда не используйте эту команду если у вас построена активная репликация.
5. Удалить журналы с помощью PURGE BINARY LOGS.
Как по мне то PURGE BINARY LOGS является самой безопасной ручной командой для удаления двоичных журналов. С этой командой можно явно указывать какие журналы вы хотите удалить.
Допустим у нас сейчас есть 7 журналов.
И допустим я хочу удалить только журнал с именем mariadb-binary-log.000005, а остальные чтобы остались. ТАК НЕ ВЫЙДЕТ!
Если вы укажите команду:
mariadb> PURGE BINARY LOGS TO 'mariadb-binary-log.000005';
То получается что все журналы что были выше журнала mariadb-binary-log.000005 будут удалены.
Также в MariaDB есть возможность удалять двоичные журналы за определенную дату:
mariadb> PURGE BINARY LOGS BEFORE '2022-05-28';
mariadb> PURGE BINARY LOGS BEFORE '2022-05-28 19:50:00';
6. Переменные binlog_expire_logs_seconds и expire_logs_days.
Последним вариантов удаления двоичных журналов является настройка двух переменных.
- expire_logs_days - срок хранения в днях.
- binlog_expire_logs_seconds - срок хранения в секундах.
По умолчанию они имеют значения 0, это значит что срок хранения двоичных журналов не установлен.
Переменные являются динамические, и по этому мы можем изменить значения в консоли через команду SET GLOBAL.
mariadb> SET GLOBAL expire_logs_days = 2;
В данной примере мы установили срок хранения двоичного журнала два дня, и база данных будет сама удалять двоичные журнала после истечения этих двух дней.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.