14.13.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. Этот параметр был добавлен в MySQL 5.7.11 для предотвращения переполнения временного каталога, которое могло произойти из-за больших временных файлов сортировки. -
Временные файлы промежуточной таблицы:
Некоторые операции онлайн DDL, которые перестраивают таблицу, создают временный файл промежуточной таблицы в том же каталоге, что и исходная таблица. Временный файл промежуточной таблицы может потребовать пространства, равного размеру исходной таблицы. Имена файлов промежуточной таблицы начинаются с префикса
#sql-ibи появляются только на короткое время во время операции онлайн DDL.Параметр
innodb_tmpdirне применяется к временным файлам промежуточной таблицы.
© 2025 Oracle
Licensed under the GPLv2 License.