一种基于开源技术的数据库高可用实现方法技术

技术编号:12172534 阅读:85 留言:0更新日期:2015-10-08 10:14
一种基于开源技术的数据库高可用实现方法,本发明专利技术使用关系型数据库——MySQL与非关系型数据库——Redis结合的方式,将传统数据放入MySQL中,将一部分使用频繁或者I/O量比较大的数据放入非关系型数据库Redis中,并定期将Redis内的数据转存到MySQL内。本发明专利技术的有益效果是,实现的技术均为开源技术;(2)、使用此方法实现的数据库性能强于非开源、非免费的数据库;(3)、使用该方法实现的数据库能长时间支持大数据的读写操作,数据实时性高;(4)、该方法实现的数据库规模可弹性控制,并且具有一定的容灾能力。

【技术实现步骤摘要】

本专利技术适用于云计算中的数据采集、交换等大I/O操作,属于IT数据存储

技术介绍
当前云计算已经成为一个比较热门的话题,在提交给用户良好的使用体验的背后,是维护人员的大量工作,其中就包括大量的性能数据分析(包括CPU、内存、网络、磁盘的性能)。对于规模比较大的集群来说,大量的性能数据采集到后需要及时的存放并且还要能实时的给其他业务系统使用,采用传统关系型数据库在面对这样的问题时就有些吃力,当大量采集数据写入时,业务系统获取性能数据就会变得比较缓慢;一方面,现在大多比较可靠的企业级关系型数据库都是非开源、非免费的,尤其在面对大数据需要集群化部署时更需要昂贵的费用;另一方面,作为政府企业,将大量重要的数据存放于一个非开源、自己不能完全掌握的系统内是一个很危险的行为,这将面临数据绑架或资料泄密的可能。在这样的情况下一个既开源又能满足性能需求的解决方案就变得尤其重要。
技术实现思路
本专利技术的目的正是为了克服上述现有技术存在的缺陷而提供,本专利技术所使用的技术均基于开源技术,将多种技术结合在一起既满足了开源带来的好处,也避免了各个单独技术的缺点。本专利技术本身自带负载均衡机制与容灾功能,同时整个设计内添加了内存数据库作为高速缓存部分,提升了性能的同时也加强了系统的安全性与稳定性。本专利技术是通过如下技术方案来实现的。,本专利技术特征在于,使用关系型数据库——MySQL与非关系型数据库——Redis结合的方式,将传统数据放入MySQL中,将一部分使用频繁或者I/O量比较大的数据放入非关系型数据库Redis中,并定期将Redis内的数据转存到MySQL内,使得数据能保持完整性;本方法分为三个部分:MySQL数据库、Redis数据库以及控制器部分,每个部分实现功能如下: MySQL数据库:用于存放写入量少、修改操作交少的数据,并将存放Redis数据库内定期迀移的数据和历史记录等;提供给持久化数据给应用访问; Redis数据库:存放I/O比较集中、I/O量比较大、数据频繁变动的数据;提供一段时间内的数据给应用访问; 控制器:监控MySQL与Redis每个节点的运行情况,当节点出故障时使用相应的措施使整个数据库可以被持续使用;提供一个单一的MySQL或Redis接口供外部应用访问;执行调度功能,定期迀移Redis数据到MySQL数据库内;数据节点负载均衡功能,分发请求,平衡每个数据库节点压力; 本方法实现方式为: 0.搭建MySQL数据库:使用集群化部署方案,集群内每两个MySQL作为一组,每组采用主从部署方式部署,其中一个MySQL只用于响应写入和修改操作,另外一个MySQL只用于读取操作,两个数据库之前的数据同步由主从方式自动完成,使用amoeba作为控制器,对外提供单个访问地址; 2).搭建Redis数据库:使用集群化部署方案,集群内每两个Redis为一组,每组采用主从化部署方式,其中一个Redis用于响应写入操作,另外一个Redis用于响应查询操作;两个Redis之间使用Redis自带同步机制同步数据,使用自主研发的Redis作为控制器,对外提供单个访问地址; 3).编写控制器:本专利技术使用java作为开发语言,实现实时监控MySQL和Redis的每个节点情况,并执行从Redis转存数据到MySQL的操作。具体行为过程为:每隔一段时间给MySQL和Redis的每个节点发送心跳包,当发现其中的主节点(响应写入操作的节点)断线时,自动将该组的从节点转换为主节点继续工作,当原主节点恢复后,将原主节点转为从节点工作,当从节点掉线时,将读取操作也分配到主节点上,当从节点恢复后将读取的操作还原回原来的从节点上;在控制器内设定定时器,定时执行操作将数据从Redis内转移到MySQL数据库内;提供Redis和MySQL的对外接口 ;编写负载均衡机制,实现分配任务均衡数据库节点压力。4).将搭建好的MySQL访问地址、Redis访问地址、控制器的对外访问接口提供给应用来访问数据。本方法的操作步骤为: 1)、启动数据库实例与数据库管理软件,启动数据库负载均衡、读写分离控制器; 2)、启动作为大容量、高速的缓存,启动缓存负载均衡、读写分离控制器; 3)、启动数据库控制器; 4)、启动应用实例; 5)、当有大量数据操作时,根据数据变动类型将读写量大或变动频繁的数据先写入缓存写入部分,读写相对少并且变动不频繁的数据写入数据库写入部分; 6)、应用实例或其他功能读取数据时直接读取缓存读取部分、数据库读取部分(由控制器实现); 7)、当规模比较小时:如果缓存写入部分出现故障,控制器自动将读取部分转换为写入、读取部分,不影响应用正常使用;当数据库读、写部分出现故障时,控制器自动切换功能,不影响应用使用;当规模相对较大时,部分节点故障并不影响应用的使用。本专利技术的有益效果是,实现的技术均为开源技术;(2)、使用此方法实现的数据库性能强于非开源、非免费的数据库;(3)、使用该方法实现的数据库能长时间支持大数据的读写操作,数据实时性高;(4)、该方法实现的数据库规模可弹性控制,并且具有一定的容灾能力。【附图说明】图1为本专利技术架构示意图。【具体实施方式】,本专利技术特征在于,使用关系型数据库——MySQL与非关系型数据库——Redis结合的方式,将传统数据放入MySQL中,将一部分使用频繁或者I/O量比较大的数据放入非关系型数据库Redis中,并定期将Redis内的数据转存到MySQL内,使得数据能保持完整性;本方法分为三个部分:MySQL数据库、Redis数据库以及控制器部分,每个部分实现功能如下: MySQL数据库:用于存放写入量少、修改操作交少的数据,并将存放Redis数据库内定期迀移的数据和历史记录等;提供给持久化数据给应用访问; Redis数据库:存放I/O比较集中、I/O量比较大、数据频繁变动的数据;提供一段时间内的数据给应用访问; 控制器:监控MySQL与Redis每个节点的运行情况,当节点出故障时使用相应的措施使整个数据库可以被持续使用;提供一个单一的MySQL或Redis接口供外部应用访问;执行调度功能,定期迀移Redis数据到MySQL数据库内;数据节点负载均衡功能,分发请求,平衡每个数据库节点压力; 本方法实现方式为: 0.搭建MySQL数据库:使用集群化部署方案,集群内每两个MySQL作为一组,每组采用主从部署方式部署,其中一个MySQL只用于响应写入和修改操作,另外一个MySQL只用于读取操作,两个数据库之前的数据同步由主从方式自动完成,使用amoeba作为控制器,对外提供单个访问地址; 2).搭建Redis数据库:使用集群化部署方案,集群内每两个Redis为一组,每组采用主从化部署方式,其中一个Redis用于响应写入操作,另外一个Redis用于响应查询操作;两个Redis之间使用Redis自带同步机制同步数据,使用自主研发的Redis作为控制器,对外提供单个访问地址; 3).编写控制器:本专利技术使用java作为开发语言,实现实时监控MySQL和Redis的每个节点情况,并执行从Redis转存数据到MySQL的操作。具体行为过程为:每隔一段时间给MySQL和Redis的每个节点发本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/CN104965850.html" title="一种基于开源技术的数据库高可用实现方法原文来自X技术">基于开源技术的数据库高可用实现方法</a>

