Spec-Zone.ru › MySQL 5.7

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

Spec-Zone.ru

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