一种基于SAS双控设备的数据库故障切换方法及设备技术

技术编号:20588547 阅读:30 留言:0更新日期:2019-03-16 07:03
本发明专利技术公开了一种基于SAS双控设备的数据库故障切换方法和配置,涉及分布式数据库高可用领域。该方法包含以下步骤:对SAS双控设备上的数据库进行心跳监控,当一端控制器或者数据库链接中断、且另一端控制器以及数据库能够正常工作,判断该端控制器上的数据库为故障数据库;若故障控制器未发生宕机、且数据库实例宕机,则在该控制器尝试启动数据库实例;若故障控制器发生宕机,则直接进行故障切换,在另一端正常工作的控制器上启动故障数据库实例,并将该故障数据库所在存储池切换到正常工作的控制器端。本发明专利技术当SAS双控设备上的数据库发生故障时,能够快速进行故障数据库的切换、同时避免了数据同步以及节省了存储资源和网络资源。

A Method and Equipment of Database Fault Switching Based on SAS Dual Control Equipment

The invention discloses a method and configuration of database fault switching based on SAS dual-control device, which relates to the field of high availability of distributed database. This method includes the following steps: monitoring the heartbeat of the database on SAS dual-control device, when one end of the controller or database link is interrupted, and the other end of the controller and the database can work properly, judging that the database on the controller is a fault database; if the fault controller does not fail and the database instance fails, the controller tries to start the database. Examples: If the fault controller goes down, the fault switch is carried out directly, and the fault database instance is started on the normal working controller at the other end, and the storage pool of the fault database is switched to the normal working controller. When the database on SAS dual-control device fails, the method can quickly switch the fault database, avoid data synchronization and save storage resources and network resources.