【技术保护点】
一种基于开源技术的数据库高可用实现方法,其特征在于,使用关系型数据库——MySQL与非关系型数据库——Redis结合的方式,将传统数据放入MySQL中 ,将一部分使用频繁或者I/O量比较大的数据放入非关系型数据库Redis中,并定期将Redis内的数据转存到MySQL内,使得数据能保持完整性;本方法分为三个部分:MySQL数据库、Redis数据库以及控制器部分,每个部分实现功能如下:MySQL数据库:用于存放写入量少、修改操作交少的数据,并将存放Redis数据库内定期迁移的数据和历史记录等;提供给持久化数据给应用访问;Redis数据库:存放I/O比较集中、I/O量比较大、数据频繁变动的数据;提供一段时间内的数据给应用访问;控制器:监控MySQL与Redis每个节点的运行情况,当节点出故障时使用相应的措施使整个数据库可以被持续使用;提供一个单一的MySQL或Redis接口供外部应用访问;执行调度功能,定期迁移Redis数据到MySQL数据库内;数据节点负载均衡功能,分发请求,平衡每个数据库节点压力; 本方法实现方式为:1).搭建MySQL数据库:使用集群化部署方案,集群内每两个MySQL作为一组,每组采用主从部署方式部署,其中一个MySQL只用于响应写入和修改操作,另外一个MySQL只用于读取操作,两个数据库之前的数据同步由主从方式自动完成,使用amoeba作为控制器,对外提供单个访问地址;2).搭建Redis数据库:使用集群化部署方案,集群内每两个Redis为一组,每组采用主从化部署方式,其中一个Redis用于响应写入操作,另外一个Redis用于响应查询操作;两个Redis之间使用Redis自带同步机制同步数据,使用自主研发的Redis作为控制器,对外提供单个访问地址;3).编写控制器:本专利技术使用java作为开发语言,实现实时监控MySQL和Redis的每个节点情况,并执行从Redis转存数据到MySQL的操作;具体行为过程为:每隔一段时间给MySQL和Redis的每个节点发送心跳包,当发现其中的主节点(响应写入操作的节点)断线时,自动将该组的从节点转换为主节点继续工作,当原主节点恢复后,将原主节点转为从节点工作,当从节点掉线时,将读取操作也分配到主节点上,当从节点恢复后将读取的操作还原回原来的从节点上;在控制器内设定定时器,定时执行操作将数据从Redis内转移到MySQL数据库内;提供Redis和MySQL的对外接口;编写负载均衡机制,实现分配任务均衡数据库节点压力;4).将搭建好的MySQL访问地址、Redis访问地址、控制器的对外访问接口提供给应用来访问数据; 本方法的操作步骤为:1)、启动数据库实例与数据库管理软件, 启动数据库负载均衡、读写分离控制器;2)、启动作为大容量、高速的缓存,启动缓存负载均衡、读写分离控制器;3)、启动数据库控制器;4)、启动应用实例;5)、当有大量数据操作时,根据数据变动类型将读写量大或变动频繁的数据先写入缓存写入部分,读写相对少并且变动不频繁的数据写入数据库写入部分;6)、应用实例或其他功能读取数据时直接读取缓存读取部分、数据库读取部分(由控制器实现);7)、当规模比较小时:如果缓存写入部分出现故障,控制器自动将读取部分转换为写入、读取部分,不影响应用正常使用;当数据库读、写部分出现故障时,控制器自动切换功能,不影响应用使用;当规模相对较大时,部分节点故障并不影响应用的使用。...

【技术特征摘要】

【专利技术属性】
技术研发人员:黄文载普钢钱福健胡永华张羿张富华宋涛陈亚立张天雄
申请(专利权)人:云南电网有限责任公司云南云电同方科技有限公司
类型:发明
国别省市:云南;53

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1