请原谅我的无知,但我没有大量的MySQL经验。我是一名Web开发人员,但总的来说,我几乎只安装了MySQL或者运行了一个RDS实例,连接到它并且一切正常。但是,我目前的任务是创建主服务器的完整备份(基本上具有负载均衡器的高可用性等)。所以我认为现在可能是改变我的MySQL设置以利用2台服务器的好时机。目前我们的MySQL存在于我们的主服务器上,并且现在可能会保持这种状态,但是我的这个新设置的目标是拥有2个相同的服务器,两者都运行应用程序,并且两者都具有完全相同的MySQL数据结构/数据。我希望能够在一台服务器上实际打开Web应用程序,进行更改,在另一台服务器上查看或反之亦然。
从我的研究中看起来我想要的是#34; Master-Master Replication"然而,似乎这是一个较旧/更过时的方法?我阅读的每篇文章都是从2010-2012开始的,大多数人都说它是折旧的,我应该使用Percona XtraDB Cluster,MySQL Group Replication或Galera Cluster等。我基本上不知道这是什么意思,我正在寻找让Master-Master类型设置正常工作的最简单方法。最重要的是,即使我想使用常规的Master-Master复制,似乎这是MySQL特有的东西,而不是我实际使用的Percona。
我对开发操作有很多了解,并且可以立即获得除MySQL之外的所有内容,但我希望能够对最佳方法有所了解。目前服务器运行的是Centos 7,Percona 5.7,Apache 2.4。
答案 0 :(得分:0)
最简单的方法是使用proxysql设置percona xtradb群集
Percona xtradb集群处理基本MySQL Master-Master复制中存在的所有问题
Galera和Percona Xtradb CLuster都是相同的,因为他们使用相同的galera插件,只有Percona定制了它并添加了一些额外的功能,如内置的proxysql(数据库的负载均衡器)。
答案 1 :(得分:0)
让我们先清理一件事。 Percona是MySQL。如果一个功能在Oracle MySQL上可用(社区版本就是我在这里指的),那么它在Percona上也可用。可以将两者像蛋糕一样:MySQL是最基本的“蛋糕”,Percona是最上层的糖霜/撒糖粉/等。
也就是说,您绝对可以使用Percona MySQL做Master / Master。标准/最佳做法是在活动/热备用中进行配置。意思是,不要同时写入两个节点。您的应用程序或中间件/代理必须将写操作仅隔离到一个节点。当复制中断时,这将为您节省疯狂的头痛。
ProxySQL不是Percona产品,但我们确实100%支持。您可以将ProxySQL放在M / M的前面,并设置正确的查询规则以仅路由到一个MySQL。
您是正确的,这里最现代的解决方案(我认为是更简单的解决方案)是设置3节点Percona XtraDB群集(PXC)。同样,Galera MySQL是“蛋糕”,PXC是最重要的功能。组复制是馅饼(继续进行类比。)
我们认为带有ProxySQL的3节点PXC是MySQL最好的HA解决方案之一。最佳做法仍然是仅写入一个节点,而将其他2个节点用于只读查询。如果主节点发生故障,则其他两个节点都将拥有数据的最新副本。同样,如果主数据库出现故障,ProxySQL可以帮助路由流量。
可以使用Percona XtraBackup以非阻塞/热方式从任何PXC节点进行备份。