0

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

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

4

2 回答 2

0

据我了解您的问题,我可以回答您可以对后端数据库进行差异备份并将其放入您的 livedb。

于 2012-06-14T06:55:31.843 回答
0

通过更多的研究,我最终确定了这种方法:使用以下方法创建一个后端数据库转储:
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
然后将转储正常扩展至 liveb 这将只插入更新的数据,而忽略已经存在的数据。

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

于 2012-06-19T02:15:36.470 回答