仅将更新的表数据从一个DB复制到另一个DB

时间:2012-06-14 06:33:17

标签: sql sql-server copy

我有两个数据库,比如backenddb和livedb(~10 gb,大小超过50个表)。 我正在使用backenddb更新livedb,以便使用mysqldump使用新数据更新它,然后展开它。此过程首先删除所有表行,表,然后在扩展期间将backenddb sql-dump重新插入到livedb中。

那么还有什么方法可以只将更新后的数据行从backenddb插入到livedb而不删除整个livedb数据吗?

2 个答案:

答案 0 :(得分:0)

根据我的理解,我可以回答您可以对backenddb进行差异备份并将其放入livedb。

答案 1 :(得分:0)

通过一些更多的研究,我已经完成了这种方法: 使用以下方法创建backenddb转储:
mysqldump --no-create-db --no-create-info -uroot -hxx.xx.xx.xxx Db_dump> dump_name
这将创建一个包含行数据的转储,不包括表删除命令。 然后在转储文件中将 INSERT INTO 替换为 INSERT IGNORE Into
替换'INSERT INTO''INSERT IGNORE INTO' - dump_name
然后将转储正常扩展到livedb,这将仅插入更新的数据,忽略已有的数据。

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