5.4.6 DDL 日志

DDL 日志或元数据日志记录由数据定义语句(例如DROP TABLEALTER TABLE)生成的元数据操作。 MySQL 使用此日志从元数据操作中间发生的崩溃中恢复。在执行语句DROP TABLE t1, t2时,我们需要确保t1t2都被删除,并且每个 table 的删除都已完成。此类 SQL 语句的另一个示例是更改 tablet3 拖放分区 p2,在该示例中,我们必须确保已完全删除该分区,并且已将其定义从 tablet3的分区列 table 中删除。

诸如刚刚描述的元数据操作的记录被写入 MySQL 数据目录中的文件ddl_log.log。这是一个二进制文件;它不旨在被人类阅读,并且您不应尝试以任何方式修改其内容。

直到实际需要记录ddl_log.log来记录元数据语句时才创建ddl_log.log,并且在成功启动mysqld之后将其删除。因此,该文件可能不会出现在以完全正常方式运行的 MySQL 服务器上。

当前,ddl_log.log最多可容纳 1048573 个条目,相当于 4 GB。超过此限制后,必须先重命名或删除文件,然后才能执行任何其他 DDL 语句。这是一个我们要解决的已知问题(错误#83708)。

没有与此文件关联的用户可配置服务器选项或变量。