0

我有一个 mysql 数据库,其中的表包含超过 6 个月的数据,达到 1.5 GB 的数据。我只想备份 4 天。然后将其放入同一系统中的其他数据库中。

请建议我如何进行仅 4 天的选择性备份。我正在使用 mysql gui 工具。

谢谢,

编辑

CREATE TRIGGER backup BEFORE INSERT ON table_from  FOR EACH ROW BEGIN
    INSERT INTO table_to SET (col1,col2,col3,col4) = (NEW.col1,new.col2,new.col3,new.col4);
      END;

我在哪里放置查询以插入所需的行数。我尝试单独运行您的查询,它在查询中显示错误。

4

1 回答 1

0

首先确保表中有一个 DateTime/Timestamp 列与最后修改时间,以便您知道您需要备份哪些数据。默认情况下,MySQL 不会在每条记录中存储此信息,因此如果您需要它,您需要创建它,并且您可能希望使用该大小的表对其进行索引。

如果您要复制到的数据库位于同一系统上,那么您需要做的就是运行一个查询。像这样的东西会起作用。这会将 db_from.my_cool_table 中的所有数据复制到 db_to.my_cool_table

INSERT (col1, col2, col3 ...) INTO db_to.my_cool_table
SELECT col1, col2, col3 FROM db_from.my_cool_table WHERE modification_time > DATE_SUB(Now(), INTERVAL -4 DAY)

您可能还考虑添加一个触发器,该触发器将自动将 db_from.my_cool_table 中的每条记录实时插入/更新/删除到 db_to.my_cool_table,因此您无需运行此备份脚本。见这里:http ://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

于 2013-07-05T06:00:56.373 回答