DDL日志或元数据日志记录由数据定义语句(如DROP TABLE和ALTER TABLE) 生成的元数据操作。MySQL使用此日志从元数据操作中间发生的崩溃中恢复。当执行该语句DROP TABLE t1, t2
,我们需要确保两个t1
和t2
被删除,并且每个表都被完全删除。此类SQL语句的另一个示例是 ALTER TABLE t3 DROP PARTITION p2
,我们必须确保完全删除了该分区,并且从 table t3
的分区列表中删除它的定义。
诸如刚刚描述的元数据操作的记录被写入MySQL数据目录中的文件ddl_log.log
。这是一个二进制文件;它不是可读的,并且您不应尝试以任何方式修改其内容。
ddl_log.log只有
记录元数据语句时,才会创建ddl_log.log
,并在在以mysqld的方式启动后将被删除。因此,该文件可能不会出现在以完全正常方式运行的MySQL服务器上。
当前,ddl_log.log
最多可容纳1048573个条目,相当于4 GB。超过此限制后,必须先重命名或删除文件,然后才能执行任何其他DDL语句。这是一个我们要解决的已知问题(错误#83708)。
没有与此文件关联的用户可配置服务器选项或变量。