Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Online DDL Failure Conditions

17.12.7 在线 DDL 失败条件

在线 DDL 操作失败通常是由于以下条件之一:

  • 一个 ALGORITHM 子句指定了一个与特定类型的 DDL 操作或存储引擎不兼容的算法。

  • 一个 LOCK 子句指定了一个与特定类型的 DDL 操作不兼容的锁定程度(SHAREDNONE)。

  • 在等待表的 排他锁 时超时,可能需要在 DDL 操作的初始和最终阶段。

  • 在创建索引时,tmpdirinnodb_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 操作将被有效地 回退