在mysql中进行选择性备份

时间:2013-07-05 05:37:09

标签: mysql database database-backups

我有一个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;

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

1 个答案:

答案 0 :(得分: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)

您可能还想到添加一个Trigger,它会自动将db_from.my_cool_table中的每条记录实时插入/更新/删除到db_to.my_cool_table,这样您就不需要运行此备份脚本了。见这里:http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html