Через який час після оновлення параметра expire_logs_days і перезавантаження sql старі бінлоги видаляться?


16

MySQL 5.1.x | InnoDB | Windows

Мій каталог даних mysql починає заповнюватися журналами бін.

В даний час у мене на сервері Windows mysql налаштовано такі налаштування:

[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=25

Я планую змінити налаштування expire_logs_days на expire_logs_days=10та відмовитись від служби mysql. Як тільки після внесення змін я можу очікувати, що старі журнали сміття вийдуть з ладу.

Це робиться лише як частина завдань, що плануються на ніч? Або це має бути негайним?

Відповіді:


29

Це буде оброблено негайно під час запуску mysql.

Вам не доведеться чекати перезавантаження mysql.

По-перше, встановити expire_logs_daysзначення 10 у /etc/my.cnf

[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=10

Далі увійдіть до mysql та запустіть це

PURGE BINARY LOGS BEFORE (date(now()) + interval 0 second - interval 10 day);

Зверніть увагу на дату та час запиту

mysql> select date(now()) + interval 0 second - interval 10 day;
+---------------------------------------------------+
| date(now()) + interval 0 second - interval 10 day |
+---------------------------------------------------+
| 2012-12-11 00:00:00                               |
+---------------------------------------------------+
1 row in set (0.00 sec)

mysql>

Таким чином, команда PURGE BINARY LOGS видалить усі бінлоги, чиї позначки часу передують 2012-12-11 00:00:00.

Нарешті, запустіть цю команду

SET GLOBAL expire_logs_days = 10;

Це воно. Для встановлення expire_logs_days не потрібен перезапуск .

Що стосується параметрів реплікації, то необхідний перезапуск.


Блискуча відповідь. Дякую. Я ціную деталі.
Майк Б

Будь ласка, оновіть, я виправив друкарську помилку.
RolandoMySQLDBA

1
Зазначимо, що термін expire_logs_days тепер застарілий у MySQL 8.0 (за деталями у посиланні, поданому @RolandoMySQLDBA). Використовуйте binlog_expire_logs_seconds, а не рухайтеся вперед.
Джон Рікс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.