MySQL数据库的主要HA技术与实现方案
2015-08-26苏智韬
苏智韬
(大庆油田信息技术公司北京分公司,北京 100043)
在当前网络环境下,信息越来越成为整个社会环境沟通的载体,甚至可以说,信息本身的安全与稳定,已经成为影响社会环境诸多方面稳定的重要因素。而这种对于信息的安全,进一步推动了数据库领域相关问题的产生,在MySQL数据库环境中,高可用性(HA,High Availability)以及相关技术与实现,已经成为确保数据库工作稳定特征重要手段和依据。
1 数据库高可用特征与实现
对于MySQL数据库工作体系而言,高可用性水平在很大程度上受到应用环境的影响,不同的应用领域,对于高可用性的要求都会有所不同。常规而言,高可用性体系需要确保整个系统的可用性,如果可用度达到99.9%,就意味着每年的停机时间不超过8.8小时。而对于要求更为严格的军事环境,可用性甚至会被要求达到99.999%,当然其对应的成本也会随之激增。
当前在MySQL数据库系统领域中,较为常见的打造高可用性的手段,是采用双机服务器并且建立互为同步复制体系,进一步配合结合后台进程延时数据复制技术,以及服务器IP地址动态“漂移”等相关技术,切实实现对于数据库系统可用性的提升。随着技术的发展,目前在该领域中,四机体系也开始投入应用,进一步分为四机两数据节点系统和四机四数据节点技术两个主要分类,同时多机体系也在积极的研发过程中,对于两机以上的高可用性系统而言,当前主要采用MySQL Cluster技术予以展开,实现数据从整体结构上的分布式存储和热备份等相关职能。
当前在数据库环境中存储的数据有多个类型,不同类型的数据在存储和加工的过程中都会遵守严格的时序特征,并且对应的操作结果还需要进行实时输出,因此对于数据库的高可用方面的要求,同样会重点体现在实时、稳定等方面。除此以外,MySQL数据库环境中还会存在大量外部信息源数据以及其他操作命令数据等,这些数据携带对应的时间戳存在,反映了系统一段时间内的运行情况,因此从数据库的功能角度看,必须实现有快速数据录入和数据冗余备份两个方面的功能。
不同的方案体系,在数据库的高可用性方面的表现会有所差异。就目前的情况看,双机方案下集群的构成条件方面,要求至少有一台工作站上的数据库系统保持正常状态;而对应的四机两数据节点方案则要求两个数据节点中至少有一个保持正常工作,管理节点同样至少保持一个正常运行;相比之下四机四数据节点方案下,只需要任意一个数据节点保持正常即可,管理节点同样有一台正常即可。但是四机环境之下,系统初始化构建数据库集群的效率就会相对低下,双机方案下能够实现随操作系统同步启动完成,但是对于四机环境则需要等待管理节点启动之后才能实现构建。而从稳定性方面看,尤其是在系统纳入新节点这一过程上的耗时方面,双机方案表现并不稳定,需要取决于纳入节点二进制日志增量提及,但是对于四机系统而言,通常可以在10 s之内完成,集群稳定性会更优。当面对故障的时候,数据故障点切换方面,双机方案依据地址漂移技术来予以实现,通常可以在10 s之内完成,但是四机节点时间会比较长,四机两数据节点方案下通常可以在30 s内完成,但是对于四数据节点而言,严重的时候会达到60 s上下。对于更新指令的执行效率,双机系统同样标下良好,能够实现最多7 000条/s速率,但是四机两数据节点方案下却只能处理1 500条/s,而四机四数据节点处理能力只有800条/s左右。
2 MySQL数据库HA核心技术分析
从当前MySQL数据库的高可用性方案实现以及应用特征的角度看,其核心需求体现在对于响应时间,以及故障切换能力等方面,同时对于服务本身的无缝连接,以及海量数据的存储和数据库本身的镜像机制等方面,也都必须纳入到考察的范围之内。在这样的综合考量之下,可以发现双机服务器MySQL数据库系统,以及四机服务器MySQL数据库在当前的应用环境中,分别表现出不同的工作特征,并且服务于不同的应用领域,而对应的在这样两个方面的核心技术,也成为目前该领域中的关注重点:
对于双机服务器MySQL数据库系统而言,互备份机制、地址漂移技术以及后台延时复制是其有效提升可用性的核心手段。其中互备份机制即由两台服务器组成一个体系,将数据库的服务端分别安装在两台服务器上,而客户端则通过网络展开访问。该方案之下的两台服务器分主从形式,其中主机将日志文件登记在本地,并且以增量工作方式展开对于从机的更新。但是该技术党主服务器出现故障的时候,会直接导致客户端无法获取有效服务,并且在频繁操作的情况下,可能会出现计算资源占用过大的问题。而地址漂移技术则主要用于实现面向客户的透明主备切换。由于两个服务器需要共用IP地址展开服务,因此该技术的存在实际上在于对IP地址实现协调和管理的作用。而后台延时复制技术在该体系中,则主要面向于哪些时效性要求较高的数据,展开对应服务,确保主次数据库之间的实时同步;而对于实时性要求比较弱的数据,后台进程使用mysqldump 命令定时从数据库主机上将数据导入备机。
而对于四机服务器MySQL数据库,实现其高可用性的核心技术在于MySQL Cluster,该技术是一种基于无共享的数据库集群技术,即网络节点之间不提供文件共享。实际工作中,依据不同服务可以进一步分为三个层次,即SQL访问层、数据存储层以及节点管理层,分别担负不同职责,共同实现整个系统的运行。MySQL Cluster技术在应用环境中具有良好的健康水平,一旦数据节点出现故障,服务节点仍然可以依据其他数据节点来展开对应的服务。
3 结论
对于MySQL数据库系统的HA技术而言,当前已经成为其有效展开服务的重要技术之一,并且以一种毋庸置疑的发展状态,占据了该领域中的重要位置。在实际工作中,对于大型实时控制需求,HA技术在故障切换能力、容错性能和响应时间等多个方面都表现良好,在未来必然呈现出蓬勃生命力。
[1]陈冠华.基于消息中间件的高可用MySOL集群的研究[J].华中科技大学学报(社会科学版),2012,14(08).
[2]王明宇,王波.数据库集群系统高可用性的研究与应用[J].中国人民解放军国防科技技术大学学报(社会科学版),2013,14(07).