一种高可用性和强一致性的数据库集群系统及其节点管理方法与流程

文档序号:12375859阅读:1617来源:国知局
一种高可用性和强一致性的数据库集群系统及其节点管理方法与流程

本发明涉及一种高可用性和强一致性的数据库集群系统的节点管理方法。



背景技术:

RAC(Real Application Cluster,真正应用集群)是Oracle的并行集群,位于不同节点的Oracle实例同时访问同一个Oracle数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的存储设备上,能够被集群中的所有节点读写;这种集群方法主要有以下两个局限:

1)实例间的数据同步

RAC提供多个实例,RAC会将写入的数据先缓存在实例的内存,再同步到共享的存储中,有时在数据的同步上花费的时间较大。例如:当多个实例同时写入数据后立即查询新写入的数据时,写在各个实例中的数据还未同步到共享的存储中,为了保证读取的数据的正确性,必须通过复杂的同步过程维护各个实例中数据的一致性。当数据量小时,所需时间可以接受;但当数据量大时,维持一致性所花费的时间可能无法接受。

另一方面,当实例故障时,若该实例中缓存的数据还未同步到共享存储中,则这部分数据将丢失,无法恢复。

2)数据库单点故障

RAC中数据文件只有一份,当共享存储出现故障时,将无法提供服务。

Data Guard是Oracle推出的一种数据库方案,在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。但是,这种模式下的主库和备库的切换必须人工操作,带来了很大的不便。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种高可用性和强一致性的数据库集群系统及其节点管理方法,能够进行节点管理,在节点增加、宕机节点处理和宕机节点重新接入的过程中,保证数据库集群系统的运行和节点数据的同步一致,进而节点故障不会造成数据损失,节点故障处理方便有效。

本发明的目的是通过以下技术方案来实现的:一种高可用性和强一致性的数据库集群系统,包括节点规则设置单元、初始配置单元和多个节点,所述多个节点之间通过私有网络连接;

每个所述的节点均能够提供完整的存储、访问和节点管理服务,且存储的数据同步一致;

所述初始配置单元用于提供配置接口,进而通过手动配置的方式从所述多个节点中确定主节点和副节点;

所述节点规则设置单元用于设定节点管理规则,保证节点管理过程中数据库集群系统的运行和各个节点数据的同步一致。

所述的节点规则设置单元包括:

节点增加规则设置模块,用于设置节点增加的规则,保证新增节点与数据库集群系统中其他节点的数据同步一致;

宕机规则设置模块,用于设置节点宕机时对节点进行处理的规则,保证节点宕机不会影响整个数据库集群系统的工作;

宕机重连规则设置模块,用于设置节点宕机重连的规则,保证宕机重连的节点与数据库集群系统其他节点的数据同步一致。

所述的多个节点还连接统一的地址访问集群,为用户组访问服务接口。

每个所述的节点均包括存储模块、数据服务模块和节点管理模块;所述存储模块用于对节点数据进行存储;所述数据服务模块用于为用户提供服务;所述节点管理模块用于根据节点管理规则,保证节点管理过程中各个节点数据的同步一致。

所述的一种高可用性和强一致性的数据库集群系统的节点管理方法,包括以下步骤:

S1.通过手动配置的方式从所述多个节点选择一个节点作为主节点,其余所有节点均为副节点;

S2.根据设定的节点管理规则对数据库集群中的节点进行管理,包括节点增加、宕机节点处理和宕机节点重新接入。

所述的节点增加包括以下子步骤:

S201.在数据库集群系统中加入新的节点;

S202.以新增节点加入的时间作为分界线;

S203.新增节点从主节点中同步该时间分界线之前的数据;

S204.根据主节点保留的日志文件,依次对该时间分界线之后新增节点的数据进行恢复;

S205.当新增节点与主节点数据一致时,新增节点加入成功,对用户可见,且能够为用户提供服务。

所述的宕机节点处理包括以下子步骤:

S211.判断宕机节点的类型:

(1)如果宕机节点为主节点,进入步骤S212;

(2)如果宕机节点为副节点,主节点断开宕机节点连接,并其踢出集群,其余节点照常工作;

S212.根据各个副节点的工作情况,从副节点中选取新的主节点,并将宕机节点踢出集群。

所述副节点的工作情况包括但不限于副节点的活跃度、负载量和连接数。

所述的宕机节点重新接入包括以下子步骤:

S221.宕机节点重新接入时,提取宕机节点宕掉时的时间戳;

S222.以宕掉时的时间戳为基准,根据主节点的日志文件,恢复重新接入的节点在时间戳之后的所有数据;

S222.重新接入的节点与主节点数据一致时,接入成功,对用户可见,且能够为用户提供服务。

本发明的有益效果是:在数据库集群系统中各个节点数据同步一致,每个节点均能够提供完整存储访问服务的基础上,还能够通过节点管理,在节点增加、宕机节点处理和宕机节点重新接入的过程中,进一步保证数据库集群系统的运行和节点数据的同步一致,进而节点故障不会造成数据损失,节点故障处理方便有效;在节点增加和宕机节点重新接入的过程中,数据与主节点一致后,节点才能对用户可见和提供服务,更加方便于数据库集群系统中的节点管理。

附图说明

图1为本发明的数据库集群系统原理框图;

图2为本发明数据库集群系统的节点管理方法流程图。

