MySQL备份不覆盖新行

假设我像这样备份一个数据库:

mysqldump -u usrname -p pass dbname > dbbackup.sql 

然后我从dbname删除一堆行。

然后将新行插入到dbname中。 但是,我决定要“删除”我删除的行。 如何在不覆盖新行的情况下恢复dbbackup?

你可以做的最好的事情是将备份恢复到新的数据库,然后运行查询(这将取决于使用表的应用程序)来确定所需的行并传输这些数据。

请记住,在执行此过程时要继续备份,以限制可能的数据丢失,并确保备份不会随着时间的推移而相互覆盖。

pt-table-sync可能对你有帮助,但是你需要仔细阅读,特别是关于双向同步的部分。 我没有使用它,除了同步主/从,但从我可以看到它可以很好地工作在您的情况(如果您将备份还原到另一个数据库)。

http://www.percona.com/doc/percona-toolkit/2.0/pt-table-sync.html

只要记住,在做任何步骤之前进行备份。 即使将备份还原到另一个名称。 没有什么比在当前数据库顶部恢复更快的速度。

如果这是您需要的function,则需要专门devise用于支持该function的数据库模式。

只要在随机数据库上做这件事,几乎肯定会导致严重的混乱。