Как изменить размер лога innodb_log_file_size?

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

Проверить размер файла можно так:

mysql -e "show variables like 'innodb_log_file_size'"

+					  +			+
 Variable_name         Value   
+					  +			+
 innodb_log_file_size  5242880
+					  +			+

# По умолчанию 5 МБ

Но просто увеличить размер лога не получится. Если остановить сервер MySQL, выставить новый параметр в файле конфигурации и перезапустить сервер, то InnoDB откажется запускаться и выдаст ошибку InnoDB: Error: log file ./ib_logfile0 is of different size. При этом в логе MySQL появится ошибка ERROR 1033 (HY000): Incorrect information in file...

Устанавливая размер лога innodb_log_file при помощи директивы innodb_log_file_size нужно придерживаться правильной последовательности действий.

Сначала необходимо остановить сервер MySQL и задать требуемый размер в файле конфигурации /etc/mysql/my.cnf:

[mysqld]
innodb_log_file_size = 64M

# Указание размера в МБ

После чего необходимо сделать бэкап логов, чтобы InnoDB запустился без ошибок:
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0_bak
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1_bak

# Переименование файлов логов

После всех манипуляций нужно запустить сервер MySQL и проверить журнал на наличие ошибок:

tail -n 100 /var/log/mysqld.log
...
160712 11:21:12  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 64 MB
InnoDB: Database physically writes the file full: wait...
160712 11:21:12  InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 64 MB
InnoDB: Database physically writes the file full: wait...

# InnoDB создала новые файлы требуемого размера

Если ошибок нет, то резервные копии логов можно удалить.

Подпишитесь на Хайлоад с помощью Google аккаунта
или закройте эту хрень