王俊杰
[摘 要:随着技术的进步,人们的生活越来越依赖于互联网应用,数据也越来越重要。很多大型的网站开始使用数据库集群来提高数据库的可靠性和数据库的性能。对于广大计算机类专业的学生来说,单纯的学习数据库理论知识,很难满足现阶段互联网发展对于数据库技术的要求。本文从需求作为切入点,介绍一款比较成熟的MySQL集群架构。
关键词:MySQL;数据;集群]
一、数据库集群技术简介
最新的数据库集群系统的理论基础是分布式计算,将数据分布到每个节点,所有的计算节点并行处理数据,将结果汇总。这样的方式无疑是最完美的。但是目前仍然不能实现全部的功能。
目前数据库应用状况大致分为两类,第一类是数据量在100G以下,数据库访问频繁,请求密集。主要是Web APP类型的应用,例如:网站,论坛等。这些Web APP类型的应用访问数据库的特点是:访问频繁,数据库每秒钟要接受几千次以上的查询,需要经常追加数据,同时对数据的响应速度要求比较高。另一类是用于科学计算、存储历史数据的应用,数据量往往达到几百G。这些应用访问数据库的特点是:多为查询操作,数据都是分批、定时、集中倒入数据库,数据库的记录非常多,积累了大量的数据,对数据库的响应速度没有太高要求。
数据库集群和分布式数据库的区别,分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不一定就是分。
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群則是通过提高单位时间内执行的任务数来提升效率。
二、MySQLCluster简介
MySQL Cluster是MySQL适合于分布式计算环境的高实用、高冗余版本。Cluster的汉语是“集群”的意思。它采用了NDB Cluster 存储引擎,允许在1个 Cluster中运行多个MySQL服务器。
MySQL Cluster是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的Cluster。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。
(一)MySQL-Cluster架构
1.SQL节点:给上层应用层提供sql访问。
2.存储/数据节点:保存cluster中的数据。数据节点,可以提供副本。实现数据冗余。
3.管理节点(MGM):管理整个集群。启动,关闭集群。通过ndb_mgmd命令启动集群。
4.NDB引擎:是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。
(二)NDB引擎
MySQL Cluster使用了一个专用的基于内存的存储引擎——NDB引擎,这样做的好处是速度快,没有磁盘I/O的瓶颈,但是由于是基于内存的,所以数据库的规模受系统总内存的限制,如果运行NDB的MySQL服务器一定要内存够大,比如4G,8G,甚至16G。NDB引擎是分布式的,它可以配置在多台服务器上来实现数据的可靠性和扩展性,理论上通过配置2台NDB的存储节点就能实现整个数据库集群的冗余性和解决单点故障问题。
1.缺陷
(1)基于内存,数据库的规模受集群总内存的大小限制
(2)基于内存,断电后数据可能会有数据丢失,这点还需要通过测试验证。
(3)多个节点通过网络实现通讯和数据同步、查询等操作,因此整体性受网络速度影响,因此速度也比较慢
2.优点
(1)多个节点之间可以分布在不同的地理位置,因此也是一个实现分布式数据库的方案。
(2)扩展性很好,增加节点即可实现数据库集群的扩展。
(3)冗余性很好,多个节点上都有完整的数据库数据,因此任何一个节点宕机都不会造成服务中断。
三、MySQL集群总结
数据库作为应用系统的核心,在企业的IT系统中起着非常重要的作用,单一设备根本无法保证系统的持续运行,发生系统故障,严重影响系统的正常运行,甚至带来巨大的经济损失。于是人们希望通过组建数据库集群,来保证系统的可用性,一旦某节点发生故障,系统会自动故障转移,实现系统的持续工作。
企业的数据是企业的一些重要信息,一些核心数据甚至关系着企业的命脉,单一设备根本无法保证数据的安全性,一旦发生丢失,很难再找回来,于是人们希望通过组建数据库集群,实现数据集群的冗余,通过多份数据来保证安全性。
参考文献
[1][美]查理斯·贝尔(Charles Bell).高可用MySQL[M].电子工业出版社,2015.
[2]宋立桓.MySQL性能优化和高可用架构实践[M].福建少年儿童出版社,2020.
[3]张甦.MySQL王者晋级之路[M].电子工业出版社,2018.