文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  在线 DDL 失败条件

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 操作实际上已 回滚