【技术实现步骤摘要】
一种基于SAS双控设备的数据库故障切换方法及设备
本专利技术属于互联网后端分布式数据库高可用领域,涉及一种基于SAS双控设备上数据库集群的故障切换方法。
技术介绍
目前在互联网后端分布式数据库高可用领域,通常使用数据库镜像(mirror)对的形式进行故障切换。这种方法会浪费大量的存储空间,并且数据同步需要一定的时间。
技术实现思路
针对上述问题,本专利技术的目的是提供一种基于SAS(SerialAttachedSCSI,即串行连接小型计算机系统接口)双控设备的数据库故障切换方法及设备。当互联网后端分布式数据库集群发生故障时,使用该方法能够快速定位故障数据库节点并且快速的进行故障切换操作。本专利技术故障切换节约存储空间,节省数据同步时间。为实现上述目的,本专利技术采取以下技术方案:在互联网后端分布式数据库高可用领域,使用SAS双控设备对数据库配置管理,当SAS双控设备上的数据库发生故障时,能够快速进行故障数据库的切换、同时避免了数据同步以及节省了存储资源和网络资源。该方法涉及分布式数据库集群包括至少1台主数据库服务器(master),至少1台包含两个数据节点(segmenthost)的SAS双控设备控制器,每个控制器有自己的独立的CPU、内存和存储。该方法包含以下步骤:步骤1:生成相应的配置文件,用来进行数据库实例故障切换管理;步骤2:对数据库集群中所有的数据节点进行监控,当监控到数据节点不可访问时,判断当前数据库实例所在的控制器是否正常工作;步骤3:若当前数据库实例所在的控制器正常工作,判断当前数据库状态是控制器正常、数据库实例宕机,则在该控制器上重新启动数据库实例;步骤4:若当前数据库实例所在的控制器正常工作,且经过一定尝试在该控制器上重新启动数据库实例失败,判断当前数据库状态是控制器宕机、数据库实例宕机,则将故障控制器的存储池切换到正常工作的控制器上,并在正常工作的控制器上启动数据库实例;步骤5:若当前数据库实例所在控制器发生故障,判断当前数据库状态为控制器宕机、数据库实例宕机,则将故障控制器的存储池切换到正常工作的控制器上,并在正常工作的控制器上启动数据库实例。本专利技术由于采取以上技术方案,其具有以下优点:1.可以减少双控在正常工作过程中的数据复制,节省了存储资源和网络资源。2.可以省去原故障设备在恢复过程中的再同步过程,节省了恢复的时间。附图说明图1是为基于SAS双控设备分布式数据库集群故障切换的系统架构图;图2是基于SAS双控设备分布式数据库集群故障切换流程图。具体实施方式下面结合附图和实施例对本专利技术的进行详细的描述。如图1所示,本专利技术涉及实现上述方法的基于SAS双控设备上数据库集群组成结构包括数据库集群监控模块和数据库实例管理模块,数据库实例管理模块包括数据库状态判断模块、控制器状态判断模块、存储池状态监控模块、数据库实例启动模块。数据库集群监控模块用于:对数据库集群的所有segment数据节点进行监控,当监控到segment数据节点发生故障时,将发生故障的segment数据节点的信息发送给数据库状态判断模块。数据库状态判断模块用于:接受故障segment数据节点的信息后,判断当前segment数据节点是否可以连接,若是可以连接则通知监控模块继续监控;否则将当前segment数据节点判断为控制器正常、数据库实例宕机,向控制器状态判断模块发送控制器状态信息。控制器状态判断模块用于:收到控制器状态信息时,确定故障数据库实例所在控制器状态,若控制器状态正常、数据库宕机,则向数据库实例启动模块发送重启数据库实例的信息,若控制器宕机,向存储池状态监控模块发送监控存储池状态信号。存储池状态监控模块用于:在接受到监控存储池状态信号时,判断故障控制器的存储池是否切换到正常工作的控制器端,存储池成功切换之后,将故障数据库实例的数据目录切换为备份工作目录,备份工作目录是原始工作目录的软连接。向数据库实例启动模块发送数据库实例启动所需要的信息。数据库实例启动模块用于:接收到数据库实例启动所需要的参数时,执行启动数据库实例的操作。参见图1所示,本专利技术实施用例中的分布式数据库集群包括至少1台master主数据库服务器,至少1台包含两个segment数据节点的SAS双控设备服务器,正常工作时,每个控制器有自己的独立的CPU、内存和存储。如图2所示,本专利技术实施用例涉及的方法详细流程为:S0:根据配置,生成相应的配置文件,当数据库实例进行故障切换时,根据配置文件的要求进行故障切换过程。在S0过程中生成的配置文件包含:同一台SAS双控设备上两个控制器上数据库实例的端口以及端口偏移,同时还包括双控切换时存储池的切换目标。S1:对数据库集群中所有的segment数据节点进行监控,当监控到segment数据节点不可访问时,转到S2;在S1过程中所述的数据库监控的流程为:通过多线程的方式对所有的segment数据库实例进行心跳检测,当segment数据库实例不可链接时,判断该数据库实例故障。若数据库实例和控制器均未发生故障,重新执行S1。S2:判断当前数据库实例所在的控制器是否正常工作,若是,则当前数据库状态是控制器正常、数据库实例宕机,转到S3,若当前数据库实例所在控制器发生故障则,则当前数据库状态为控制器宕机、数据库实例宕机,转到S4;S3:故障数据库实例所在控制器工作正常,在该控制器上重新启动数据库实例,若启动成功则转到S1,若经过一定尝试启动失败则判断控制器宕机、数据库实例宕机,转到S4;在S3过程中,尝试重启数据库实例的次数通过配置文件确定,避免因为网络通信阻塞,将数据库实例判断为故障。S4:将故障控制器的存储池切换到正常工作的控制器上,转到S5;在S4过程中还需要将数据库实例的目录切换到指定的backup目录,使得数据库实例能够通过backup目录查找到数据,避免和正常控制器上的数据目录混淆;S5:在正常工作的控制器上启动数据库实例,结束。在S5过程中,为了避免和正常控制器上的数据库实例的端口号混淆,在配置文件中需要配置故障数据库实例的备用端口号,在S5过程中,使用备用端口号启动数据库实例。所述存储池状态监控模块和数据库实例启动模块工作时,工作正常的控制器发生故障,则直接结束工作。本专利技术不局限于上述实施方式,对于本
的普通技术人员来说,在不脱离本专利技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本专利技术的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。本文档来自技高网
...

