0

如果我有 2 个具有相同定义的表,我将如何每天从其中备份数据?我可以使用 mySQL Administrator 来执行这样的事情吗

  • 每天中午 12:00,将 main_table 中的所有行复制到 backup_table
  • 最好是增量备份,因为将对 backup_table 中的记录进行一些更改,我不希望新的备份消除这些更改。

谢谢

4

2 回答 2

2

让我们从这个开始:将数据从一个表复制到同一台服务器上的另一个表不是备份。

现在,如果您有 MySQL 5.1.6 或更高版本,您可以使用事件调度程序来安排此类操作。

http://dev.mysql.com/doc/refman/5.1/en/events.html

它应该像运行这样的查询一样简单

INSERT INTO 
  secondarydatabase.tableName
SELECT pr.* FROM
  primarydatabase.tableName AS pr
LEFT JOIN
  secondarydatabase.tableName AS sec
USING(primaryKeyColumn)
WHERE sec.primaryKeyColumn IS NULL

(这将复制任何新行,不会复制现有行中的更改)

就实际备份而言,请阅读以下内容:

http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html

于 2010-12-19T22:46:43.427 回答
0

是的,你绝对可以做到。看看这个页面:http ://dev.mysql.com/doc/refman/5.0/en/batch-mode.html

如果您仔细编写脚本,这样您就不会删除表而只是插入新行,您不必担心丢失数据。如果您为表中的每一行存储了一个时间戳,这会使事情变得容易得多。您可以使用时间戳来加载/更新自上次批处理运行以来已更改或添加的新行。

但是,在插入之前备份当前表始终是最佳实践。如果导入成功,您可以清理备份表。

于 2010-12-19T22:46:15.907 回答