Mysql查询将新数据从一个DB复制到另一个DB

时间:2012-10-23 17:00:55

标签: mysql database mysqldump

我有一个情况。当我们升级我们的服务器驱动器时,我们对数据库进行了备份,然后再次导入它,然后网站上线了,经过几周我们意识到导入没有从转储文件中复制整个备份,因为我们检查它时只有13 GB它假设是60 GB。有趣的是,我们发现有一个大表是以有趣的方式复制的,它是巨大的,它只是复制了一些初始记录,比如2000-5000,它复制了最后的记录说400000-500000并且没有两者之间的记录。这不是很奇怪吗?因为我们导入时检查了初始和最后的条目,并认为它复制了所有内容。然后我们创建了一个新的数据库并再次导入了一个转储,现在它似乎没问题了,但是我们的实时数据库中已有新条目(13GB数据),因此我们必须复制这些数据并添加到我们的newl导入数据库中。将这些新记录复制到恢复的数据库中的空闲方法是什么?我的意思是一些查询将搜索新数据库并仅添加找到的新记录。那么我必须转储我们的13 GB然后导入?或者是否仍然可以从实时数据库中复制?

1 个答案:

答案 0 :(得分:0)

您可以将mysqldump与以下选项一起使用:--insert-ignore - 写入INSERT IGNORE语句而不是INSERT语句(http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_insert-ignore) 使用IGNORE关键字时,不会插入复制表中现有UNIQUE索引或PRIMARY KEY值的行,并且不会发出重复键错误。