1

请原谅我的无知,但我没有大量的 MySQL 经验。我是一名网络开发人员,但总的来说,我几乎刚刚安装了 MySQL 或启动了一个 RDS 实例,连接到它,一切正常。但是,我目前的任务是为我们的主服务器创建一个完整的备份(本质上是通过负载平衡器等实现高可用性)。所以我认为现在可能是改变我的 MySQL 设置以利用 2 台服务器的好时机。目前,我们的 MySQL 存在于我们的主服务器上,并且现在可能会保持这种状态,但是我对这个新设置的目标是拥有 2 台相同的服务器,它们都运行应用程序并且都具有完全相同的 MySQL 数据结构/数据。我希望能够在一台服务器上打开 Web 应用程序,进行更改,

从我的研究来看,我想要的似乎是“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。

4

2 回答 2

0

最简单的开始方法是使用 proxysql 设置 percona xtradb 集群。

Percona xtradb 集群处理基本 MySQL Master-Master Replication 中存在的所有问题。
Galera 和 Percona Xtradb CLuster 都是相同的,因为它们使用相同的 galera 插件,只是 Percona 对其进行了定制并添加了一些额外的功能,例如内置的 proxysql(一种数据库负载均衡器)。

于 2018-06-05T13:55:53.500 回答
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 解决方案之一。最佳实践仍然是只写入一个节点,而将另外两个节点用于只读查询。如果主节点出现故障,其他两个节点中的每一个都具有数据的最新事务副本。同样,如果主服务器出现故障,ProxySQL 会帮助路由流量。

可以使用 Percona XtraBackup 以非阻塞/热方式从任何 PXC 节点进行备份。

于 2019-01-22T03:54:57.023 回答