mysql - 在mysql中进行选择性备份

标签 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;

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

最佳答案

首先确保表中有一个 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/

相关文章:

sql - 服务器备份失败,媒体已格式化为支持 2 个媒体系列错误

sql-server-2008 - SQL Server 2008 备份最佳实践

mysql - 如何在 MySql 中计算 GPA

php - 实际上是否可以通过 .CSV 文件将文件(图像)从您的 PC 上传到数据库?

php - 使用 PHP 将不为空的输入数据插入 MySQL 数据库

java - 当用户刷新浏览器时停止多个数据库访问

java - 尝试从 LAN 网络上的不同电脑获取数据库备份会生成空的 sql 文件

mysql - C# |如何通过 AWS Lambda 函数调用 MVC 数据访问层

ruby-on-rails - Sequel::AdapterNotFound: LoadError: 无法加载此类文件 -- win32ole

mysql - 如何优化这个数据表?