2012-06-14 47 views
0

我有两个数据库,如backenddb和livedb(大小约10 gb,有50多个表)。 我正在使用backenddb更新livedb,以便使用mysqldump对新数据进行更新,然后对其进行扩展。此过程首先删除所有表行,然后在扩展期间将backenddb sql-dump重新插入到livedb中。只将更新后的表数据从一个数据库复制到另一个数据库

那么有没有其他的方法可以让我只将更新的数据行从backenddb插入到livedb而不删除整个livedb数据?

+0

livedb中的任何数据都改变了吗?如果不是这样,我想你应该想想数据库复制=>在这里看到:http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html – YvesR

+0

我想继续复制去年的选择,因为backenddb大量加载查询所有的时间。因此,我正在寻找一些选项,而无需将livedb耦合到backenddb。 – Kratos85

+0

那么在这种情况下:在要复制的每个表上设置一个触发器并将其插入。选择*从。 – YvesR

回答

0

通过一些更多的研究,我已经确定了这种方法:使用 创建backenddb转储:
的mysqldump --no创建-DB --no创建-信息-uroot -hxx.xx.xx.xxx Db_dump > dump_name
这将创建一个包含行数据的转储,但不包括表删除命令。 然后在转储文件替换INSERT INTOINSERT IGNORE进入
替换“INSERT INTO 'INSERT INTO忽略' - dump_name
然后正常地扩大转储到livedb这样只会插入更新的数据忽略已有的数据。

注意: - INSERT INTO的任何文本出现都将被insert命令的INSERT IGNORE Into替换为sql dump。

0

为了我的理解你的问题,我可以回答,你可以采取差异 backenddb的备份,并把它放到你的livedb。

相关问题