请原谅我的无知,但我对mysql没有太多的经验。我是一个网页开发人员,但总的来说,我几乎刚刚安装了mysql或旋转了一个rds示例,连接到它,一切正常。不过,我目前的任务是为我们的主服务器创建一个完整的备份(基本上是使用负载均衡器等实现高可用性)。所以我想现在可能是一个很好的时机来改变我们的mysql设置,以利用2台服务器的优势。目前,我们的mysql生活在我们的主服务器上,这可能会一直保持下去,但是我的目标是这个新设置有两个相同的服务器,都运行应用程序,都有完全相同的mysql数据结构/数据。我希望能够基本上打开一台服务器上的web应用程序,进行更改,在另一台服务器上看到它,或者反之亦然。
从我的研究看来,我想要的是所谓的“主复制”,但似乎这是一个更老/更过时的方法?我读的每一篇文章都是2010-2012年的,大多数人都说这篇文章已经贬值了,我应该使用percona xtradb cluster,mysql group replication,或galera cluster等等。我基本上不知道这意味着什么,我正在寻找最简单的方法来让master type安装工作。除此之外,即使我想使用常规的主复制,似乎这是mysql特有的东西,而不是我实际使用的percona。
我知道很多关于开发操作,可以得到一切,但mysql的启动和运行在任何时间,但我想一些最好的方法来做到这一点的见解。目前服务器运行的是centos 7、percona 5.7和apache 2.4。
2条答案
按热度按时间yshpjwxd1#
最简单的方法是使用proxysql设置percona xtradb集群。
PerconaXtraDB集群处理基本mysql主复制中存在的所有问题。
galera和perconaxtradb集群都是相同的,因为它们使用相同的galera插件,只是percona对其进行了定制并添加了一些额外的特性,比如内置proxysql(一种数据库负载均衡器)。
ztmd8pv52#
我们先弄清楚一件事。percona是mysql。如果oraclemysql上有一个特性(这里我指的是社区版本),那么percona上也有这个特性。把两者想象成一个蛋糕:mysql是基本的“蛋糕”,percona是上面的糖霜/喷雾/等等。
也就是说,你完全可以用perconamysql做master/master。标准/最佳做法是在活动/热备用中配置此功能。也就是说,不要同时写入两个节点。应用程序或中间件/代理必须仅隔离对一个节点的写入。当/如果复制中断,这将为您节省疯狂的头痛。
proxysql不是percona产品,但我们100%支持它。您可以将proxysql放在m/m前面,并设置正确的查询规则,以便只路由到一个mysql。
你是对的,这里最现代的解决方案,在我看来,一个更简单的解决方案,是建立一个3节点perconaxtradb集群(pxc)。同样,galeramysql是“蛋糕”,pxc是上面所有的附加组件。组复制是一个饼图(继续类推)
我们认为以proxysql为前端的3节点pxc是mysql的最佳ha解决方案之一。最好的做法仍然是只对一个节点进行写操作,而将另外两个节点用于只读查询。如果主节点发生故障,则其他两个节点中的每个节点都有一个数据的最新事务副本。同样,proxysql有助于在主服务器宕机时路由通信量。
可以使用percona xtrabackup以非阻塞/热方式从任何pxc节点进行备份。