我有几个位于不同位置的数据库和一个位于数据中心的中央数据库。所有都具有相同的架构。所有这些都在每个位置被更改(插入/更新/删除),包括中央数据库在内的不同数据。
我想同步中央数据库中的所有数据。我还希望中央数据库中的所有数据同步到所有位置。我的意思是位置1中的数据库更改也应该反映在位置2数据库中。
关于如何解决这个问题的任何想法?
答案 0 :(得分:7)
只需查看 SymmetricDS 即可。它是一种支持多个用户和双向同步的数据复制软件。
答案 1 :(得分:3)
您必须在数据库之间实现双向复制方案。创建的每个新记录都应具有唯一标识符(例如GUID),以便来自不同数据库的数据不会发生冲突。 (见mysql replication howto)。
MySql仅支持单向复制,因此您需要将每个数据库设置为主数据库,并使每个数据库成为所有其他数据库实例的从属数据库。祝你好运。
答案 2 :(得分:2)
我去了SymmetricDS
我认为这也是顶级品质,我只能在sourceforge中找到(php mysql sync)
并在互联网上找到了许多链接。
答案 3 :(得分:0)
不幸的是,MySQL复制功能不允许你完全按照自己的意愿行事。
通常,要同步两台服务器,可以使用主 - 主复制方案。见http://www.howtoforge.com/mysql_master_master_replication
问题是每个MySQL服务器只能有一个主服务器。
我知道保持多台服务器同步的唯一方法是循环复制(参见http://onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html?page=2),但不完全符合您的需求(“星形”配置)
也许这个配置可能足够接近:所有“远程”(非中心)数据库都只是可读的从属设备(通过基本的主从复制同步),而写作只会发生在中央服务器上(这会是主人。)