数据库的故障处理方法、装置和数据库系统的制作方法

文档序号:8543754阅读:566来源:国知局
数据库的故障处理方法、装置和数据库系统的制作方法
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种数据库的故障处理方法、装置和数据库系统。
【背景技术】
[0002]Redis是一种内存型数据库,其特点是读取、写入速度快,是一种由开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。Redis支持主从同步。
[0003]Redis数据库支持主从式架构,可以从主数据库向任意数量的从数据库同步数据。在Redis数据库的运行过程中,主数据库发生故障时,为了保证Redis数据库的正常运行,会从当前的从数据库中选择一个从数据库作为新的主数据库。
[0004]但是,在现有技术中,Redis数据库在从数据库中选择新的主数据库时,是通过随机选择的方式进行选择。这样的缺陷是,在每个从数据库的实例具有差别,若选择到了一个业务承载能力较差的服务器上的从数据库作为新的主数据库,会影响Redis数据库的运行效率和服务提供品质。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据库的故障处理方法、相应的装置和数据库系统。
[0006]依据本发明的一个方面,提供一种数据库的故障处理方法,应用于具备主从结构的数据库集群,包括:
[0007]检测到内存访问的主数据库发生故障时,收集所述主数据库对应的至少一个从数据库所在服务器的使用状态信息;
[0008]对各从数据库所在服务器的使用状态信息进行分析,确定出各从数据库所在服务器的可用业务承载能力;
[0009]对各从数据库所在服务器的可用业务承载能力进行比较,选择出其中可用业务承载能力最大的服务器对应的从数据库;以及
[0010]使用选择出的从数据库替换发生故障的主数据库,以作为新的主数据库。
[0011]可选地,所述使用选择出的从数据库替换发生故障的主数据库,以作为新的主数据库之后,还包括:将所述新的主数据库中的数据同步至剩余的其他从数据库中。
[0012]可选地,将所述新的主数据库中的数据同步至剩余的其他从数据库中,包括:
[0013]确定所述新的主数据库中存储的数据量,以及所述新的主数据库与剩余的其他从数据库间的网络状态;
[0014]根据所述新的主数据库的数据量,以及所述网络状态,确定每次可挂载的从数据库的数量;以及
[0015]根据确定的从数据库的数量,分批次实现所述新的主数据库到剩余的其他从数据库的数据同步。
[0016]可选地,所述网络状态至少包括网卡的数据传输速率。
[0017]可选地,根据所述新的主数据库的数据量,以及所述网络状态,确定每次可挂载的从数据库的数量,包括:
[0018]利用所述新的主数据库的数据量除以所述网卡的数据传输速率,得到所述新的主数据库的数据量同步一次的所需时间;
[0019]根据所述新的主数据库数据同步至所有从数据库的时间限制以及上述所需时间,确定完成所有同步操作所需同步总次数;以及
[0020]根据所述同步总次数对所有从数据库进行分批处理,确定每次可挂载的从数据库的数量。
[0021]可选地,所述从数据库所在服务器的使用状态信息包括以下参数至少之一:
[0022]从数据库所在服务器的当前负载;
[0023]从数据库所在服务器的内存剩余量;
[0024]从数据库所在服务器上的业务数;
[0025]从数据库所在服务器上不同业务的互相影响性;
[0026]从数据库所在服务器支持的数据读写速率;以及
[0027]从数据库所在服务器支持的网卡数据传输速率。
[0028]可选地,所述对各从数据库所在服务器的使用状态信息进行分析,确定出各从数据库所在服务器的可用业务承载能力,包括:
[0029]为所述使用状态信息中的各参数设置不同权值以及权值比重;
[0030]计算得到各从数据库所在服务器的使用状态信息中各参数的权值总值,将其作为各从数据库所在服务器的可用业务承载能力指标。
[0031]可选地,对各从数据库所在服务器的可用业务承载能力进行比较,选择出其中可用业务承载能力最大的服务器对应的从数据库,包括:比较各从数据库所在服务器的使用状态信息中各参数的权值总和,选择出其中最大权值总和对应的从数据库。
[0032]可选地,所述主数据库和从数据库皆为内存型数据库。
[0033]可选地,所述主数据库和从数据库皆为Redis数据库。
[0034]依据本发明的另一个方面,提供一种数据库的故障处理装置,应用于具有主从结构的数据库集群,包括:
[0035]信息收集模块,适于检测到主数据库发生故障时,收集所述主数据库对应的至少一个从数据库所在服务器的使用状态信息;
[0036]信息分析模块,适于对各从数据库所在服务器的使用状态信息进行分析,确定出各从数据库所在服务器的可用业务承载能力;
[0037]从数据库选择模块,适于对各从数据库所在服务器的可用业务承载能力进行比较,选择出其中可用业务承载能力最大的服务器对应的从数据库;
[0038]替换模块,适于使用选择出的从数据库替换发生故障的主数据库,以作为新的主数据库。
[0039]可选地,上述装置还包括:
[0040]数据同步模块,适于将所述新的主数据库中的数据同步至剩余的其他从数据库中。
[0041]可选地,所述数据同步模块还适于:
[0042]确定所述新的主数据库中存储的数据量,以及所述新的主数据库与剩余的其他从数据库间的网络状态;
[0043]根据所述新的主数据库的数据量,以及所述网络状态,确定每次可挂载的从数据库的数量;以及
[0044]根据确定的从数据库的数量,分批次实现所述新的主数据库到剩余的其他从数据库的数据同步。
[0045]可选地,所述网络状态至少包括网卡的数据传输速率。
[0046]可选地,所述数据同步模块还适于:
[0047]利用所述新的主数据库的数据量除以所述网卡的数据传输速率,得到所述新的主数据库的数据量同步一次的所需时间;
[0048]根据所述新的主数据库数据同步至所有从数据库的时间限制以及上述所需时间,确定完成所有同步操作所需同步总次数;以及
[0049]根据所述同步总次数对所有从数据库进行分批处理,确定每次可挂载的从数据库的数量。
[0050]可选地,所述从数据库所在服务器的使用状态信息包括以下参数至少之一:
[0051]从数据库所在服务器的当前负载;
[0052]从数据库所在服务器的内存剩余量;
[0053]从数据库所在服务器上的业务数;
[0054]从数据库所在服务器上不同业务的互相影响性;
[0055]从数据库所在服务器支持的数据读写速率;以及
[0056]从数据库所在服务器支持的网卡数据传输速率。
[0057]可选地,所述信息分析模块还适于:
[0058]为所述使用状态信息中的各参数设置不同权值以及权值比重;
[0059]计算得到各从数据库所在服务器的使用状态信息中各参数的权值总值,将其作为各从数据库所在服务器的可用业务承载能力指标。
[0060]可选地,所述信息分析模块还适于:
[0061]比较各从数据库所在服务器的使用状态信息中各参数的权值总和,选择出其中最大权值总和对应的从数据库。
[0062]可选地,所述主数据库和从数据库皆为内存型数据库。
[0063]可选地,所述主数据库和从数据库皆为Redis数据库。
[0064]依据本发明的又一个方面,提供一种数据库系统,包括一个主数据库,多个从数据库,还包括:上述的任一种数据库的故障处理装置。
[0065]本发明实施例提供了一种数据库的故障处理方法、装置和系统,通过在主数据库发生故障时,收集其从数据库所在服务器的使用状态信息,并通过使用状态信息确定各个从数据库的所在服务器的可用业务承载能力,选择其中可用业务承载能力最好的服务器对应的从数据库作为新的主数据库。通过本发明实施例所提供的方法,当主数据库发生故障无法提供服务时,可以选择业务承载能力最好的服务器上的从数据库作为新的主数据库,从而避免了由于新的主数据库选择不当造成服务中断或者运行效率低下的问题。
[0066]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
[0067]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
【附图说明】
[0068]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0069]图1是本发明一个实施例提供的一种数据库的故障处理方法流程图;
[0070]图2是本发明一个实施例提供的一种Redis数据库的架构示意图;
[0071]图3是本发明一个实施例提供的一种数据库的故障处理具体方法流程图;
[0072]图4是本发明一个实施例提供的一种切换主数据库后的Redis数据库的架构示意图;
[0073]图5是本发明一个实施例提供的一种数据库的故障处理装置的结构框图。
【具体实施方式】
[0074]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1