具体实施方式

下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。

如图1所示,一种高可用性和强一致性的数据库集群系统,包括节点规则设置单元、初始配置单元和多个节点,所述多个节点之间通过私有网络连接;

每个所述的节点均能够提供完整的存储、访问和节点管理服务,且存储的数据同步一致;

所述初始配置单元用于提供配置接口,进而通过手动配置的方式从所述多个节点中确定主节点和副节点;

所述节点规则设置单元用于设定节点管理规则,保证节点管理过程中数据库集群系统的运行和各个节点数据的同步一致。

所述的节点规则设置单元包括:

节点增加规则设置模块,用于设置节点增加的规则,保证新增节点与数据库集群系统中其他节点的数据同步一致;

在本申请中,所述节点增加的规则包括: 以新增节点加入的时间作为分界线;从主节点中同步该时间分界线之前的数据;并根据主节点保留的日志文件,依次对该时间分界线之后新增节点的数据进行恢复;当新增节点与主节点数据一致时,新增节点加入成功,才对用户可见。

宕机规则设置模块,用于设置节点宕机时对节点进行处理的规则,保证节点宕机不会影响整个数据库集群系统的工作;

在本申请中,节点宕机时对节点进行处理的规则包括:如果宕机节点为主节点,根据各个副节点的工作情况,从副节点中选取新的主节点,并将宕机节点踢出集群;如果宕机节点时副节点,主节点断开宕机节点连接,并其踢出集群,其余节点照常工作;

宕机重连规则设置模块,用于设置节点宕机重连的规则,保证宕机重连的节点与数据库集群系统其他节点的数据同步一致。

本申请中,节点宕机重连的规则包括:以宕掉时的时间戳为基准,根据主节点的日志文件,恢复重新接入的节点在时间戳之后的所有数据;重新接入的节点与主节点数据一致时,才能对用户可见和提供服务。

在本申请的实施例中,设定的节点管理规则(节点增加规则、宕机规则、宕机重连规则)等实质上是节点之间的协议。

在本申请中,初始配置单元用于进行初始配置,需要通过私有网络与每个所述的节点连接;节点规则设置单元用于对节点之间的规则(协议)进行设置,也需要通过私有网络与每个所述的节点连接。

所述的多个节点还连接统一的地址访问集群,为用户组访问服务接口。

每个所述的节点均包括存储模块、数据服务模块和节点管理模块;所述存储模块用于对节点数据进行存储;所述数据服务模块用于为用户提供服务;所述节点管理模块用于根据节点管理规则,保证节点管理过程中各个节点数据的同步一致。

在本申请的实施例中,除了保证节点管理过程中数据的同步一致外,还需要保证命令执行过程中,各个节点的数据同步,具体地,为用户提供服务过程中,接收到数据增加、删除、修改类命令时,所有节点同时执行,均执行成功时,整个命令执行成功,若一个节点执行失败,则全部节点回滚回命令执行前的状态,保证存储的数据同步一致。

如图2所示,所述的一种高可用性和强一致性的数据库集群系统的节点管理方法,包括以下步骤:

S1.通过手动配置的方式从所述多个节点选择一个节点作为主节点,其余所有节点均为副节点;

S2.根据设定的节点管理规则对数据库集群中的节点进行管理,包括节点增加、宕机节点处理和宕机节点重新接入。

所述的节点增加包括以下子步骤:

S201.在数据库集群系统中加入新的节点;

S202.以新增节点加入的时间作为分界线;

S203.新增节点从主节点中同步该时间分界线之前的数据;

S204.根据主节点保留的日志文件,依次对该时间分界线之后新增节点的数据进行恢复;

S205.当新增节点与主节点数据一致时,新增节点加入成功,对用户可见,且能够为用户提供服务。

所述的宕机节点处理包括以下子步骤:

S211.判断宕机节点的类型:

(1)如果宕机节点为主节点,进入步骤S212;

(2)如果宕机节点为副节点,主节点断开宕机节点连接,并其踢出集群,其余节点照常工作;

S212.根据各个副节点的工作情况,从副节点中选取新的主节点,并将宕机节点踢出集群。

所述副节点的工作情况包括但不限于副节点的活跃度、负载量和连接数。

所述的宕机节点重新接入包括以下子步骤:

S221.宕机节点重新接入时,提取宕机节点宕掉时的时间戳;

S222.以宕掉时的时间戳为基准,根据主节点的日志文件,恢复重新接入的节点在时间戳之后的所有数据;

S222.重新接入的节点与主节点数据一致时,接入成功,对用户可见,且能够为用户提供服务。

本发明中,每个节点都能提供完整的服务,能够有效提升工作效率;同时,该数据库集群能够自动管理节点主从关系,当副节点宕掉时,主节点会将其踢出集群,该副节点对外不可见;当主节点宕掉时,能自动选出新的主节点,再将宕掉的主节点踢出集群;由于数据库集群自动管理,对于用户来说,没有节点没有主副之分(看不到主节点和副节点之分),也不需要手动选择执行命令或任务的节点。相较于Data Guard手动切换主备库的方式,该数据库集群自动管理节点主从关系将大大缩短维护时间,对故障的处理方便有效;并且该数据库集群中每个节点都具存储模块、数据服务模块,整个集群中存在多份数据,避免了RAC方式中故障导致的数据丢失问题。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1