本发明涉及计算机技术,尤指一种多主数据库集群的管理方法及其装置。
背景技术:
随着科技的发展,云计算系统越来越多的应用在人们的生活中。
现有云计算系统可以通过云计算平台对各个资源进行操作,其中,云计算平台可以包括:Galera多主数据库集群。具体的,在关闭一个多主数据库集群下的多个数据库时,可以逐个的对每个数据库进行关闭,同时,根据关闭数据库的顺序生成与每个数据库对应的标识,在再次开启该云多主数据库集群时,根据该标识对每个数据库进行开启。
然而,若该多主数据库集群中各数据库同时掉电时,现有技术将无法对该多主数据库集群的数据库进行正常的启动,从而导致云平台无法正常工作。
技术实现要素:
为了解决上述技术问题,本发明提供了一种多主数据库集群的管理方法及其装置,用以解决无法准确的告警的问题。
为了达到本发明目的,本发明提供了一种多主数据库集群的管理方法,包括:
获取多主数据库集群中所有数据库的序列号,所述序列号包括关闭所述数据库时生成的标识;
根据所述序列号,确定所述序列号最大的数据库为第一数据库;
在所述第一数据库上对所述多主数据库集群中所有数据库进行开启。
进一步的,所述根据所述序列号,确定所述序列号最大的数据库为第一数据库之后,还包括:
设置所述第一数据库的安全初始化为打开。
进一步的,所述在所述第一数据库上对所述多主数据库集群中所有数据库进行开启,包括:
将所述第一数据库中存储的数据分别复制到所述多主数据库集群中的各数据库。
进一步的,所述获取多主数据库集群中所有数据库的序列号之前,还包括:
确定所述多主数据库集群无法正常工作,需要开启所述多主数据库集群;或者,
周期性的执行所述获取多主集群中所有数据库的序列号。
进一步的,所述确定所述多主数据库集群无法正常工作,需要开启所述多主数据库集群之前,还包括:
确定所述多主数据库集群中不存在mysql进程。
本发明还提供了一种多主数据库集群的管理装置,包括:
获取模块,用于获取多主数据库集群中所有数据库的序列号,所述序列号包括关闭所述数据库时生成的标识;
确定模块,用于根据所述序列号,确定所述序列号最大的数据库为第一数据库;
处理模块,用于在所述第一数据库上对所述多主数据库集群中所有数据库进行开启。
进一步的,所述处理模块,还用于设置所述第一数据库的安全初始化为打开。
进一步的,所述处理模块,用于将所述第一数据库中存储的数据分别复制到所述多主数据库集群中的各数据库。
进一步的,所述确定模块,还用于确定所述多主数据库集群无法正常工作,需要开启所述多主数据库集群;或者,周期性的执行所述获取多主集群中所有数据库的序列号。
进一步的,所述确定模块,还用于确定所述多主数据库集群中不存在mysql进程。
本发明提供的多主数据库集群的管理方法及其装置,通过获取多主数据库集群中所有数据库的序列号,所述序列号包括关闭所述数据库时生成的标识;根据所述序列号,确定所述序列号最大的数据库为第一数据库;在所述第一数据库上对所述多主数据库集群中所有数据库进行开启。实现了对多主数据库集群掉电后所有数据库的正常的启动,从而实现了云平台正常工作。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明多主数据库集群的管理方法一实施例的流程示意图;
图2为本发明多主数据库集群的管理装置一实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供的多主数据库集群的管理方法具体可以应用于多主数据库集群整体掉电时需要再次开启该多主数据库集群时。本实施例提供的多主数据库集群的管理方法可以通过多主数据库集群的管理装置来执行,该多主数据库集群的管理装置可以集成在云计算平台,或者单独设置,其中,该多主数据库集群的管理装置可以采用软件和/或硬件的方式来实现。以下对本实施例提供的多主数据库集群的管理方法及装置进行详细地说明。
图1为本发明多主数据库集群的管理方法一实施例的流程示意图;如图1所示,本实施例的执行主体可以是多主数据库集群的管理装置,本发明提供的多主数据库集群的管理方法,包括:
步骤101、获取多主数据库集群中所有数据库的序列号。
在本实施例中,所述序列号包括关闭所述数据库时生成的标识;
具体的,执行本实施例至少包括以下两种适用场景:
第一种适用场景、确定所述多主数据库集群无法正常工作,需要开启所述多主数据库集群;也就是说,确定所述多主数据库集群中不存在mysql进程时,则确定所述多主数据库集群无法正常工作,需要开启所述多主数据库集群。
第二种适用场景、周期性的执行所述获取多主集群中所有数据库的序列号。
步骤102、根据所述序列号,确定所述序列号最大的数据库为第一数据库。
具体的,首先获取多主数据库集群中各数据库的状态文件,从而确定确定所述序列号最大的数据库,例如,通过路径/var/lib/mysql/grastate.dat,确定序列号最大的数据库为第一数据库。其中,数据库的状态文件如下:
#GALERA saved state
version:2.1
通用唯一识别码uuid:5981f182-a4cc-11e6-98cc-77fabedd360d
序列号seqno:1234
安全初始化safe_to_bootstrap:0
步骤103、在所述第一数据库上对所述多主数据库集群中所有数据库进行开启。
具体的,首先确定多主数据库集群中所有数据库均处于关闭状态,在第一数据库上执行指令:/usr/bin/mysqld_safe--wsrep-new-cluster,以使在所述第一数据库上对所述多主数据库集群中所有数据库进行开启。
在本实施例中,通过获取多主数据库集群中所有数据库的序列号,所述序列号包括关闭所述数据库时生成的标识;根据所述序列号,确定所述序列号最大的数据库为第一数据库;在所述第一数据库上对所述多主数据库集群中所有数据库进行开启。实现了对多主数据库集群掉电后所有数据库的正常的启动,从而实现了云平台正常工作。
进一步的,在上述实施例的基础上,所述根据所述序列号,确定所述序列号最大的数据库为第一数据库之后,还包括:
设置所述第一数据库的安全初始化为打开。
具体的,将上述数据库的状态文件中安全初始化safe_to_bootstrap设置为1。
进一步的,在上述实施例的基础上,所述在所述第一数据库上对所述多主数据库集群中所有数据库进行开启,包括:
将所述第一数据库中存储的数据分别复制到所述多主数据库集群中的各数据库。
可选的,在上述实施例的基础上,,所述获取多主数据库集群中所有数据库的序列号之前,还包括:
确定所述多主数据库集群无法正常工作,需要开启所述多主数据库集群;或者,
周期性的执行所述获取多主集群中所有数据库的序列号。
进一步的,在上述实施例的基础上,,所述确定所述多主数据库集群无法正常工作,需要开启所述多主数据库集群之前,还包括:
确定所述多主数据库集群中不存在mysql进程。
图2为本发明多主数据库集群的管理装置一实施例的结构示意图;如图2所示,本发明提供的多主数据库集群的管理装置,包括:获取模块21、确定模块22和处理模块23,其中,
获取模块21,用于获取多主数据库集群中所有数据库的序列号,所述序列号包括关闭所述数据库时生成的标识;
确定模块22,用于根据所述序列号,确定所述序列号最大的数据库为第一数据库;
处理模块23,用于在所述第一数据库上对所述多主数据库集群中所有数据库进行开启。
在本实施例中,通过获取多主数据库集群中所有数据库的序列号,所述序列号包括关闭所述数据库时生成的标识;根据所述序列号,确定所述序列号最大的数据库为第一数据库;在所述第一数据库上对所述多主数据库集群中所有数据库进行开启。实现了对多主数据库集群掉电后所有数据库的正常的启动,从而实现了云平台正常工作。
进一步的,在上述实施例的基础上,所述处理模块23,还用于设置所述第一数据库的安全初始化为打开。
进一步的,在上述实施例的基础上,所述处理模块23,用于将所述第一数据库中存储的数据分别复制到所述多主数据库集群中的各数据库。
进一步的,在上述实施例的基础上,所述确定模块22,还用于确定所述多主数据库集群无法正常工作,需要开启所述多主数据库集群;或者,周期性的执行所述获取多主集群中所有数据库的序列号。
进一步的,在上述实施例的基础上,所述确定模块22,还用于确定所述多主数据库集群中不存在mysql进程。
在本实施例中,实现了对多主数据库集群掉电后所有数据库的正常的启动,从而实现了云平台正常工作。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。