Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

17.12.7 在线 DDL 失败情况

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

  • 指定的算法ALGORITHM与特定的 DDL 操作或存储引擎不兼容。

  • 指定的锁定级别LOCK为低级别(SHAREDNONE),与特定的 DDL 操作不兼容。

  • 在等待表的独占锁定exclusive lock时超时,可能需要在 DDL 操作的初始和最终阶段短暂地获取该锁定。

  • 文件系统tmpdirinnodb_tmpdir运行出磁盘空间不足,MySQL 在创建索引时将临时排序文件写入磁盘。更多信息,请参见第17.12.3节,“在线 DDL 空间要求”

  • 操作时间太长,.concurrent DML 修改表,使得临时在线日志的大小超过innodb_online_alter_log_max_size配置选项的值。这将导致DB_ONLINE_LOG_ TOO_BIG错误。

  • 并发DML对表进行了允许原始表定义的更改,但不允许新的表定义。操作直到MySQL尝试应用所有并发DML语句时才会失败。例如,您可能在创建唯一索引时插入重复值到列中,或者在创建主键索引时插入NULL值到列中。并发DML所做的更改优先于ALTER TABLE操作,实际上是回滚的。