Назад | Перейти на главную страницу

Подчиненный сервер MySQL не удаляет старые бинлоги реле

У меня есть сервер MySQL с репликацией ведомого на другой хост. Сегодня я наткнулся на высокую загрузку диска подчиненным хостом и обнаружил, что занимает все пространство. Как оказалось, это место занято журналами реле подчиненных устройств.

Я попытался повернуть expire_logs_days переменной вниз и перезапустил демон MySQL, но сообщенное дисковое пространство осталось прежним. Я не мог найти ничего кроме этого FLUSH LOGS следует очистить старые журналы. Я пробовал это безрезультатно.

Есть ли способ уменьшить дисковое пространство, занимаемое журналами реле?

Параметр expire_logs_days управляет двоичным журналированием, а не релейным журналированием.

Обычно журналы реле очищаются, когда ведомое устройство завершает применение данных из них. Это можно изменить с помощью relay-log-purge, но по умолчанию это 1.

Если ваше ведомое устройство просто отстает, оно намеренно продолжит накапливать журналы реле. Возможно, вы захотите установить ограничение пространства журнала реле, чтобы предотвратить проблемы с нехваткой места на диске. Этот параметр обеспечивает ограничение дискового пространства, которое поток ввода-вывода может использовать для хранения журналов реле.

Убедитесь, что вы не установили relay_log_purge=0 в вашей конфигурации. Я установил эту опцию при устранении неполадок репликации и забыл ее удалить. Позже мы обнаружили, что диск журналов заполнялся из-за того, что журналы реле не очищались после применения.

Вы можете проверить и установить состояние этой переменной динамически следующим образом:

> SELECT @@global.relay_log_purge;
+--------------------------+
| @@global.relay_log_purge |
+--------------------------+
|                        0 |
+--------------------------+

> SET @@global.relay_log_purge = 1;
Query OK, 0 rows affected (0.04 sec)

> SELECT @@global.relay_log_purge;
+--------------------------+
| @@global.relay_log_purge |
+--------------------------+
|                        1 |
+--------------------------+