PHP/MySQL概念性数据库“同步”问题

4

我正在开发一个PHP类,实现使用PDO将本地数据库的表与远程数据库同步。

问题

我正在寻找一些想法/方法/建议来实现我的“同步”过程中的“备份”功能。思路是:在实际插入数据之前,先清空本地表的数据。时间不是一个因素,所以我认为这是最干净和最简单的解决方案,我不必担心检查数据差异等问题。问题是,我希望在插入数据时实现某种安全措施,以防出现插入数据的问题,如互联网连接丢失或其他问题。我目前唯一的想法是:复制要同步的表->清空该表->将远程表的数据插入到本地表中->如果成功,则删除备份副本。


1
为什么不使用事务,如果连接失败,它将永远不会提交。 - Orbling
2个回答

3

推荐使用mk-table-sync工具,它可以比较两个不同服务器上的表,使用行块的校验和进行比较。如果某个块在两个服务器之间完全相同,则无需复制。如果块不同,则只复制所需的块。您无需清除本地表。

另一种选择是将远程数据复制到不同的表名中。如果成功完成,则删除旧表并将新的本地副本重命名为原始表的名称。如果复制失败或被中断,则删除具有不同名称的本地副本并重试。同时,您的其他本地表保持不变。


啊,那个解决方案肯定看起来更安全。 - grep

0
以下是一个网络工具,可以在您和服务器或其他开发人员之间同步数据库。
它基于Git。因此,您应该在项目中使用Git。
但它只有在开发应用程序时才有帮助,它不是比较数据库的工具。
要同步数据库,您需要定期将代码推送到Git。
Git项目:https://github.com/hardeepvicky/DB-Sync

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接