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

Есть ли способ загрузить большие BLOB-объекты без перезапуска MySQL?

Я пытаюсь переместить последние несколько баз данных со старого сервера mysql, но одна, в частности, меня озадачила:

ОШИБКА 1118 (42000) в строке 595: размер данных BLOB / TEXT, вставленных в одну транзакцию, превышает 10% от размера журнала повторов. Увеличьте размер журнала повторов с помощью innodb_log_file_size.

Сервер, на который выполняется миграция, работает 5.6.29-76.2-log Percona Server, который, похоже, обходной путь для ошибки согласованности транзакций с большими BLOB-объектами.

Поскольку для изменения innodb_log_file_size требуется перезапуск службы, есть ли способ импортировать базу данных с отключенными транзакциями или чем-то еще? В SQL * Loader есть несколько опций для отключения транзакций при импорте, может быть, есть аналогичный инструмент и настройки для MySQL?

Здесь нет обходного пути. Вам нужно будет перезагрузить.

Все в InnoDB выполняется в транзакции. Иногда он неявный (когда автокоммит включен, каждый выполненный оператор - технически - запускает и фиксирует свою собственную транзакцию), но это все еще транзакция в соответствующем смысле.

Журнал повторов является важным компонентом, и его размер можно изменить только после перезапуска.