如果我有 2 个具有相同定义的表,我将如何每天从其中备份数据?我可以使用 mySQL Administrator 来执行这样的事情吗
- 每天中午 12:00,将 main_table 中的所有行复制到 backup_table
- 最好是增量备份,因为将对 backup_table 中的记录进行一些更改,我不希望新的备份消除这些更改。
谢谢
如果我有 2 个具有相同定义的表,我将如何每天从其中备份数据?我可以使用 mySQL Administrator 来执行这样的事情吗
谢谢
让我们从这个开始:将数据从一个表复制到同一台服务器上的另一个表不是备份。
现在,如果您有 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.0/en/batch-mode.html
如果您仔细编写脚本,这样您就不会删除表而只是插入新行,您不必担心丢失数据。如果您为表中的每一行存储了一个时间戳,这会使事情变得容易得多。您可以使用时间戳来加载/更新自上次批处理运行以来已更改或添加的新行。
但是,在插入之前备份当前表始终是最佳实践。如果导入成功,您可以清理备份表。