17.12.3 Требования к дисковому пространству для онлайн DDL-операций
Ниже приведены требования к дисковому пространству для онлайн DDL-операций. Эти требования не применяются к операциям, выполняемым мгновенно.
-
Временные файлы журнала:
Временный файл журнала записывает одновременные DML-операции, когда онлайн DDL-операция создает индекс или изменяет таблицу. Временный файл журнала расширяется по мере необходимости в соответствии со значением
innodb_sort_buffer_sizeдо максимального значения, заданногоinnodb_online_alter_log_max_size. Если операция занимает много времени и одновременные DML-операции так сильно изменяют таблицу, что размер временного файла журнала превышает значениеinnodb_online_alter_log_max_size, онлайн DDL-операция завершается ошибкойDB_ONLINE_LOG_TOO_BIG, и не подтверждённые одновременные DML-операции отменяются. Большое значениеinnodb_online_alter_log_max_sizeпозволяет больше DML-операций во время онлайн DDL-операции, но также увеличивает период блокировки таблицы в конце DDL-операции для применения записанных DML-операций.Переменная
innodb_sort_buffer_sizeтакже определяет размер буфера чтения и записи временного файла журнала. -
Временные файлы сортировки:
Онлайн DDL-операции, которые перестраивают таблицу, записывают временные файлы сортировки в временный каталог MySQL (
$TMPDIRв Unix,%TEMP%в Windows или каталог, указанный в--tmpdir) во время создания индекса. Временные файлы сортировки не создаются в каталоге, содержащем исходную таблицу. Каждый временный файл сортировки достаточно велик для хранения одного столбца данных, и каждый файл удаляется, когда его данные объединяются в окончательную таблицу или индекс. Операции, связанные с временными файлами сортировки, могут потребовать временного пространства, равного объёму данных в таблице плюс индексы. Если онлайн DDL-операция использует всё доступное дисковое пространство на файловой системе, где находится каталог данных, выдаётся сообщение об ошибке.Если временный каталог MySQL недостаточно велик для хранения файлов сортировки, установите
tmpdirв другой каталог. В качестве альтернативы, определите отдельный временный каталог для онлайн DDL-операций, используяinnodb_tmpdir. Этот параметр был введён для предотвращения переполнения временного каталога, которое могло произойти в результате больших временных файлов сортировки. -
Временные файлы промежуточной таблицы:
Некоторые онлайн DDL-операции, которые перестраивают таблицу, создают временный файл промежуточной таблицы в том же каталоге, что и исходная таблица. Временный файл промежуточной таблицы может потребовать пространства, равного размеру исходной таблицы. Имена файлов промежуточной таблицы начинаются с префикса
#sql-ibи появляются только на короткое время во время онлайн DDL-операции.Параметр
innodb_tmpdirне применим к временным файлам промежуточной таблицы.
© 2025 Oracle
Licensed under the GPLv2 License.