情境:我们的生产mysql数据库每天将转储到一个.sql文件中。我想保存一个相对最新的影子数据库。
我知道要从.sql文件创建mysql数据库,可以使用:
mysql -u USERNAME -p DATABASENAME < FILE.SQL我们的分局用了4-5个小时。不用说,我想减少这一点,我想知道是否有一种方法可以用新的/更改的内容来更新数据库。在第二天,是否有一种方法可以使用从生产数据库中转储的新.sql文件来更新我的影子数据库?
发布于 2012-07-21 15:33:02
MySQL复制是可行的。
但是,在不可能使用的情况下,请使用以下过程
在所有表中设置一个修改的时间戳列,并在插入/更改行时更新该值。
使用以下mysqldump选项获取增量文件(这将使用替换命令而不是插入命令,因为现有记录将在备份数据库中更新)。
将时间戳值保存在文件系统中的某个位置。并在where条件下使用。MDFD_DATE是您需要对其进行筛选的列名。成功备份后,更新文件中存储的值。
跳过-z-utc阻止MSQL根据您的时区自动调整时间戳值。
mysqldump -数据库db1,db2 -user=db2-user=password-no-create-info-no-tablespaces
使用新的sql文件并在服务器中运行它。
限制:
如果在数据库中删除了某些记录,则此方法将无法工作。您需要从备份数据库中手动删除它们。否则,为已删除的记录保留DEL_FLAG列并将其更新为“Y”,并使用此条件删除备份数据库中的记录。
发布于 2012-07-21 15:19:04
这个问题可以通过mysql同步来解决。
发布于 2012-07-21 15:22:03
https://stackoverflow.com/questions/11593319
复制相似问题