我们正在多家商店中运行带有MySql后端的Java PoS(销售点)应用程序。我想保持商店中的数据库与主机服务器上的数据库同步。
商店中发生某些更改时,应在主机服务器上对其进行更新。我该如何实现?
我们正在多家商店中运行带有MySql后端的Java PoS(销售点)应用程序。我想保持商店中的数据库与主机服务器上的数据库同步。
商店中发生某些更改时,应在主机服务器上对其进行更新。我该如何实现?
Answers:
复制不是很难创建。
这里有一些很好的教程:
http://aciddrop.com/2008/01/10/step-by-step-how-to-setup-mysql-database-replication/
http://www.ghacks.net/2009/04/09/set-up-mysql-database-replication/
http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
http://www.lassosoft.com/Beginners-Guide-to-MySQL-Replication
在这里,您必须牢记一些简单的规则(当然还有更多的规则,但这是主要概念):
这样,您将避免错误。
例如: 如果您的脚本插入到主服务器和从服务器上的相同表中,则将有重复的主键冲突。
您可以将“从”服务器视为“备份”服务器,该服务器拥有与主服务器相同的信息,但是不能直接添加数据,只能遵循主服务器的指示。
注意:当然,您可以从主服务器读取数据,也可以写入从服务器,但请确保不要写入相同的表(主服务器到从服务器以及从机到主服务器)。
我建议监视您的服务器以确保一切正常。
让我知道您是否需要其他帮助
三种不同的方法:
经典的客户端/服务器方法:不要在商店中放置任何数据库;只需让应用程序访问您的服务器即可。当然,设置VPN会更好,但是仅将连接包装在SSL或ssh中是合理的。优点:这就是数据库最初的想法。缺点:如果延迟时间长,复杂的操作可能会变慢,您可能必须使用存储过程来减少往返次数。
复制的母版/母版:如@Book Of Zeus建议。缺点:设置有些复杂(特别是如果您有多个商店),闯入任何商店的机器都可能损害整个系统。优点:更好的响应能力,因为读取操作完全是本地的,而写入操作则异步传播。
脱机操作+同步步骤:在本地进行所有工作,并不时(可能每小时,每天,每周一次,无论何时)在所有上次同步操作中写入所有新的/已修改的记录的摘要,并将其发送到服务器。优点:无需网络即可工作,快速,易于检查(如果摘要易于阅读)。缺点:您没有实时信息。
查看dbForge Studio for MySQL中的“架构和数据比较”工具。这些工具将帮助您进行比较,以查看差异,生成同步脚本并同步两个数据库。