mysql keepalive+ 双主多从是怎么做的

基于MySQL双主的高可用解决方案理论及实践

今天我负责的项目需要解决一个数据库高可用问题。
这个场景让我想起一个故事。
记得有一次,我在一家小公司做运维。
当时,公司的数据库服务器出现问题,大部分数据丢失。
那是一天晚上,大家都在紧急抢修。
我记得我花了几个小时才修复它。
当时我确实觉得数据库的高可用才是运维工作的重中之重。

现在回想起来,我们当时采用的是最简单的方案,没有复杂的存储复制技术,也没有双主复制、MHA、PXC等先进技术。
我只备份了masters,当时我认为这就足够了。
但随着时间的推移,业务量越来越大,对数据库的需求也越来越高。
单纯的备份已经不能满足要求。

后来我们公司推出了更先进的高可用解决方案,比如永久双主复制、MHA等,这种方案增加了数据库的可用性,但也增加了运维的复杂度。
我记得,当我们尝试使用MHA时,由于配置错误导致数据丢失。
这个教训让我意识到任何高可用性解决方案都需要严格的测试和监控。

现在,我们的项目不得不面临同样的问题。
虽然MySQL在互联网应用中已经成长,但在银行系统中还处于扎根阶段。
我们正在根据实际需求整理和完善高可用解决方案数据库。
这个过程突然提醒我,尽管技术不断发展,但高可用性的基本原则仍然适用。

我们选择keepalived+双主复制方案,MySQL版本为5 .7 .2 1 ,操作系统为RedHat EnterpriseLinuxServer7 .3 配置过程比较复杂,需要设置服务器id、绑定地址等不同参数,还需要配置半同步模式、Keepalived等。
虽然实现过程中遇到了很多问题,但最终还是实现了高可用。

这个过程让我觉得设计和实现高可用解决方案不仅需要技术能力,还需要对业务需求的深刻理解。
毕竟,技术的主要目的是更好地服务于企业。
那么,除了这些高可用技术之外,我们是否还需要考虑其他因素来保证数据库稳定运行呢?

商业版mysql自动主备切换

2 02 2 年,我的公司在某个城市遇到了一个问题,即数据库活动和备份的自动切换。
我当时就很困惑,因为这涉及到很多东西,不是简单的复制粘贴就能解决的。
我们考虑了几种选择。
第一种是通过 MySQL Replication 结合 Keepalived 等监控工具。
该选项相对便宜,但必须保证监控工具的稳定性。
如果监控工具出现问题,切换就会成为问题。
当时我并没有完全理解,但后来意识到这个变更过程中可能会出现短暂的服务中断,所以我必须提前通知用户。

接下来,我们研究了 Keepalived 的实现。
这个工具很有趣。
主备服务器的优先级和虚拟IP通过配置文件设置。
当主服务器正常运行时,VIP会与其链接。
一旦主服务器出现问题,Keepalived可以检测到,然后VIP自动漂移到备份服务器进行无缝切换。
这个解决方案非常灵活,但是你必须编写自己的脚本来处理复杂的逻辑,当时我觉得这很烦人。

接下来我们研究了MySQLCluster,它是MySQL官方的高可用解决方案,通过分布式架构实现数据同步和自动故障转移。
集群中有多种类型的节点,包括数据节点、管理节点和SQL节点。
节点之间数据自动同步。
当主节点出现问题时,集群内会自动选举出新的主节点。
该方案适用于对数据一致性和可用性要求较高的场景。
但部署和维护成本较高,需要专业团队进行管理。

最后,我们考虑了云服务解决方案,例如阿里云RDS。
这个方案比较简单,预算充足的话可以直接使用。
云服务提供一整套灾难恢复、备份、恢复、监控和迁移功能。
用户只需在控制台配置高可用策略,自动进行故障检测和切换。
但长期使用成本较高,完全依赖云服务商的技术支持。

当时我很困惑。
每种解决方案都有优点和缺点。
最终,根据公司的实际情况,我们选择了MySQL Replication结合Keepalived的方案。
虽然成本不高,但稳定性和灵活性还是可以接受的。
在实施过程中,我学到了很多,尽管过程相当曲折。