CN116204590A - 数据库集群的数据处理方法、可读存储介质与计算机设备 - Google Patents
数据库集群的数据处理方法、可读存储介质与计算机设备 Download PDFInfo
- Publication number
- CN116204590A CN116204590A CN202310215372.5A CN202310215372A CN116204590A CN 116204590 A CN116204590 A CN 116204590A CN 202310215372 A CN202310215372 A CN 202310215372A CN 116204590 A CN116204590 A CN 116204590A
- Authority
- CN
- China
- Prior art keywords
- meta
- node
- information storage
- master node
- master
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种数据库集群的数据处理方法、可读存储介质与计算机,其中数据处理方法包括:获取所述数据库集群中的元信息存储节点,其中所述元信息存储节点相对于对应的数据库服务节点独立运行,并且各所述元信息存储节点之间通讯连接;根据第一预设规则,从各所述元信息存储节点中选出主节点和非主节点,其中所述主节点用以处理元信息处理请求并生成操作命令,所述非主节点用以接收所述操作命令并向所述主节点反馈执行结果;响应于所述非主节点收到所述操作命令且执行结果不满足第二预设规则,所述主节点回退所述元信息处理请求。本发明的技术方案,能够解决现有技术中因数据库节点故障引起的集群元信息无法同步更新的问题。
Description
技术领域
本发明涉及数据库集群技术领域,特别是涉及一种数据库集群的数据库处理方法、可读存储介质与计算机设备。
背景技术
在使用数据库集群时,需要存储数据库集群的元信息,并且在数据库集群中的数据库节点故障时,需要根据存储的元信息进行主备切换,以及在切换完成后还需要更新数据库集群的元信息。数据库集群的元信息一般使用数据库本身进行存储,即数据库集群中的每个数据库节点的数据库中都会有一张数据库表用来存放元信息。
当有数据库节点的数据库故障时,该故障的数据库节点中存储的元信息将无法更新,而且当故障的数据库节点经过主备切换并重新进入工作状态时,其存储的元信息将与其他数据库节点的元信息不一致,导致数据库集群的状态出现异常。
发明内容
本发明提供了一种数据库集群的数据处理方法、可读存储介质与计算机,能够解决现有技术中因数据库节点故障引起的集群元信息无法同步更新的问题,达到提高数据库集群可靠性的目的。
为至少解决上述技术问题,本发明一方面提供了一种数据库集群的数据处理方法,包括:
获取所述数据库集群中的元信息存储节点,其中所述元信息存储节点相对于对应的数据库服务节点独立运行,并且各所述元信息存储节点之间通讯连接;
根据第一预设规则,从各所述元信息存储节点中选出主节点和非主节点,其中所述主节点用以处理元信息处理请求并生成操作命令,所述非主节点用以接收所述操作命令并向所述主节点反馈执行结果;
响应于所述非主节点收到所述操作命令且执行结果不满足第二预设规则,所述主节点回退所述元信息处理请求。
根据本发明的一个实施例,所述的执行结果不满足第二预设规则,包括:
在设定时间内执行失败的非主节点数量不小于第一设定值;或者
在设定时间内执行成功的非主节点数量不大于第二设定值;
其中,所述第一设定值和所述第二设定值根据所述非主节点的总数量确定。
根据本发明的一个实施例,所述数据处理方法还包括:
响应于所述主节点接收到所述元信息处理请求,所述主节点生成相应的数据更新命令和数据回退命令,并将所述数据更新命令和所述数据回退命令同时发送给各所述非主节点;以及
响应于所述非主节点同时接收到所述数据更新命令和所述数据回退命令,所述非主节点将所述数据更新命令和所述数据回退命令存储。
根据本发明的一个实施例,所述数据处理方法还包括:
响应于所述非主节点接收到请求方的元信息处理请求,所述非主节点将所述元信息处理请求转发给所述主节点;以及
所述主节点对所述元信息处理请求进行处理后,将处理结果通过所述非主节点转发给所述请求方。
根据本发明的一个实施例,所述的根据第一预设规则,从各所述元信息存储节点中选出主节点和非主节点,包括:
响应于判断其中一个元信息存储节点的数据为最新数据的所述元信息存储节点的数量最多,将该元信息存储节点作为所述主节点,其他元信息存储节点作为所述非主节点。
根据本发明的一个实施例,所述数据处理方法还包括:
响应于多个元信息存储节点符合所述预设规则,根据多个所述元信息存储节点的标识确定所述主节点。
根据本发明的一个实施例,各所述元信息存储节点之间通讯连接以形成节点组,并且所述数据处理方法还包括:
响应于在前的所述节点组中新增元信息存储节点以形成新节点组,判断在前的所述节点组中是否存在所述主节点;
若是,则所述主节点对新增的所述元信息存储节点的集群元信息进行更新;
若否,则根据所述第一预设规则,从所述新节点组中选择出主节点,并由所述主节点对所述新节点组中的非主节点的集群元信息进行更新。
根据本发明的一个实施例,各所述元信息存储节点之间通讯连接以形成节点组,并且所述数据处理方法还包括:
响应于在前的所述节点组中有所述元信息存储节点退出以形成新节点组,判断退出的所述元信息存储节点是否为或是否其中一个为所述主节点;
若是,则根据所述第一预设规则,从所述新节点组中选择出新的主节点;
若否,响应于在前的所述节点组中所述主节点在所述新节点组中不满足所述第一预设规则,从所述新节点组中选择出新的主节点。
另一方面,本发明还提供了一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据上述任意一项实施例所述的数据处理方法。
又一方面,本发明还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据上述任意一项实施例所述的数据处理方法。
本发明所提供的技术方案,在数据库集群中设置有元信息存储节点,并且元信息存储节点相对于对应的数据库服务节点独立运行,从而将元信息的存储与数据库服务解耦,即使有数据库服务节点出现异常,也不影响对应元信息存储节点上集群元信息的同步更新,从而提高数据库集群的集群元信息更新的可靠性。并且本发明的技术方案还在数据库集群中设置有确认机制和回退机制,当非主节点的执行结果不满足第二预设规则时,可以认为数据非主节点执行操作命令失败,此时主节点回退元信息处理请求,以避免各元信息存储节点所存储的集群元信息不一致,从而进一步提高数据库集群的可靠性。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的数据库集群的数据处理方法的流程图;
图2是根据本发明一个实施例的从各元信息存储节点中选择出主节点和非主节点的流程图;
图3是根据本发明一个实施例的从多个满足上述第一预设规则的元信息存储节点中选择出主节点的流程图;
图4是根据本发明一个实施例的当有元信息存储节点加入节点组时的处理方法的流程示意图;
图5是根据本发明一个实施例的当有元信息存储节点退出节点组时的处理方法的流程示意图;
图6是根据本发明一个实施例的机器可读存储介质的示意图;以及
图7是根据本发明一个实施例的计算机设备的示意图。
具体实施方式
本实施例所提供的一种数据库集群的数据处理方法的流程如图1所示,该处理方法不仅将数据库集群的集群元信息存储与数据库服务解耦,而且在增加了确认机制和回退机制,以使数据库集群的集群元信息能够保持同步更新,达到提高数据库集群的可靠性。下面结合图1所示出的流程,对本申请的数据处理方法做详细的阐述。
如图1所示,本申请的数据库集群的数据处理方法包括如下步骤:
步骤S1:获取数据库集群的元信息存储节点。
在本实施例中,数据库集群具有多个元信息存储节点和多个数据库服务节点,其中各元信息存储节点用于存储集群元信息,各数据库服务节点用于存储数据以提供数据服务,即集群元信息不再存储在数据库中,从而将集群元信息的存储与数据库服务解耦。
元信息存储节点相对于对应的数据库服务节点独立运行,并且各元信息存储节点之间通讯连接以进行信息交互,其中上述独立运行是指逻辑上的独立运行,可以在现有的数据库集群中数据库节点的基础上,由数据库节点运行如kbha等守护进程,将数据库集群的元信息存储在数据库以外的存储空间,以形成元信息存储节点,也可以设置分别与各数据服务节点相对应的计算机设备作为元信息存储节点。
由于各元信息存储节点上运行相应的kbha进程,并且各kbha进程之间相互发送心跳报文,因此本实施例中可以通过获取数据库集群中的kbha进程的心跳报文,得到数据库集群的元信息存储节点。
步骤S2:根据第一预设规则,从上述各元信息存储节点中选出主节点和非主节点。
由于数据库集群中的元信息存储节点采用去中心化的分布式设置,因此在本步骤S2中,各元信息存储节点执行相同的选取方法,根据第一预设规则从各元信息存储节点中选取主节点和非主节点。
以其中一个元信息存储节点执行上述选取方法选取上述主节点为例进行说明,该元信息存储节点首先获取其他元信息存储节点的数据信息,在加上其自身的数据信息,可以得到其他所有元信息存储节点的数据信息;然后根据各元信息存储节点的数据信息,判断出符合上述第一预设规则的元信息存储节点,并将该元信息存储节点作为主节点,并将除该主节点外的其他元信息存储节点作为非主节点。
步骤S3:当主节点接收到请求方的元信息处理请求时,根据该元信息处理请求生成相应的操作命令,并将该操作命令发送给各非主节点。
本实施例中,主节点所接收到的元信息处理请求,可以是请求方直接向主节点所发送的元信息处理请求,也可以是由非主节点转发的请求方的元信息处理请求。当主节点接收到元信息处理请求时,首先识别出该元信息处理请求是要对集群元信息的处理方式,例如是向集群元信息中添加数据,还是删除集群元信息中的数据,或者是修改集群元信息中的数据等;然后根据识别出的处理方式生成相应的操作命令,并发送给各非主节点。
主节点接收到请求方的元信息处理请求后,根据该元信息处理请求将新数据写入磁盘,并生成对应的操作命令发送给各非主节点,以便于各非主节点执行相应的操作。
步骤S4:当非主节点接收到主节点所发出的操作命令后,根据该操作命令执行相应的操作,并将操作结果反馈给主节点。
例如,当操作命令是向集群元信息中添加数据、删除集群元信息中的数据或者是修改集群元信息中的数据时,非主节点根据操作命令执行相应的操作;上述执行结果包括所执行的操作是否成功,如果成功则向主节点发送执行成功的信息,如果不成功则向主节点发送执行失败的信息。
步骤S5:主节点判断各非主节点的执行结果是否满足第二预设规则,若否,则回退上述元信息处理请求。
在本实施例中,如果各非主节点的执行结果不满足上述第二预设条件,则可以判断为本次元信息处理请求的处理失败,因此需要回退本次元信息处理请求,以使各元信息存储节点上的集群元信息保持一致。
在本实施例中,主节点回退上述元信息处理请求包括向请求方发送元信息处理请求失败的信息和向非主节点发送数据回退信息,其中向请求方发送元信息处理请求失败的信息,可以使请求方得知本次元信息处理请求失败,以便于请求方采取相应的措施。向非主节点发送数据回退信息后,可以使非主节点得知本次元信息处理请求失败,为了使各元信息存储节点的集群元信息保持一致,在非主节点接收到回退信息后,将根据操作命令所执行的操作回退,使非主节点的集群元信息恢复到执行操作命令之前。
综上所述,本发明的技术方案,在数据库集群中设置有元信息存储节点,并且元信息存储节点相对于对应的数据库服务节点独立运行,从而将元信息的存储与数据库服务解耦,即使有数据库服务节点出现异常,也不影响对应元信息存储节点上集群元信息的同步更新,从而提高数据库集群的集群元信息更新的可靠性。并且本发明的技术方案还在数据库集群中设置有确认机制和回退机制,当非主节点的执行结果不满足第二预设规则时,可以认为数据非主节点执行操作命令失败,此时主节点回退元信息处理请求,以避免各元信息存储节点所存储的集群元信息不一致,从而进一步提高数据库集群的可靠性。
下面结合具体应用场景,对上述步骤S5中主节点判断各非主节点的执行结果是否满足第二预设规则的方法做详细的介绍,可以理解的是,下文中所介绍的判断方法是示例性的而非限制性的。
在一个实施例中,上述步骤S5中主节点判断各非主节点的执行结果是否满足第二预设规则的方法包括:
在设定时间内,如果主节点接收到执行失败的非主节点的数量,或者主节点接收到执行成功的非主节点的数量不大于第二设定值时,本则判断为各非主节点的执行结果不满足第二预设规则。
本实施例的判断各非主节点的执行结果是否满足第二预设规则的方法可以通过如下方式实现:
当主节点向各非主节点发送数据操作命令后开始计时,如果该计时的时长还没有达到设定时长时,所接收到的执行失败的非主节点的数量达到第一设定值,或者在计时的时长达到设定时长时,所接收到的执行失败的非主节点数的数量大于第一设定值,则判断为本次数据更新失败,否则判断为各非主节点的执行结果不满足第二预设规则。
或者,当主节点向各非主节点发送执行命令后开始计时,如果该计时的时长达到设定时长时,但是所接收到的执行成功的非主节点的数量小于第二设定值,则判断各非主节点的执行结果不满足第二预设规则。
需要说明的是,上述第一设定值和第二设定值可以根据非主节点的总数量确定,例如,第一设定值和第二设定值可以均为非主集群节点的总数量的一半,即当设定时间内有半数以上的非主节点执行失败时,或者只有半数以下的非主节点执行成功时,判断为各非主节点的执行结果不满足第二预设规则。
本实施例的设置方式,主节点只需获取设定时间内的非主节点的执行结果,即可判断出本次各非主节点的执行结果是否满足第二预设规则,由于不需要获取全部非主节点的更新结果,因此可以减少判断所需要的时间,提高判断的工作效率。
在一个实施例中,本申请的数据处理方法还包括:
当主节点接收到元信息处理请求后,主节点根据该元信息处理请求生成相应的数据更新命令和数据回退命令,以及将该数据更新命令和数据回退命令存储在主集点的磁盘中以进行存储;然后主节点将其生成的数据更新命令和数据回退命令同时发送给各非主节点。
当非主节点同时接收到主节点所发送的数据更新命令和数据回退命令时,将所接收到的数据更新命令和数据回退命令存储在对应的磁盘中以进行存储。
需要注意的是,本实施例中非主节点同时接收到所述数据更新命令和数据回退命令,与只接收到数据更新命令或者只接收到数据回退命令不同,当同时接收到数据更新命令和数据回退命令时,只将该数据更新命令和数据回退命令存储,而不做其他方式的处理。
在本实施例中,数据更新命令即为上述步骤S3中主节点根据元信息处理请求所生成的操作命令,非主节点在将所接收到的数据更新命令和数据回退命令存储后,如果非主节点再次只接收到数据更新命令,则判断所接收到的数据更新命令与所存储的数据更新命令是否一致,如果一致则根据该数据更新命令执行相应的操作;相应地,如果非主节点再次只接收到数据回退命令,则判断所接收到的数据回退命令与所存储的数据回退命令是否一致,如果一致则根据该数据回退命令进行数据回退。
本实施例的设置方式,主节点每接收到一次数据处理请求,就会生成一次对应的数据更新命令和数据回退命令,并根据所生成的数据更新命令进行数据更新和数据回退。在每次数据处理时,使非主节点能够在根据元信息处理请求执行相应的操作和数据回退,从而提高非主节点数据更新和数据回退的可靠性,从而避免在同时执行多个元信息处理请求时出现混乱,达到提高处理元信息处理请求的可靠性的目的。
在一个实施例中,本申请的数据处理方法还包括:
当非主节点接收到请求方的元信息处理请求时,该非主节点将元信息请求转发给主节点;并且主节点在对元信息处理请求进行处理后,将处理结果通过该主节点转发给请求方。
其中,当对元信息处理请求处理成功后,主节点向上述非主节点发送处理成功的信息,然后由该非主节点将该处理成功的信息转发给请求方;当对元信息护理请求处理失败时,可以由主节点向上述非主节点发送处理失败的信息,然后由该非主节点将该处理失败的信息转发给请求方,也可以当该非主节点接收到主节点所发送的数据回退命令后,由该非主节点向请求方发送处理失败的信息。
通过本实施例的设置方式,可以实现只有主节点响应请求方的元信息处理请求,并且由对应的非主节点向请求方发送处理结果,以提高对请求方的元信息处理请求处理的可靠性。
下面结合具体应用场景,对上述步骤S2中根据第一预设规则,从各所述元信息存储节点中选出主节点和非主节点的方法做相应的介绍,可以理解的是,以下所示出的方法是示例性的而非限制性的。
在一个实施例中,上述第一预设规则包括多数派原则和数据最新原则,由于各元信息存储节点成分布式设置,因此各元信息存储节点分别执行相同的方法,以从各元信息存储节点中选择出主节点和非主节点。
以其中一个元信息存储节点为例,其执行的从各元信息存储节点中选择出主节点和非主节点的流程如图2所示,包括如下步骤:
步骤S201:获取其他元信息存储节点的数据信息,并根据各元信息存储节点的数据信息,从所有的元信息存储节点中选择出数据最新的元信息存储节点,然后将判断结果发送给其他元信息存储节点。
上述各元信息存储节点的数据信息,包括对应元信息存储节点的数据更新时间,并且数据更新时间越晚,对应元信息存储节点的数据最新。各元信息存储节点将其自身的数据信息共享给其他元信息存储节点,从而使各元信息存储节点均能够获取其它元信息存储节点的数据信息。
各元信息存储节点获取到其他元信息存储节点的数据信息后,可以分别根据各元信息存储节点的数据信息,判断出数据最新的元信息存储节点,然后将判断结果发送给其它元信息存储节点,从而使各元信息存储节点都得到所有元信息存储节点的判断结果。
步骤S202:对各种判断结果的数量进行统计,得到其中数量最多的判断结果所对应的元信息存储节点,并将该元信息存储节点作为主节点,将其他元信息存储节点作为非主节点。
本实施例的设置方式,将多数派原则和数据最新原则作为第一预设规则,从各元信息存储节点中选择出主节点,以提高获取主节点的可靠性。
在一个实施例中,上述步骤S2中在选择主节点时,如果有多个元信息存储节点满足上述第一预设规则,则通过图3所示出的方法,从满足第一预设规则的多个元信息存储节点中选择出主节点。
如图3所示,从多个满足上述第一预设规则的元信息存储节点中选择出主节点的方法包括如下步骤:
步骤S211:获取满足上述第一预设规则的多个元信息存储节点的标识。
例如,每个元信息存储节点均设置有相应的id码,在本步骤S211中,可以将各元信息存储节点的id码作为对应元信息存储节点的标识。在满足上述第一预设规则的元信息存储节点的数量有多个时,或者这多个满足上述第一预设规则节点的id码。
步骤S212:根据各元信息存储节点的标识,从多个满足上述第一预设规则的元信息存储节点中确定出主节点。
例如,可以从满足上述第一预设规则的元信息存储节点中,选择出id码最小的元信息存储节点作为上述主节点,从而从多个满足上述第一预设规则的元信息存储节点中选择出主节点。
本实施例的设置方式,可以在有多个元信息存储节点满足上述第一预设规则时,从多个元信息存储节点中确定出主节点,从而避免有多个元信息存储节点满足上述第一预设规则时无法确定出唯一的元信息存储节点,达到提高获取主节点的可靠性的目的。
在上述实施例中,当有多个元信息存储节点满足上述第一预设规则时,根据各元信息存储节点的标识确定出主节点。在其他实施例中,可以采用其他的方法,从多个满足上述第一预设规则的元信息存储节点中选择出主节点,例如,可以从满足上述第一预设规则的多个元信息存储节点中随机选择出一个元信息存储节点作为主节点。
在本申请的技术方案中,各元信息存储节点之间通信连接以形成节点组,并且各元信息存储节点之间相互发送心跳报文,因此,可以根据各元信息存储节点的心跳报文,判断是否有元信息存储节点退出上述节点组,或者有新的元信息存储节点加入上述节点组。下面结合具体的应用场景,对有元信息存储节点加入或者退出上述节点组时的处理方法做相应的介绍。
在一个实施例中,当有元信息存储节点加入节点组时,本申请的处理方法的流程如图4所示,包括如下步骤:
步骤S301:当在前的节点组中新增元信息存储节点以形成新节点组时,判断在前的节点组中是否存在主节点。
本实施例中的在前的节点组,是指在增加元信息存储节点之前的节点组,在上述在前的节点组中加入新增的元信息存储节点后,所形成的节点组为新节点组。并且当在前的节点组中新增元信息存储节点时,判断在前的节点组中是否有主几点。例如,当选择出主节点后,非主节点可以将主节点的ip地址等信息存储在指定位置,如果在前的节点组中的元信息存储节点不能够从指定位置读取到ip地址,则可以判断为在前的节点组中不存在主节点。
步骤S302:若是,则主节点将其自身所存储的集群元信息发送给新增的元信息存储节点;
如果否,则根据上述第一预设规则,从新节点组选择出主节点,并且该主节点将其自身所存储的集群元信息发送给新节点组中的非主节点,其中包括新增的元信息存储节点。
步骤S303:新增的元信息存储节点接收到主节点所发送的集群元信息后,将该集群元信息进行存储,以实现对新增的元信息存储节点的集群元信息进行更新。
由于在本实施例中,当新的元信息存储节点加入节点组时,根据是否存在主节点执行不同的处理方法,使新加入的元信息存储节点可以快速获取最新的集群元信息。从而使故障的数据库服务节点挂死或者重新启动时,数据库管理进程可以立马更新集群元信息,使各元信息存储节点的集群元信息保持一致,提高同步各元信息存储节点的集群元信息的可靠性。
上述实施例中对有元信息存储节点加入节点组时的处理方法做了详细的介绍,下面结合具体实施例,对有元信息节点退出上述节点组时的处理方法做相应的介绍。
在一个实施例中,当有元信息存储节点退出节点组时,首先判断该元信息存储节点是否为主节点,并且针对不同的判断结果执行不同的方法,以提高各元信息存储节点存储集群元信息的可靠性。
如图5所示,当有元信息存储节点退出上述节点组时,本申请的处理方法还包括如下步骤:
步骤S311:当有元信息存储节点退出节点组时,判断该退出的元信息存储节点是否为主节点,或者退出的元信息存储节点的其中一个是否为主节点。
在本实施例中,当在前的节点组有元信息存储节点退出后,可以形成新的节点组。退出的元信息存储节点的数量可能是一个也可能是多个,如果退出的元信息存储节点的数量是一个,则判断该元信息存储节点是否为主节点,如果退出的元信息存储节点的数量是多个,则判断其中是否包含上述主节点。
步骤S312:若是,则根据上述第一预设规则从新节点组中选择出主节点。
由于主节点退出后,将无法生成新的集群元信息,也无法对其他的守护进程的集群元信息进行更新。因此,为了提高数据库集群的可靠性,本实施例中按照上述第一预设规则,从新节点组中重新选择出主节点,以便于对各元信息存储节点的集群元信息进行更新。
步骤S113:若否,则判断主节点是否还满足上述第一预设规则;
如果主节点满足上述第一预设规则,则不进行任何处理;
如果主节点不满足上述第一预设规则,则根据上述第一预设规则,从新节点组中重新选择出主节点。
例如,在本实施例中上述第一预设规则可以包括多数派原则,即在选择主节点时,各元信息存储节点均根据第一设定原则从节点组中选择主节点。由于各元信息存储节点的选择结果可能不同,可能会产生多个选择结果,并且每一个选择结果对应一个主节点,因此对各选择结果所对应的元信息存储节点的数量进行统计,以得到各选择结果所对应的元信息存储节点的数量,例如,有三个元信息存储节点的选择结果相同,那么该选择结果所对应的元信息存储节点的数量为三。然后得到元信息存储节点数量最多的选择结果,并将该选择结果对应的元信息存储节点作为主节点。
如果有元信息存储节点退出了节点组,则可能会造成已选择出的主节点不再符合上述第一预设规则。例如,在选择主节点时,设认为当前主节点符合上述设定原则的守护进程的数量为N,如果退出的元信息存储节点是认为当前主节点符合上述设定原则的元信息存储节点,则当该元信息存储节点退出后,认为当前主节点符合上述设定原则的元信息存储节点的数量为N-1,如此便可能会造成当前的主节点不符合上述多数派原则。
因此,当退出的元信息存储节点不是主节点时,首先判断主节点是否还满足上述第一预设规则,如果不满足,则根据上述第一预设规则从新节点组中重新选择出主节点,以提高数据库集群的可靠性。
本实施例还提供了一种机器可读存储介质和计算机设备。图7是根据本发明一个实施例的机器可读存储介质40的示意图,图7是根据本发明一个实施例的计算机设备50的示意图。
机器可读存储介质40其上存储有机器可执行程序41,机器可执行程序41被处理器执行时实现上述任一实施例的数据库集群的数据库处理方法。
计算机设备50可以包括存储器520、处理器510及存储在存储器520上并在处理器510上运行的机器可执行程序41,并且处理器510执行机器可执行程序41时实现上述任一实施例的数据库集群的数据库处理方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何机器可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本实施例的描述而言,机器可读存储介质40可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。机器可读存储介质40的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,机器可读存储介质40甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
计算机设备50可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备50可以是云计算节点。计算机设备50可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备50可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
计算机设备50可以包括适于执行存储的指令的处理器510、在操作期间为所述指令的操作提供临时存储空间的存储器520。处理器510可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。存储器520可以包括随机存取存储器(RAM)、只读存储器、闪存或任何其他合适的存储系统。
处理器510可以通过系统互连(例如PCI、PCI-Express等)连接到适于将计算机设备50连接到一个或多个I/O设备(输入/输出设备)的I/O接口(输入/输出接口)。I/O设备可以包括例如键盘和指示设备,其中指示设备可以包括触摸板或触摸屏等等。I/O设备可以是计算机设备50的内置组件,或者可以是外部连接到计算设备的设备。
处理器510也可以通过系统互连链接到适于将计算机设备50连接到显示设备的显示接口。显示设备可以包括作为计算机设备50的内置组件的显示屏。显示设备还可以包括外部连接到计算机设备50的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,NIC)可以适于通过系统互连将计算机设备50连接到网络。在一些实施例中,NIC可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(WAN))、局域网(LAN)或因特网等等。远程设备可以通过网络连接到计算设备。
本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括附加操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种数据库集群的数据处理方法,包括:
获取所述数据库集群中的元信息存储节点,其中所述元信息存储节点相对于对应的数据库服务节点独立运行,并且各所述元信息存储节点之间通讯连接;
根据第一预设规则,从各所述元信息存储节点中选出主节点和非主节点,其中所述主节点用以处理元信息处理请求并生成操作命令,所述非主节点用以接收所述操作命令并向所述主节点反馈执行结果;
响应于所述非主节点收到所述操作命令且执行结果不满足第二预设规则,所述主节点回退所述元信息处理请求。
2.根据权利要求1所述的数据处理方法,其中,
所述的执行结果不满足第二预设规则,包括:
在设定时间内执行失败的非主节点数量不小于第一设定值;或者
在设定时间内执行成功的非主节点数量不大于第二设定值;
其中,所述第一设定值和所述第二设定值根据所述非主节点的总数量确定。
3.根据权利要求1所述的数据处理方法,其中,
所述数据处理方法还包括:
响应于所述主节点接收到所述元信息处理请求,所述主节点生成相应的数据更新命令和数据回退命令,并将所述数据更新命令和所述数据回退命令同时发送给各所述非主节点;以及
响应于所述非主节点同时接收到所述数据更新命令和所述数据回退命令,所述非主节点将所述数据更新命令和所述数据回退命令存储。
4.根据权利要求1所述的数据处理方法,其中,
所述数据处理方法还包括:
响应于所述非主节点接收到请求方的元信息处理请求,所述非主节点将所述元信息处理请求转发给所述主节点;以及
所述主节点对所述元信息处理请求进行处理后,将处理结果通过所述非主节点转发给所述请求方。
5.根据权利要求1所述的数据处理方法,其中,
所述的根据第一预设规则,从各所述元信息存储节点中选出主节点和非主节点,包括:
响应于判断其中一个元信息存储节点的数据为最新数据的所述元信息存储节点的数量最多,将该元信息存储节点作为所述主节点,其他元信息存储节点作为所述非主节点。
6.根据权利要求5所述的数据处理方法,其中,
所述数据处理方法还包括:
响应于多个元信息存储节点符合所述预设规则,根据多个所述元信息存储节点的标识确定所述主节点。
7.根据权利要求1或3所述的数据处理方法,其中,
各所述元信息存储节点之间通讯连接以形成节点组,并且所述数据处理方法还包括:
响应于在前的所述节点组中新增元信息存储节点以形成新节点组,判断在前的所述节点组中是否存在所述主节点;
若是,则所述主节点对新增的所述元信息存储节点的集群元信息进行更新;
若否,则根据所述第一预设规则,从所述新节点组中选择出主节点,并由所述主节点对所述新节点组中的非主节点的集群元信息进行更新。
8.根据权利要求1或5所述的数据处理方法,其中,
各所述元信息存储节点之间通讯连接以形成节点组,并且所述数据处理方法还包括:
响应于在前的所述节点组中有所述元信息存储节点退出以形成新节点组,判断退出的所述元信息存储节点是否为或是否其中一个为所述主节点;
若是,则根据所述第一预设规则,从所述新节点组中选择出新的主节点;
若否,响应于在前的所述节点组中所述主节点在所述新节点组中不满足所述第一预设规则,从所述新节点组中选择出新的主节点。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据处理方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310215372.5A CN116204590A (zh) | 2023-02-28 | 2023-02-28 | 数据库集群的数据处理方法、可读存储介质与计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310215372.5A CN116204590A (zh) | 2023-02-28 | 2023-02-28 | 数据库集群的数据处理方法、可读存储介质与计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116204590A true CN116204590A (zh) | 2023-06-02 |
Family
ID=86514572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310215372.5A Pending CN116204590A (zh) | 2023-02-28 | 2023-02-28 | 数据库集群的数据处理方法、可读存储介质与计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116204590A (zh) |
-
2023
- 2023-02-28 CN CN202310215372.5A patent/CN116204590A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107465767B (zh) | 一种数据同步的方法和系统 | |
CN108683516B (zh) | 一种应用实例的升级方法、装置和系统 | |
CN107153660B (zh) | 分布式数据库系统的故障检测处理方法及其系统 | |
JP2011145910A (ja) | 情報処理装置及び情報処理装置のファームウェア更新方法 | |
CN106960060B (zh) | 一种数据库集群的管理方法及装置 | |
CN108183971B (zh) | 一种分布式系统中的节点选举方法 | |
JP2013171301A (ja) | ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム | |
CN111541762B (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN110069365B (zh) | 管理数据库的方法和相应的装置、计算机可读存储介质 | |
CN111464603A (zh) | 一种服务器扩容方法及扩容系统 | |
CN112015595B (zh) | 主从数据库的切换方法、计算设备及存储介质 | |
CN112751693B (zh) | 分布式存储系统的数据处理方法、装置及电子设备 | |
CN113810216A (zh) | 一种集群的故障切换方法、装置及电子设备 | |
JP5613119B2 (ja) | マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム | |
CN116204590A (zh) | 数据库集群的数据处理方法、可读存储介质与计算机设备 | |
JP2009223519A (ja) | クラスタシステム及び同システムにおいてマスタノードを選択する方法 | |
CN111092956A (zh) | 资源同步方法、装置、存储介质及设备 | |
CN110502460B (zh) | 数据处理的方法和节点 | |
CN116126881A (zh) | 数据库集群的元信息存储方法、存储介质与计算机设备 | |
CN113342893A (zh) | 基于区块链的节点同步方法、装置、存储介质及服务器 | |
CN115396437B (zh) | 一种集群搭建方法、装置、电子设备及存储介质 | |
CN111510336A (zh) | 一种网络设备状态管理方法及装置 | |
CN117493024B (zh) | 多进程异构程序的迁移方法、存储介质及电子设备 | |
CN107153594B (zh) | 分布式数据库系统的ha组件选主方法及其系统 | |
CN116166300B (zh) | 知识产权系统的升级管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |