一种数据库集群的高可用解决方法和装置制造方法

文档序号:6639986阅读:173来源:国知局
一种数据库集群的高可用解决方法和装置制造方法
【专利摘要】本发明提供了一种数据库集群的高可用解决方法和装置,属于计算机领域。该方法包括:当数据库集群的主数据库无法提供服务时,通过获取数据库集群的所有从数据库的列表,在该列表记录的所有从数据库中,筛选得到一个从数据库作为新的主数据库,将数据库集群的主数据库切换到该新的主数据库,可以在数据库集群的主数据库由于宕机等原因无法提供服务时,自动选择一个从数据库切换为新的主数据库,保证数据的全面并能让业务在极短的时间内得到恢复。
【专利说明】一种数据库集群的高可用解决方法和装置

【技术领域】
[0001]本发明涉及计算机领域,具体涉及一种数据库集群的高可用解决方法和装置。

【背景技术】
[0002]在目前,关系型数据库的应用非常广泛,例如Mysql数据库。目前,关系型数据库集群中多采用一主多从的架构。如图1所示,为一mysql数据库集群的架构示意图,其包括:主数据库master和三个从数据库,三个从数据库分别为:
[0003]Slave-K Slave-2 和 Slave3。
[0004]例如图1中所示,Slave-1和Slave-2位于机房1,Slave3位于机房2。主数据库master分别与从数据库Slave-1、Slave-2和Slave3连接。
[0005]在现实对mysql数据库的使用中,主数据库master有可能因为各种原因宕机,例如系统故障、硬件故障等,均有可能导致主数据库master宕机,从而导致整个mysql数据库集群无法使用,而现有技术中并未存在解决这一问题的有效技术手段。


【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据库集群的高可用解决方法和相应地装置。
[0007]依据本发明的一个方面,提供了一种数据库集群的高可用解决方法,所述数据库集群采用主从式结构,所述方法包括:
[0008]当所述数据库集群的主数据库无法提供服务时,获取所述数据库集群的所有从数据库的列表;
[0009]依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库;以及
[0010]将所述数据库集群的主数据库切换到所述新的主数据库。
[0011]可选地,所述列表中记录有所有从数据库对应的IP地址。
[0012]可选地,依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库的步骤进一步包括:
[0013]在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库,其中,所述从数据库具备生命力是指该从数据库能够提供数据和/或业务支持。
[0014]可选地,在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库的步骤进一步包括:
[0015]选择状态标识为alive状态的从数据库以作为新的主数据库;和/或
[0016]选择延迟事务数量小于预设数量的从数据库以作为新的主数据库。
[0017]可选地,选择状态标识为alive状态的从数据库以作为新的主数据库的步骤进一步包括:
[0018]通过对所述从数据库执行ping操作,获取所述从数据库的延迟时间;
[0019]判断所述延迟时间是否小于预设时间;
[0020]当所述延迟时间小于所述预设时间时,判断所述从数据库的状态标识为alive状态;以及
[0021 ] 选择所述从数据库以作为新的主数据库。
[0022]可选地,选择延迟事务数量小于预设数量的从数据库以作为新的主数据库的步骤进一步包括:
[0023]获取所述从数据库的信息以确定所述从数据库延迟的事务数量;
[0024]判断延迟的所述事务数量是否小于预设数量;以及
[0025]当延迟的所述事务数量小于所述预设数量时,选择所述从数据库以作为新的主数据库。
[0026]可选地,所述方法进一步包括:
[0027]在所述将所述数据库集群的主数据库切换到所述新的主数据库之前,对所述新的主数据库的数据进行补全。
[0028]可选地,所述方法进一步包括:
[0029]在所述将所述数据库集群的主数据库切换到所述新的主数据库之后,将切换后的所述新的主数据库的各项配置更新到中间层,以恢复业务。
[0030]可选地,所述数据库集群中的所有主数据库和从数据库皆开启了 gtid(globaltransact1n identifier,全局事务标不符)。
[0031]依据本发明的一个方面,还提供了一种数据库集群的高可用解决装置,所述数据库集群采用主从式结构,包括:
[0032]列表获取模块,适于当所述数据库集群的主数据库无法提供服务时,获取所述数据库集群的所有从数据库的列表;
[0033]主库筛选模块,适于依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库;
[0034]切换模块,适于将所述数据库集群的主数据库切换到所述新的主数据库。
[0035]可选地,所述列表中记录有所有从数据库对应的IP地址。
[0036]可选地,所述主库筛选模块进一步适于,在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库,其中,所述从数据库具备生命力是指该从数据库能够提供数据和/或业务支持。
[0037]可选地,所述主库筛选模块进一步适于:
[0038]选择状态标识为alive状态的从数据库以作为新的主数据库;和/或
[0039]选择延迟事务数量小于预设数量的从数据库以作为新的主数据库。
[0040]可选地,所述主库筛选模块进一步适于按照如下方式选择状态标识为alive状态的从数据库以作为新的主数据库:
[0041]通过对所述从数据库执行ping操作,获取所述从数据库的延迟时间;
[0042]判断所述延迟时间是否小于预设时间;
[0043]当所述延迟时间小于所述预设时间时,判断所述从数据库的状态标识为alive状态;以及
[0044]选择所述从数据库以作为新的主数据库。
[0045]可选地,所述主库筛选模块进一步适于按照如下方式选择延迟事务数量小于预设数量的从数据库以作为新的主数据库:
[0046]获取所述从数据库的信息以确定所述从数据库延迟的事务数量;
[0047]判断延迟的所述事务数量是否小于预设数量;以及
[0048]当延迟的所述事务数量小于所述预设数量时,选择所述从数据库以作为新的主数据库。
[0049]可选地,所述装置进一步包括:
[0050]补全模块,适于在将所述数据库集群的主数据库切换到所述新的主数据库之前,将所述新的主数据库的数据进行补全。
[0051]可选地,所述装置进一步包括:
[0052]配置模块,适于在将所述数据库集群的主数据库切换到所述新的主数据库之后,将切换后的所述新的主数据库的各项配置更新到中间层,以恢复业务。
[0053]可选地,所述数据库集群中的所有主数据库和从数据库皆开启了 gtid。
[0054]本发明提供了一种数据库集群的高可用解决方法和装置,当数据库集群的主数据库无法提供服务时,通过获取数据库集群的所有从数据库的列表,在该列表记录的所有从数据库中,筛选得到一个从数据库作为新的主数据库,将数据库集群的主数据库切换到该新的主数据库,可以在数据库集群的主数据库由于宕机等原因无法提供服务时,自动选择一个从数据库切换为新的主数据库,保证数据的全面并能让业务在极短的时间内得到恢复。
[0055]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
[0056]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

【专利附图】

【附图说明】
[0057]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0058]图1是一种现有的关系型数据库mysql数据库集群的架构示意图;
[0059]图2是本发明一个实施例提供的一种数据库集群的高可用解决方法的流程示意图;
[0060]图3是本发明一个实施例提供的一种mysql数据库集群的高可用解决方法具体流程不意图;
[0061]图4是本发明一个实施例提供的判断所有从数据库中的某一从数据库是否符合作为新的主数据库的筛选条件的方法流程示意图;
[0062]图5是本发明一个实施例提供的切换到新的主数据库的mysql数据库集群的架构示意图;
[0063]图6是本发明一个实施例提供的一种数据库集群的高可用解决装置结构示意图。

【具体实施方式】
[0064]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应该被这里阐述的实施例所限制。相反,提供这些实施例是为了能够透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0065]实施例一
[0066]本发明实施例提供了一种数据库集群的高可用解决方法,其可以实现在数据库集群中,当数据库集群中的主数据库无法提供服务时,可以立刻选择一备选从数据库作为新的主数据库,保证数据库集群的正常运行。
[0067]图2是本实施例提供的一种数据库集群的高可用解决方法的流程示意图,该方法包括步骤S202至步骤S206。
[0068]S202:当数据库集群的主数据库无法提供服务时,获取该数据库集群的所有从数据库的列表。
[0069]S204:依据预设条件,在列表记录的所有从数据库中,筛选得到一个从数据库以作为新的主数据库。
[0070]S206:将数据库集群的主数据库切换到上述新的主数据库。
[0071]本发明提供了一种数据库集群的高可用解决方法,当数据库集群的主数据库无法提供服务时,通过获取数据库集群的所有从数据库的列表,在该列表记录的所有从数据库中,筛选得到一个从数据库作为新的主数据库,将数据库集群的主数据库切换到该新的主数据库,可以在数据库集群的主数据库由于宕机等原因无法提供服务时,自动选择一个从数据库切换为新的主数据库,保证数据的全面并能让业务在极短的时间内得到恢复。
[0072]实施例二
[0073]本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
[0074]应可理解,本发明并不限定数据库的类型,只要可以应用本发明下述方案以达到高可用目的的数据库都适用于此。此外,所述连接控制装置也不限定于通过服务器来实现,本领域技术人员在阅读本发明的基础上亦可以其他方式来实施所述的连接控制装置,其皆应涵盖在本发明的范围内。
[0075]以下,将以Mysql数据为例说明本发明的技术方案:
[0076]为了能够对本发明实施例所提供的方法进行更清楚的说明,在本实施例二中,仍以【背景技术】中图1所示的mysql数据库集群为例,当前数据库集群的主数据库master由于宕机而无法提供服务,且mysql数据库集群中共包括3个从数据库为例,说明如何解决主数据库宕机时的解决方法。
[0077]如图3所示,为本发明实施例提供的一种mysql数据库集群的高可用解决方法,该方法共包括步骤S301至S305。
[0078]在步骤S301中,当Mysql数据库集群的主数据库无法提供服务时,获取当前mysql数据库中的全部从数据库,并组成列表;
[0079]其中,在本实施例中,mysql共包括三个从数据库:
[0080]Slave-K Slave-2 和 Slave-3。
[0081]因此,可以有上述三个从数据库组成mysql数据库的所有从数据库的列表,在该列表中可以使用上述三个从数据库的IP地址进行记录。
[0082]进一步地,可以将该列表中的从数据库组成一个循环,以供下面步骤中对从数据库进行筛选。
[0083]在得到所有从数据库的列表后,执行步骤S302,在列表中筛选符合新的主数据库的条件的从数据库,并将筛选得到的从数据库作为新的主数据库。
[0084]其中,可以作为新的主数据库的从数据库应符合如下预设条件:
[0085]从数据库的状态为al ive状态;
[0086]延迟事务数量小于预设数量;
[0087]开启了 gtid信息。
[0088]需要说明的是,从数据库的状态为alive状态、开启了 gtid信息为作为新的主数据库的首选条件,对于延迟事务数量的要求则可以根据具体情况进行选择。
[0089]在从数据库中进行新的主数据库的筛选时,至少可以包括如下三种方式:
[0090](I)以循环的方式依次对所有的从数据库进行判断,若得到任意一个符合作为新的主数据库的条件的从数据库,即可将该从数据库作为新的主数据库,停止对其他从数据库的判断。
[0091](2)以循环的方式依次对所有的从数据库进行判断,全部判断结束后,在符合新的主数据库的条件的从数据库中选取其中条件最好的一个从数据库作为新的主数据库。
[0092]例如,延迟时间最小、延迟事务数量最少等。
[0093](3)以循环的方式依次对所有的从数据库进行判断,全部判断结束后,在符合新的主数据库的条件的从数据库中任意选取一个从数据库作为新的主数据库。
[0094]下面对以循环的方式对所有的从数据库进行筛选的过程进行具体说明,如图4所示,提供了判断所有从数据库中的某一从数据库是否符合作为新的主数据库的筛选条件的方法流程图,包括如下步骤:
[0095]在步骤S302-1中,判断当前从数据库是否为alive状态,如果是,则执行步骤S302-2,如果不是,则当前从数据库不符合新的主数据库的筛选条件,跳转到对下一从数据库的判断。
[0096]其中,判断当前从数据库是否为alive状态的方法可以是:
[0097]对当前从数据库执行ping操作,判断其返回相应的延迟时间是否超过预设时间(例如可以是0.5ms),如果不是,则判定其为alive状态,如果是,则判断其不是alive状
--τ O
[0098]在步骤S302-2中,判断当前从数据库的gtid、binlog等信息是否开启,如果是,贝Ij执行步骤S302-3,如果不是,则当前从数据库不符合新的主数据库的筛选条件,跳转到对下一从数据库的判断。
[0099]其中,gtid在原主数据库master上的事务提交时被创建,由于gtid需要在全局的主-备拓扑结构中保持唯一性,因此通过GTID我们可以在自动切换时对一些复杂的复制拓扑很方便的提升新主数据库,例如通过指向特定的gtid来确定新备库复制坐标。
[0100]gtid—般由两部分组成:
[0101]gtid = source_id:transact1n_id
[0102]source_id用于标示源服务器,用server_uuid来表示,这个值在第一次启动时生成,并写入到mysql数据库的配置文件data/auto, cnf中;
[0103]transact1n_id则是根据在源服务器上第几个提交的事务来确定。
[0104]一般情况下,gtid被记录在mysql数据库的binlog中,它在binlog中表现的事件类型可以是:
[0105]GTID_LOG_EVENT:用于表示随后的事务的GTID ;
[0106]ANONYMOUS_GTID_LOG_EVENT:匿名 GTID 事件类型;
[0107]PREV1US_GTIDS_LOG_EVENT:用于表示当前binlog文件之前已经执行过的GTID
口 O
[0108]它一般被记录在binlog的文件头。
[0109]在进行查询时,可以通过执行check_candidate_eligibility函数来查询gtid、binlog等信息并确保其开启。
[0110]在步骤S302-3中,判断当前从数据库延迟的事务数量是否小于预设数量,如果是,则当前从数据库符合新的主数据库的筛选条件,如果不是,则当前从数据库不符合新的主数据库的筛选条件,跳转到对下一从数据库的判断。
[0111]需要说明的是,若从数据库延迟的事务数量过多,则说明其状况不好,不能用作新的主数据库,以免影响整个mysql数据库的运行效率,预设数量可以为100个。
[0112]在筛选得到新的主数据库后,执行步骤S303,对新的主数据库进行数据补全。
[0113]其中,在mysql数据库的主从结构中,要求主数据库具有整个mysql集群中最全最新的数据,而新的主数据库由从数据库中筛选得到,因此还需要将其进行数据补全,以使其具有最新最全的数据才能进行主数据库的切换。
[0114]对于新的主数据库的数据补全操作,可以按照如下方式:
[0115]将新的主数据库与其他所有从数据库进行依次的比对,若从数据库的数据较新,则将从数据库中的数据同步到新的主数据库中,直至完成对所有从数据库的比对和同步,此时可保证新的主数据库具有最新最全的数据。
[0116]在完成对新的主数据库的数据补全后,执行步骤S304,将mysql数据库的主数据库切换到新的从数据库。
[0117]其中,对于主数据库的切换,可以通过修改mysql数据库的配置文件完成。
[0118]在本实施例中,以新的主数据库为Slave-1为例,如图5所示,为切换到新的主数据库的mysql数据库集群的架构示意图,新的主数据库为Slave-1,从数据库为Slave-2和Slave_30
[0119]在完成主数据库的切换后,继而执行步骤S305,将新的主数据库的更新配置更新到中间层,以恢复业务。
[0120]本发明实施例提供了一种数据库集群的高可用解决方法,当数据库集群的主数据库无法提供服务时,通过获取数据库集群的所有从数据库的列表,在该列表记录的所有从数据库中,筛选得到一个从数据库作为新的主数据库,将数据库集群的主数据库切换到该新的主数据库,可以在数据库集群的主数据库由于宕机等原因无法提供服务时,自动选择一个从数据库切换为新的主数据库,保证数据的全面并能让业务在极短的时间内得到恢复。
[0121]实施例三
[0122]图6是本发明一个实施例提供的一种数据库集群的高可用解决装置结构框图,该数据库集群采用主从结构,该装置600包括:
[0123]列表获取模块610,适于当所述数据库集群的主数据库无法提供服务时,获取所述数据库的所有从数据库的列表;
[0124]主库筛选模块620,适于依据预设条件,在上述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库;
[0125]切换模块630,适于将该数据库集群的主数据库切换到上述新的主数据库。
[0126]可选地,上述列表中记录有所有从数据库对应的IP地址。
[0127]可选地,主库筛选模块620进一步适于,在上述列表记录的所有从数据库中,选择具备生命力的从数据库以作为新的主数据库,其中,从数据库具备生命力是指该从数据库能够提供数据和/或业务支持。
[0128]可选地,主库筛选模块620进一步适于:
[0129]选择状态标识为alive状态的从数据库以作为新的主数据库;和/或
[0130]选择延迟事务数量小于预设数量的从数据库以作为新的主数据库。
[0131]可选地,主库筛选模块620进一步适于按照如下方式选择状态标识为alive状态的从数据库以作为新的主数据库:
[0132]通过对从数据库执行ping操作,获取从数据库的延迟时间;
[0133]判断延迟时间是否小于预设时间;
[0134]当延迟时间小于预设时间时,判断从数据库的状态标识为alive状态;以及
[0135]选择该从数据库以作为新的主数据库。
[0136]可选地,主库筛选模块620进一步适于按照如下方式选择延迟事务数量小于预设数量的从数据库以作为新的主数据库:
[0137]获取从数据库的信息以确定从数据库延迟的事务数量;
[0138]判断延迟的事务数量是否小于预设数量;以及
[0139]当延迟的事务数量小于预设数量时,选择该从数据库以作为新的主数据库。
[0140]可选地,上述装置600还包括:
[0141]补全模块640,适于在将数据库集群的主数据库切换到新的主数据库之前,将该新的主数据库的数据进行补全。
[0142]可选地,上述装置600还包括:
[0143]配置模块650,适于在将数据库集群的主数据库切换到新的主数据库之后,将切换后的新的主数据库的各项配置更新到中间层,以恢复业务。
[0144]本发明实施例提供了一种数据库集群的高可用解决装置,当数据库集群的主数据库无法提供服务时,通过获取数据库集群的所有从数据库的列表,在该列表记录的所有从数据库中,筛选得到一个从数据库作为新的主数据库,将数据库集群的主数据库切换到该新的主数据库,可以在数据库集群的主数据库由于宕机等原因无法提供服务时,自动选择一个从数据库切换为新的主数据库,保证数据的全面并能让业务在极短的时间内得到恢复。
[0145]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0146]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0147]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0148]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0149]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据库集群的高可用解决装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0150]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0151]至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
[0152]本发明实施例提供了 Al.—种数据库集群的高可用解决方法,所述数据库集群采用主从式结构,所述方法包括:当所述数据库集群的主数据库无法提供服务时,获取所述数据库集群的所有从数据库的列表;依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库;以及,将所述数据库集群的主数据库切换到所述新的主数据库。A2.根据Al所述的方法,其中,所述列表中记录有所有从数据库对应的IP地址。A3.根据Al或A2所述的方法,其中,依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库的步骤进一步包括:在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库,其中,所述从数据库具备生命力是指该从数据库能够提供数据和/或业务支持。A4.根据A3所述的方法,其中,在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库的步骤进一步包括:选择状态标识为alive状态的从数据库以作为新的主数据库;和/或选择延迟事务数量小于预设数量的从数据库以作为新的主数据库。A5.根据A4所述的方法,其中,选择状态标识为alive状态的从数据库以作为新的主数据库的步骤进一步包括:通过对所述从数据库执行Ping操作,获取所述从数据库的延迟时间;判断所述延迟时间是否小于预设时间;当所述延迟时间小于所述预设时间时,判断所述从数据库的状态标识为alive状态;以及,选择所述从数据库以作为新的主数据库。A6.根据A4所述的方法,其中,选择延迟事务数量小于预设数量的从数据库以作为新的主数据库的步骤进一步包括:获取所述从数据库的信息以确定所述从数据库延迟的事务数量;判断延迟的所述事务数量是否小于预设数量;以及,当延迟的所述事务数量小于所述预设数量时,选择所述从数据库以作为新的主数据库。A7.根据Al至A6中任一项所述的方法,其中,所述方法进一步包括:在所述将所述数据库集群的主数据库切换到所述新的主数据库之前,对所述新的主数据库的数据进行补全。AS.根据Al至A7中任一项所述的方法,其中,所述方法进一步包括:在所述将所述数据库集群的主数据库切换到所述新的主数据库之后,将切换后的所述新的主数据库的各项配置更新到中间层,以恢复业务。A9.根据Al至AS中任一项所述的方法,其中,所述数据库集群中的所有主数据库和从数据库皆开启了全局事务标示符 gtid。
[0153]本发明实施例提供了 B10.—种数据库集群的高可用解决装置,所述数据库集群采用主从式结构,包括:列表获取模块,适于当所述数据库集群的主数据库无法提供服务时,获取所述数据库集群的所有从数据库的列表;主库筛选模块,适于依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库;切换模块,适于将所述数据库集群的主数据库切换到所述新的主数据库。Bll.根据BlO所述的装置,其中,所述列表中记录有所有从数据库对应的IP地址。B12.根据BlO或Bll所述的装置,其中,所述主库筛选模块进一步适于,在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库,其中,所述从数据库具备生命力是指该从数据库能够提供数据和/或业务支持。B13.根据B12所述的装置,其中,所述主库筛选模块进一步适于:选择状态标识为alive状态的从数据库以作为新的主数据库;和/或选择延迟事务数量小于预设数量的从数据库以作为新的主数据库。B14.根据B13所述的装置,其中,所述主库筛选模块进一步适于按照如下方式选择状态标识为alive状态的从数据库以作为新的主数据库:通过对所述从数据库执行Ping操作,获取所述从数据库的延迟时间;判断所述延迟时间是否小于预设时间;当所述延迟时间小于所述预设时间时,判断所述从数据库的状态标识为alive状态;以及,选择所述从数据库以作为新的主数据库。B15.根据B13所述的装置,其中,所述主库筛选模块进一步适于按照如下方式选择延迟事务数量小于预设数量的从数据库以作为新的主数据库:获取所述从数据库的信息以确定所述从数据库延迟的事务数量;判断延迟的所述事务数量是否小于预设数量;以及,当延迟的所述事务数量小于所述预设数量时,选择所述从数据库以作为新的主数据库。B16.根据BlO至B15中任一项所述的装置,其中,所述装置进一步包括:补全模块,适于在将所述数据库集群的主数据库切换到所述新的主数据库之前,将所述新的主数据库的数据进行补全。B17.根据BlO至B16中任一项所述的装置,其中,所述装置进一步包括:配置模块,适于在将所述数据库集群的主数据库切换到所述新的主数据库之后,将切换后的所述新的主数据库的各项配置更新到中间层,以恢复业务。B18.根据BlO至B17中任一项所述的装置,其中,所述数据库集群中的所有主数据库和从数据库皆开启了全局事务标示符gtid。
【权利要求】
1.一种数据库集群的高可用解决方法,所述数据库集群采用主从式结构,所述方法包括: 当所述数据库集群的主数据库无法提供服务时,获取所述数据库集群的所有从数据库的列表; 依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库;以及 将所述数据库集群的主数据库切换到所述新的主数据库。
2.根据权利要求1所述的方法,其中,所述列表中记录有所有从数据库对应的IP地址。
3.根据权利要求1或2所述的方法,其中,依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库的步骤进一步包括: 在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库,其中,所述从数据库具备生命力是指该从数据库能够提供数据和/或业务支持。
4.根据权利要求3所述的方法,其中,在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库的步骤进一步包括: 选择状态标识为alive状态的从数据库以作为新的主数据库;和/或 选择延迟事务数量小于预设数量的从数据库以作为新的主数据库。
5.根据权利要求4所述的方法,其中,选择状态标识为alive状态的从数据库以作为新的主数据库的步骤进一步包括: 通过对所述从数据库执行Ping操作,获取所述从数据库的延迟时间; 判断所述延迟时间是否小于预设时间; 当所述延迟时间小于所述预设时间时,判断所述从数据库的状态标识为alive状态;以及 选择所述从数据库以作为新的主数据库。
6.一种数据库集群的高可用解决装置,所述数据库集群采用主从式结构,包括: 列表获取模块,适于当所述数据库集群的主数据库无法提供服务时,获取所述数据库集群的所有从数据库的列表; 主库筛选模块,适于依据预设条件,在所述列表记录的所述所有从数据库中,筛选得到一个从数据库以作为新的主数据库; 切换模块,适于将所述数据库集群的主数据库切换到所述新的主数据库。
7.根据权利要求6所述的装置,其中,所述列表中记录有所有从数据库对应的IP地址。
8.根据权利要求6或7所述的装置,其中,所述主库筛选模块进一步适于,在所述列表记录的所述所有从数据库中,选择具备生命力的从数据库以作为新的主数据库,其中,所述从数据库具备生命力是指该从数据库能够提供数据和/或业务支持。
9.根据权利要求8所述的装置,其中,所述主库筛选模块进一步适于: 选择状态标识为alive状态的从数据库以作为新的主数据库;和/或 选择延迟事务数量小于预设数量的从数据库以作为新的主数据库。
10.根据权利要求9所述的装置,其中,所述主库筛选模块进一步适于按照如下方式选择状态标识为alive状态的从数据库以作为新的主数据库: 通过对所述从数据库执行Ping操作,获取所述从数据库的延迟时间; 判断所述延迟时间是否小于预设时间; 当所述延迟时间小于所述预设时间时,判断所述从数据库的状态标识为alive状态;以及 选择所述从数据库以作为新的主数据库。
【文档编号】G06F11/14GK104516966SQ201410818093
【公开日】2015年4月15日 申请日期:2014年12月24日 优先权日:2014年12月24日
【发明者】杨挺 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1