mysql主从服务器算集群吗?数据库采购别只看概念,关键看稳定和容灾
当公司的业务很繁忙的时候,系统的查询会变得缓慢,而订单的插入也会出现延迟的情况,在这个时候老板的第一反应就是“是否需要搭建一个数据库集群”
很多采购、IT负责人会问到:MySQL主从服务器是否属于集群呢?只用两个服务器做主从的话,是不是就不值得投资了呢?
问题不在于名字本身,而要根据你的业务需求来判断:是为了提高读取速度、进行数据备份还是实现故障自动切换与高可用性?
简单的说,MySQL主从可以算是“数据库架构的一种集群形式”,但是它并不等于一个完整的高可用集群。主从就是:一个主库做写操作,从库同步数据,并且承担读取、备份、报表等工作。它可以分散压力也可以减少单点故障的风险,但是当主库宕机的时候能不能自动切换呢?这就要看是否有部署了高可用组件、监控告警以及运维流程了。
如果企业的ERP、进销存、OA、财务系统等都是内部使用的,并且只有几十到几百人的规模,而且预算也不高的话,那么用MySQL主从就比较实际了。它比单独一个数据库更加稳定,但是直接搭建复杂的分布式集群又太难实现。但是对于电商、SaaS平台、医院业务系统、生产MES、金融类核心系统这样的应用来说,则不能只做简单的主从复制,还需要考虑到读写分离、故障切换、数据备份与恢复、双电源供电、双网卡连接以及UPS和机房网络等问题。
选择MySQL主从服务器的时候,主要应该关注以下几点:
第一是看CPU核心数。数据库不光要消耗CPU资源,而且在进行并发查询、索引计算和报表统计的时候也会占用大量的资源。中小型企业可以从8核、16核开始,如果业务并发度很高或者数据量增长很快的话,则需要留出更多的核心来防止刚开始运行时就达到上限。
第二点就是看内存大小了。MySQL 的性能在很大程度上取决于缓存,如果内存过小就会导致频繁地从硬盘上读取和写入数据。一般情况下建议使用 64G 内存起始,当数据量大或者多实例部署时可以考虑 128G、25T 等更大规格,并且要结合实际表格大小以及访问频率来计算出一个比较稳定的结果。
第三、查看硬盘种类以及RAID模式。除了容量之外,还要关注数据库服务器的I/O性能与可靠性。一般情况下使用企业级SSD或者NVMe SSD来存储数据库数据,RAID 1 和 RAID 10比较适合于对性能和安全性都有要求的情况;备份盘应该单独分配一个大的磁盘空间,并且不能把数据库和备份全部放在同一个磁盘上。
第四点就是电源、网卡以及远程管理方面的情况。双电源冗余、千兆/万兆网络、远程管理模块对于机房部署来说是非常重要的。服务器不是买了就能直接开起来用的,之后出现的问题要怎么定位、如何进行远程重启、硬件报警等都会影响到运维效率。
第五个是看备份与恢复方案。主从不等于备份,从库也会出现误删、误改的情况。建议结合定时全备、增量备份、异地备份以及恢复演练等措施,并且对于财务、订单、客户资料等重要的数据来说,不能仅仅依靠有一个从库就感到放心。
一个常见的误解就是有很多人会说:“我买了两个服务器来当MySQL主从,就不可能出现宕机的情况了吧?”所以不能这么想。主从可以提升可用性的基础,但是要实现业务不中断,则需要有VIP漂移、MHA、Keepalived、ProxySQL、数据库监控以及故障切换预案等等一系列措施来配合。即使预算有限也可以做到稳定,但是方案必须按照业务的重要性进行分层设计。
在购买的时候也不能只比较服务器的价格。相同的配置为“16核128G 4块SSD”,但是不同的品牌、硬盘等级、阵列卡缓存、电源冗余、质保年限以及上门服务等差别很大。特别是对于数据库来说,硬盘与内存稳定性的关系要比单纯的增加CPU重要得多。国产化替代项目的CPU架构、操作系统、数据库版本、应用程序兼容性要提前确定好,否则设备到货之后发现部署困难就麻烦了。
比较合理的方法是:根据业务系统的数量、在线人数、数据量、并发写入以及是否有读写分离的需求来确定使用单机版还是主从结构或者主主结构或者是高可用数据库集群。服务器配置、品牌选定、国产化方案制定、安装调试、RAID设置、系统部署、数据库迁移及后续维护等事项最好一并考虑,并且预算也可以更好地把控住。
如果要选择MySQL主从服务器,或者是不确定是否需要数据库集群的话,可以把你的业务场景、人数、数据量、软件系统、预算范围以及是否需要国产化的信息发给我,我会给你一个配置方案、报价方向和部署建议。
