2010-12-19 52 views
0

如果我有两个具有相同定义的表格,我将如何每天备份它的数据?我可以使用MySQL管理员这个从一个表格到另一个表格的mySQL日常备份

  • 上午12:00时每天演出一样的东西,复制所有从MAIN_TABLE行至backup_table
  • 这将是最好,如果它是有些改变会在作出增量备份在backup_table中记录,我不希望新的备份消除这些更改。

感谢

回答

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

+0

用于事件调度程序。 – rkg 2010-12-19 22:50:34

0

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

如果你仔细编写你的脚本,这样你不会丢掉表格并插入新行,你不必担心丢失数据。如果您为表格中的每一行都存储了时间戳记,这使事情变得更容易。您可以使用时间戳来加载/更新自上次批处理以来更改或添加的新行。

但是,在执行插入操作之前,始终需要对当前表进行备份。如果导入成功,您可以清理备份表。

相关问题