【技术保护点】
1.一种基于SAS双控设备的数据库故障切换方法及设备,该方法涉及分布式数据库集群至少1台数据库服务器,至少1台包含两个数据节点的SAS双控设备控制器,每个控制器有自己的独立的CPU、内存和存储;其特征在于:所述基于SAS双控设备的数据库故障切换方法,包含以下步骤:步骤1:生成相应的配置文件,用来进行数据库实例故障切换管理;步骤2:对数据库集群中所有的数据节点进行监控,当监控到数据节点不可访问时,判断当前数据库实例所在的控制器是否正常工作;步骤3:若当前数据库实例所在的控制器正常工作,判断当前数据库状态是控制器正常、数据库实例宕机,则在该控制器上重新启动数据库实例;步骤4:若当前数据库实例所在的控制器正常工作,且经过一定尝试在该控制器上重新启动数据库实例失败,判断当前数据库状态是控制器宕机、数据库实例宕机,则将故障控制器的存储池切换到正常工作的控制器上,并在正常工作的控制器上启动数据库实例;步骤5:若当前数据库实例所在控制器发生故障,判断当前数据库状态为控制器宕机、数据库实例宕机,则将故障控制器的存储池切换到正常工作的控制器上,并在正常工作的控制器上启动数据库实例。

【技术特征摘要】
1.一种基于SAS双控设备的数据库故障切换方法及设备,该方法涉及分布式数据库集群至少1台数据库服务器,至少1台包含两个数据节点的SAS双控设备控制器,每个控制器有自己的独立的CPU、内存和存储;其特征在于:所述基于SAS双控设备的数据库故障切换方法,包含以下步骤:步骤1:生成相应的配置文件,用来进行数据库实例故障切换管理;步骤2:对数据库集群中所有的数据节点进行监控,当监控到数据节点不可访问时,判断当前数据库实例所在的控制器是否正常工作;步骤3:若当前数据库实例所在的控制器正常工作,判断当前数据库状态是控制器正常、数据库实例宕机,则在该控制器上重新启动数据库实例;步骤4:若当前数据库实例所在的控制器正常工作,且经过一定尝试在该控制器上重新启动数据库实例失败,判断当前数据库状态是控制器宕机、数据库实例宕机,则将故障控制器的存储池切换到正常工作的控制器上,并在正常工作的控制器上启动数据库实例;步骤5:若当前数据库实例所在控制器发生故障,判断当前数据库状态为控制器宕机、数据库实例宕机,则将故障控制器的存储池切换到正常工作的控制器上,并在正常工作的控制器上启动数据库实例。2.根据权利要求1所述的基于SAS双控设备的数据库故障切换方法,其特征在于:在步骤5过程中还需要将数据库实例的目录切换到指定的backup目录,使得数据库实例能够通过backup目录查找到数据,避免和正常控制器上的数据目录混淆。3.根据权利要求1所述的基于SAS双控设备的数据库故障切换方法,其特征在于:在步骤5过程中,为了避免和正常控制器上的数据库实例的端口号混淆,在配置文件中需要配置故障数据库实例的备用端口号,使用备用端口号启动数据库实例。4.根据权利要求1所述的基于SAS双控设备的数据库故障切换方法,其特征在于:在步骤4中,尝试重启数据库实例的次数通过配置文件确定,避免因为网络通信阻塞,将数据库实例判断为故障。5.根据权利要求1所述的基于SAS双控设备的数据库故障切换方法,其特征在于:在步骤2过程中所述的数据库监控的流程为:对所有的数据库实例进行心跳检测,当数据库实例不可链接时,判断该数据库实例故障。6.根据权利要求1所述的基于SAS双控设备的数据库故障切换方法,其特征在于:在步骤1过程中生成的配置文件包含:同一台SA...

【专利技术属性】
技术研发人员:杨刚
申请(专利权)人:北京谷数科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1