我有两台服务器,分别考虑服务器 1 和服务器 2。服务器 1 上有许多数据库,服务器 2 上也有一些活动数据库。
我可以设置服务器 1 和服务器 2 的 MySQL 复制吗?如果可以,建议使用哪种类型的复制:主-主还是主-从。
我还想知道,如果我使用主从复制,我的从服务器是否会像现在这样工作,或者在从服务器上可以执行的操作是否会受到限制。我在一些论坛上看到,从服务器只能执行读取操作,所以我想知道,如果我使用主从复制,我是否能够使用服务器 2(从服务器)上的现有数据库。
谢谢。
答案1
答案在很大程度上是“视情况而定”。您复制是为了从从属服务器获取备份吗?您复制是为了让从属服务器为您的应用程序提供读取服务吗?您需要先读后写一致性吗?您复制是为了高可用性吗?
但是你可能想研究一下 MySQL 5.7 的新功能多源复制因为您有两个数据库服务器。例如,两个主服务器复制到一个从服务器。
答案2
我在分布式网络上使用主从复制多年,但我建议你使用基于 GALERA 的解决方案http://galeracluster.com/products/它也在 openstack 内部使用,对于我来说,它绝对是与 Master 相比最好的。
答案3
您似乎对 MySQL 复制模式有点困惑。它们都是主/主或主/从。首先要做出的选择是您想要使用异步、半同步还是同步复制。前者在所有平台上都是现成的,但确实存在技术限制。后者需要额外的组件。然后如何指定集群内的节点是次要问题。对这些问题的全面讨论远远超出了此处答案的范围(但我认为您可能应该尝试异步主/主)。
互联网上有很多关于该主题的好文章和一些好书(尽管关于半同步复制的资料目前还没有太多)。