Spec-Zone.ru › MySQL 8.4

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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/innodb-online-ddl-space-requirements.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API