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

Можно ли удалить бункеры mysql?

Они занимают слишком много места:

/var/lib/mysql/jiaoyou-slow.log: 53M
/var/lib/mysql/mysql-bin.000005: 68M
/var/lib/mysql/mysql-bin.000003: 1.1G
/var/lib/mysql/mysql-bin.000007: 34M
/var/lib/mysql/mysql-bin.000004: 225M

Нет, вы не должны удалять их вручную. Есть команда для их удаления. Если вы удалите их на уровне диска, mysql рухнет. Правильная команда:

PURGE BINARY LOGS TO 'mysql-bin.010';

видеть Вот Чтобы получить больше информации.

Есть несколько причин использовать двоичное ведение журнала. В порядке важности:

  1. Репликация - ведомые устройства извлекают содержимое из двоичного журнала главного устройства.
  2. Более высокая степень детализации резервного копирования - воспроизведение журналов по предыдущей точке резервного копирования.
  3. Ведение журнала запросов - более эффективно, чем общий журнал запросов, для случайных запросов «какой запрос записи выполнялся?» моменты.

Итак, перед удалением двоичных журналов необходимо проверить три вещи:

  1. Есть ли у вас ведомые устройства репликации и обновлены ли они?
    • Если вы удалите двоичный журнал до того, как ведомое устройство сможет вставить его в свой журнал реле, он не сможет продолжить репликацию. Также могут быть странные случаи, когда вам может потребоваться удалить журнал реле и снова спулировать от мастера.
  2. Ваши резервные копии под контролем?
  3. Потребуется ли вам просмотреть какие-либо запросы, которые были выполнены за этот период регистрации?

Если вас устраивают ответы на все эти вопросы, удалите их с помощью PURGE команда, как отмечено RageZ. Абсолютно не удалите их вручную, потому что MySQL любит их отслеживать. Вы можете использовать синтаксис TO указать имя файла или BEFORE указать дату. Вы можете увидеть, какой файл MySQL в настоящее время открыт с SHOW MASTER STATUS.

Намного лучший подход, так как кедар примечания, это использовать expire_logs_days. Это автоматически выполнит действие по очистке всех двоичных журналов, которые старше N дней.

вы также можете использовать expire_logs_days http://dev.mysql.com/doc/refman/5.0/en/purge-binary-logs.html

В Ubuntu 12.04

Очистить двоичные журналы

Добавьте эту строку в свой /etc/mysql/my.cnf, и она должна быть в разделе [mysqld].

expire_logs_days = 7

После:

/etc/init.d/mysql перезапуск

Или:

Затем войдите в Mysql и запустите эту команду, чтобы установить переменную без перезапуска Mysql.

УСТАНОВИТЬ ГЛОБАЛЬНЫЙ expire_logs_days = 7;