如何组合来自不同时间点的两个MySQL数据库?

如何组合来自不同时间点的两个MySQL数据库?,mysql,linux,Mysql,Linux,我最近为我的应用程序切换到一个新的主机提供商。我的员工在新网站上线之前一直使用旧网站,但是,旧网站的数据库备份是在新网站上线前两天进行的。因此,在传输过程中,记录被输入到旧站点数据库中,而新站点则不存在这些记录(因此我有两天的时间延迟)。如何合并两个数据库以反映更改 需要注意的是,某些表的主键可能是重复的,并且只有少数表上有时间戳。我会做一个“diff”或类似的事情,但是表是以不同的格式转储的 有什么想法吗?这是您需要真正了解数据库模式的地方。您需要创建一个程序,该程序可以查看数据库的两个版本,

我最近为我的应用程序切换到一个新的主机提供商。我的员工在新网站上线之前一直使用旧网站,但是,旧网站的数据库备份是在新网站上线前两天进行的。因此,在传输过程中,记录被输入到旧站点数据库中,而新站点则不存在这些记录(因此我有两天的时间延迟)。如何合并两个数据库以反映更改

需要注意的是,某些表的主键可能是重复的,并且只有少数表上有时间戳。我会做一个“diff”或类似的事情,但是表是以不同的格式转储的


有什么想法吗?

这是您需要真正了解数据库模式的地方。您需要创建一个程序,该程序可以查看数据库的两个版本,确定哪些记录是共享的,哪些不是共享的,哪些具有冲突的主键(与使用相同键更新的记录相比)。然后,它需要复制更改,可能需要替换主键的值(包括其他行中引用要重新编号的行的值!)这并不容易,而且这不是一门精确的科学——您将编写启发式,并期望进行一些手动修复


下次抓取最终备份时关闭该数据库:)

您不需要创建任何其他程序。设置从旧数据库到新数据库的复制所需的一切。 旧数据库中的所有数据将自动传输到新数据库。在此期间,应使用旧数据库作为主要数据源。一旦所有数据都复制到新位置,您只需停止副本连接并将代码(或DNS指针)中的DB地址更改为新地址

1.       oldDB ===> replication ==> newDB
    R/W operations

2.       oldDB ==/= brake ==/=      newDB
                               R/W operations