17.12.7 Условия неудачи онлайн DDL операций
Неудача онлайн операции DDL, как правило, вызвана одним из следующих условий:
Запрос
ALGORITHMуказывает алгоритм, несовместимый с конкретным типом операции DDL или движком хранения.Запрос
LOCKуказывает низкую степень блокировки (SHAREDилиNONE), несовместимую с конкретным типом операции DDL.Возникает таймаут при ожидании действия на таблице, которое может потребоваться на короткое время во время начальной и заключительной фаз операции DDL.
Файловая система
tmpdirилиinnodb_tmpdirисчерпывает место на диске во время записи MySQL временных файлов сортировки при создании индексов. Дополнительную информацию можно найти в разделе 17.12.3 «Требования к дисковому пространству для онлайн DDL операций».Операция занимает много времени, и одновременные DML-операции так сильно изменяют таблицу, что размер временного онлайн-журнала превышает значение параметра
innodb_online_alter_log_max_size. Это условие приводит к ошибкеDB_ONLINE_LOG_TOO_BIG.Одновременные DML-операции вносят изменения в таблицу, разрешенные исходным определением таблицы, но не новым. Операция терпит неудачу только в самом конце, когда MySQL пытается применить все изменения от одновременных DML-запросов. Например, вы можете вставить дублирующиеся значения в столбец во время создания уникального индекса или вставить
NULLзначения в столбец во время создания индекса в этом столбце. Вносимые изменения одновременных DML-запросов имеют приоритет, и операцияALTER TABLEфактически завершается неудачей.
© 2025 Oracle
Licensed under the GPLv2 License.