Spec-Zone.ru › MySQL 5.7

13.4.1.1 Заявление PURGE BINARY LOGS

PURGE { BINARY | MASTER } LOGS {
    TO 'log_name'
  | BEFORE datetime_expr
}

Двоичный журнал — это набор файлов, содержащих информацию о модификациях данных, произведенных сервером MySQL. Журнал состоит из набора двоичных файлов журнала и файла индекса (см. раздел 5.4.4, «Двоичный журнал»).

Заявление PURGE BINARY LOGS удаляет все двоичные файлы журнала, перечисленные в файле индекса журнала, до указанного имени файла журнала или даты. BINARY и MASTER являются синонимами. Удаленные файлы журнала также удаляются из списка, записанного в файле индекса, так что указанный файл журнала становится первым в списке.

PURGE BINARY LOGS требует привилегии. Это утверждение не имеет эффекта, если сервер не был запущен с опцией --log-bin для включения двоичного протоколирования.

Примеры:

PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2019-04-02 22:46:26';

В варианте BEFORE аргумент datetime_expr должен оцениваться как значение DATETIME (значение в формате 'YYYY-MM-DD hh:mm:ss').

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

Для безопасного удаления двоичных файлов журнала следуйте этой процедуре:

  1. На каждой реплике используйте SHOW SLAVE STATUS для проверки, какой файл журнала она считывает.

  2. Получите список двоичных файлов журнала на сервере репликации с помощью SHOW BINARY LOGS.

  3. Определите самый ранний файл журнала среди всех реплик. Это целевой файл. Если все реплики обновлены, это последний файл журнала в списке.

  4. Сделайте резервную копию всех файлов журнала, которые вы собираетесь удалить. (Этот шаг необязателен, но всегда рекомендуется.)

  5. Удалите все файлы журналов до, но не включая целевой файл.

Вы также можете установить системную переменную expire_logs_days для автоматического удаления двоичных файлов журнала через определенное количество дней (см. раздел 5.1.7, «Системные переменные сервера»). Если вы используете репликацию, вы должны установить переменную не ниже максимального количества дней, на которое ваши реплики могут отставать от источника.

PURGE BINARY LOGS TO и PURGE BINARY LOGS BEFORE оба завершаются ошибкой, когда двоичные файлы журналов, перечисленные в файле .index, были удалены из системы другими средствами (например, с помощью rm в Linux). (Ошибка #18199, Ошибка #18453) Для обработки таких ошибок вручную отредактируйте файл .index (это простой текстовый файл), убедитесь, что в нем перечислены только фактически присутствующие двоичные файлы журнала, а затем снова выполните утверждение PURGE BINARY LOGS, которое завершилось ошибкой.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/purge-binary-logs.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API