0

我正在尝试实现一个增量备份过程,它只转储和备份 MySQL 数据库中在过去 24 小时内修改过的表。我可以查看 /var/lib/mysql/DBNAME/ 下 .MYD 和 .MYI 文件的修改时间,以确定 MyISAM 表是否已被修改,但 InnoDB 表(尚未设置为使用它们自己的数据文件)没有唯一的文件“暴露”给我可以检查修改时间的文件系统。其中一些 InnoDB 表很大(超过 1 亿行),但它们很少更新/添加,例如每月两到三次。如果没有更改数据,我不想每天浪费时间/空间转储这些表进行备份。

由于数据库和表的性质(有些是临时/临时的,有些具有静态模式,我无法预测表是否有时间戳列,如果有,它的名称是什么),我无法查询表自己来确定它们最近是否被修改过。

MySQL是否有一个内置的“表修改时间”可以通过查询内置变量/表来公开?

我们所有的 MySQL 服务器都使用 5.1 或更高版本。

4

1 回答 1

0

如果您可以使用 information_schema 数据库,则可以获得最近更新的表的列表,如下所示:

SELECT table_schema, table_name, update_time
FROM information_schema.`TABLES`
WHERE update_time > DATE_SUB(NOW(), INTERVAL 1 DAY);
于 2014-03-20T19:51:11.277 回答