В соответствии с документацией mysql (Docs), чтобы изменить размер файла innodb-log-file на шаге 4, мне нужно удалить двоичные журналы. У меня есть некоторые проблемы и вопросы по этому поводу. Мое текущее значение для файла innodb-log-file составляет 5 МБ. Поэтому я бы предположил, что мои двоичные файлы журнала составляют 5 МБ каждый (макс.). Когда я смотрю на каталог bin-log, у меня есть куча имен файлов, таких как "mysql-bin.000001", "mysql-bin.000002" и т.д. Я считаю, что это двоичные файлы журналов, но все они довольно бит больше 5 МБ. Есть 2 файла (ib_logfile0, ib_logfile1), которые составляют 5 МБ. Поэтому мой вопрос:
- Какой из этих файлов является моим "двоичным журналом"?
- Какие из них мне нужно удалить?
Заранее спасибо
Ответ 1
Журнал InnoDB находится в ib_logfile0 и ib_logfile1. Это файлы размером innodb_log_file_size
.
Чтобы изменить размер журналов InnoDB, сначала нужно отключить mysqld чисто. Это позволит убедиться, что все изменения в журнале уже были сброшены в ваши табличные пространства. Чистое выключение важно, потому что если вы не сделаете этого шага, у вас будет высокая вероятность потери данных.
После того, как вы окончательно отключили mysqld, ib_logfiles являются излишними. Вы должны rm
их изменить свой размер.
При перезапуске mysqld InnoDB отмечает, что файлы отсутствуют, и создает новый файл нового размера в соответствии с переменной innodb_log_file_size
в файле my.cnf. Поэтому убедитесь, что вы отредактируете этот файл перед перезагрузкой, иначе он просто создаст новые файлы размером 5 МБ.
MySQL 5.6 делает этот процесс немного проще. Вам не нужно rm
файлы журнала, но вам нужно перезапустить mysqld, чтобы сделать новый размер файла журнала вступающим в силу. Способ, которым он работает в 5.6, состоит в том, что если размер этих файлов отличается от переменной конфигурации, MySQL автоматически выполняет другой чистый перезапуск (чтобы убедиться, что файлы не содержат каких-либо изменений, которые не развязаны), а затем InnoDB изменяет размер файлов при окончательном запуске.
Другие файлы (mysql-bin.000001 и т.д.) являются двоичными журналами. Они могут вырасти до max_binlog_size
(по умолчанию это 1 ГБ), но двоичные журналы различаются по размеру, потому что новые журналы создаются всякий раз, когда вы перезапускаете mysqld или выполняете FLUSH LOGS
. Во всяком случае, они не имеют ничего общего с журналами InnoDB.
PS: Вам может понравиться эта статья: Как рассчитать хороший размер файла журнала InnoDB.