我正在使用PHP和
mysql开发一个Web应用程序.此应用程序在三个不同的位置运行.在互联网上总部. 3.分公司.应用程序在总部和分支机构的本地服务器上运行.每次互联网连接都不可用.客户通过这三个位置下订单.我的问题是,我想同步这三个数据库之间的数据,并保持这三个数据库是最新的.有没有办法呢
解决方法
我正在使用SymmetricDS来同步数据库.它能够在节点(服务器/数据库)之间同步或复制数据,只能推或拉您定义的数据.它是一个基于
Java的软件,它有一个陡峭的学习曲线,但它真的做到这一点.
可以设置SymmetricDS以将更改从一个节点推送到另外两个节点,从而确保所有三个节点都包含相同的数据.您需要确保主键是唯一键,而不是由数据库分配的自动递增值,因为这最有可能是您要同步的三个不同数据库的问题.
软件在数据库上安装触发器,并在执行INSERT,UPDATE或DELETE(和其他)操作时捕获更改.然后在其他节点上调用这些数据更改.该软件需要在每个位置运行,但不需要任何时候可用的互联网连接.
我一开始担心,所有表上的触发器都会降低性能,但这根本不是一个问题.我不能说我们在安装触发器后发现了任何性能问题.
看看http://symmetricds.org/更多的细节.