我有一个 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;
我在哪里放置查询来插入所需的行数。我尝试单独运行您的查询,它在查询中显示错误。
最佳答案
首先确保表中有一个 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
关于mysql - 在mysql中进行选择性备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17481758/