Безопасно ли удалять повернутые двоичные журналы MySQL?

StackOverflow https://stackoverflow.com/questions/2989215

  •  24-10-2019
  •  | 
  •  

Вопрос

У меня есть сервер MySQL с активным двоичным ведением журнала.Раз в день файл журналов "поворачивается", т.е.MySQL, похоже, перестает записывать в него данные и создает новый файл журнала.Например, в настоящее время у меня есть эти файлы в /var/lib /mysql

-rw-rw---- 1 mysql mysql 10485760 Jun  7 09:26 ibdata1
-rw-rw---- 1 mysql mysql  5242880 Jun  7 09:26 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Jun  2 15:20 ib_logfile1
-rw-rw---- 1 mysql mysql  1916844 Jun  6 09:20 mybinlog.000004
-rw-rw---- 1 mysql mysql 61112500 Jun  7 09:26 mybinlog.000005
-rw-rw---- 1 mysql mysql 15609789 Jun  7 13:57 mybinlog.000006
-rw-rw---- 1 mysql mysql       54 Jun  7 09:26 mybinlog.index

и mybinlog.000006 растет.

Могу ли я просто взять mybinlog.000004 и mybinlog.000005, заархивировать их и перенести на другой сервер, или мне нужно сделать что-то еще раньше?

Какая информация хранится в mybinlog.index?Только информация о последнем двоичном журнале?

Обновить: Я понимаю, что могу удалить журналы с помощью ОЧИСТКИ ДВОИЧНЫХ ЖУРНАЛОВ, которая обновляет файл mybinlog.index.Однако мне нужно перенести журналы на другой компьютер, прежде чем удалять их (я проверяю, действительна ли резервная копия на другом компьютере).Чтобы уменьшить размер передаваемых файлов, я хочу использовать bzip2 для файлов.Что будет делать ОЧИСТКА ДВОИЧНЫХ ЖУРНАЛОВ, если файлов журналов больше нет "там"?

Это было полезно?

Решение 2

Я, наконец, нашел ответ на веб-сайте MySQL.На случай, если кому-то понадобится эта информация:

До MySQL 5.0.60 ОЧИСТКА ДВОИЧНЫХ ЖУРНАЛОВ ДО и ОЧИСТКА ДВОИЧНЫХ ЖУРНАЛОВ ДО не вели себя одинаково (и ни один из них не вел себя корректно), когда двоичные файлы журналов, перечисленные в файле .index, были удалены из системы каким-либо другим способом (например, с помощью rm в Linux).Начиная с MySQL 5.0.60, в таких случаях оба варианта инструкции завершаются ошибкой.(Ошибка # 18199, Ошибка # 18453) Для обработки таких ошибок отредактируйте файл .index (который представляет собой простой текстовый файл) вручную, чтобы убедиться, что в нем перечислены только те двоичные файлы журналов, которые действительно присутствуют, затем снова запустите инструкцию PURGE BINARY LOGS, которая завершилась с ошибкой.

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

Другие советы

Вы можете удалить старые бинарные журналы. Вместо того, чтобы удалить их напрямую, безопаснее использовать MySQL-Statement PURGE BINARY LOGS который также обновляет ваш mybinlog.index файл. Этот файл хранит, которые имена файлов были использованы для бинарного журнала, см.

http://dev.mysql.com/doc/refman/5.0/en/purge-binary-logs.html

Кроме того, вы можете настроить свой MySQL-сервер автоматически удалять старые бинарные журналы. Установите переменные max_binlog_size а также expire_logs_days В конфигурации вашего сервера к соответствующим значениям.

А ibdata а также ib_logfile Файлы не имеют ничего общего с бинарным журналом. Они используются в двигателе NINODB. Не ошибайтесь из-за того, что они, кажется, не растут: если на вашем сервере есть таблицы InnoDB, эти файлы важны, и их удаление может привести к потере данных. Вы можете прочитать больше о Innodb в документах:

http://dev.mysql.com/doc/refman/5.0/en/innodb-configuration.html

mysql> PURGE BINARY LOGS BEFORE NOW() - INTERVAL 3 DAY; 

Удалите все файлы корзины до 3 дней!

или же

PURGE MASTER LOGS BEFORE '2010-10-08 00:00:00';

mysql-bin.index обычно несет все файлы .bin. Если вы удалили некоторые файлы, пожалуйста, отредактируйте .index, чтобы отразить то, что доступны все файлы. Если вы удалили все файлы .BIN Удалите пустой файл .index. Это решит вашу проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top