我有两个数据库,比如backenddb和livedb(~10 gb,大小超过50个表)。 我正在使用backenddb更新livedb,以便使用mysqldump使用新数据更新它,然后展开它。此过程首先删除所有表行,表,然后在扩展期间将backenddb sql-dump重新插入到livedb中。
那么还有什么方法可以只将更新后的数据行从backenddb插入到livedb而不删除整个livedb数据吗?
答案 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替换。