一种主备切换方法及系统的制作方法

文档序号:8457201阅读:369来源:国知局
一种主备切换方法及系统的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种主备切换方法及系统。
【背景技术】
[0002]随着互联网技术的发展,互联网中的业务类型越来越多,互联网用户的数量也越来越大。对互联网中的业务通常需要配备相应的数据库集群,存储所需的业务数据,保证业务的正常运行。在高可靠性应用系统中,通常采用备机对主机中的数据进行备份,当主机出现故障时,由备机接替原主机继续工作。
[0003]现有技术中,备机通过读取主机的操作日志,将主机的操作记录加载到备机的缓存区中,以使备机在空闲时执行主机对应的操作,当主机发生异常时,往往备机还未将缓存区中的操作记录执行完毕,就已经进行了主机备机的切换,从而导致切换完之后的新主机中的数据与原主机中的数据差异很大,造成数据库中部分数据缺失或者部分数据未更新。

【发明内容】

[0004]本发明实施例所要解决的技术问题在于,提供一种主备切换方法及系统,实现了当主机发生故障时,数据库服务器向主机的多台备机下发主备切换指令,多台备机分别执行各自缓存区中存储的操作记录日志,在各台备机分别执行完各自缓存区中的操作记录日志后,向数据库服务器上报各自的数据进程信息,数据库服务器根据各台备机上报的数据进程信息,选取执行数据进程最多的备机作为新的主机,从而可以保证在进行主备切换之前,备机已将缓存区中的操作记录执行完毕并进行了数据更新,则当新主机替代原主机进行工作时,新主机中的数据与原主机中的数据可以更加一致,新主机中的数据会更加完整。
[0005]第一方面,本发明实施例提供了一种主备切换方法,包括:
[0006]根据检测到的当前主机的工作状态,判断是否满足主备切换条件;
[0007]当满足所述主备切换条件时,产生主备切换指令,并将所述主备切换指令发送至所述当前主机的至少两台备机,以使所述至少两台备机发送各自的数据进程信息;
[0008]根据所述至少两台备机发送的各自的数据进程信息按照预设条件选取与所述当前主机保持同步的目标备机,并将选取出的所述目标备机设置为目标主机。
[0009]结合第一方面,在第一种可能的实现方式中,所述主备切换条件为在预设的时间阈值内接收到所述当前主机发送的心跳信息,所述心跳信息同于表征所述当前主机是否正常运行;所述根据检测到的当前主机的工作状态,判断是否满足主备切换条件,包括:
[0010]检测所述当前主机发送的心跳信息;
[0011]若在所述预设时间阈值内接收到所述当前主机发送的所述心跳信息,则判断为不满足所述主备切换条件;
[0012]若在所述预设时间阈值内未接收到所述当前主机发送的所述心跳信息,则判断为满足所述主备切换条件。
[0013]结合第一方面,在第二种可能的实现方式中,所述产生主备切换指令,并将所述主备切换指令发送至所述主机的至少两台备机之后,根据所述至少两台备机发送的各自的数据进程信息按照预设条件选取与所述当前主机保持同步的目标备机之前,还包括:
[0014]所述至少两台备机在接收到所述主备切换指令后,各自执行对应各台备机的数据进程文件中记录的且未执行的操作;
[0015]当所述至少两台备机中的任意一台备机执行完所述任意一台备机的数据进程文件中记录的所有操作后,将所述任意一台备机的数据进程信息发送至数据库服务器。
[0016]结合第一方面,在第三种可能的实现方式中,所述根据所述至少两台备机发送的各自的数据进程信息按照预设条件选取与所述当前主机保持同步的目标备机,包括:
[0017]根据所述至少两台备机发送的各自的数据进程信息,选取所述数据进程信息中执行进程最多的数据进程信息对应的备机,作为与所述当前主机保持同步的所述目标备机。
[0018]结合第一方面,在第四种可能的实现方式中,所述将所述选取出的目标备机设置为目标主机之后,还包括:
[0019]将连接到所述当前主机的所有服务切换到所述目标主机中,并将所述至少两台备机中除所述目标备机以外的其他备机设置为所述目标主机的备机。
[0020]第二方面,本发明实施例提供了一种主备切换系统,包括主机装置,所述主机装置包括:
[0021]判断模块,用于根据检测到的当前主机的工作状态,判断是否满足主备切换条件;
[0022]产生模块,用于当满足所述主备切换条件时,产生主备切换指令,并将所述主备切换指令发送至所述当前主机的至少两台备机,以使所述至少两台备机发送各自的数据进程信息;
[0023]选取模块,用于根据所述至少两台备机发送的各自的数据进程信息按照预设条件选取与所述当前主机保持同步的目标备机,并将选取出的所述目标备机设置为目标主机。
[0024]结合第二方面,在第一种可能的实现方式中,所述主备切换条件为在预设的时间阈值内接收到所述当前主机发送的心跳信息,所述心跳信息同于表征所述当前主机是否正常运行;所述判断模块包括:
[0025]检测单元,用于检测所述当前主机发送的心跳信息;
[0026]判断单元,用于若在所述预设时间阈值内接收到所述当前主机发送的所述心跳信息,则判断为不满足所述主备切换条件;若在所述预设时间阈值内未接收到所述当前主机发送的所述心跳信息,则判断为满足所述主备切换条件。
[0027]结合第二方面,在第二种可能的实现方式中,还包括备机装置,所述备机装置包括:
[0028]执行模块,用于在接收到所述主备切换指令后,各自执行对应各台备机的数据进程文件中记录的且未执行的操作;
[0029]发送模块,用于当所述至少两台备机中的任意一台备机执行完所述任意一台备机的数据进程文件中记录的所有操作后,将所述任意一台备机的数据进程信息发送至数据库服务器。
[0030]结合第二方面,在第三种可能的实现方式中,所述选取模块具体用于根据所述至少两台备机发送的各自的数据进程信息,选取所述数据进程信息中执行进程最多的数据进程信息对应的备机,作为与所述当前主机保持同步的所述目标备机。
[0031]结合第二方面,在第四种可能的实现方式中,还包括:
[0032]切换模块,用于将连接到所述当前主机的所有服务切换到所述目标主机中,并将所述至少两台备机中除所述目标备机以外的其他备机设置为所述目标主机的备机。
[0033]通过实施本发明实施例,实现了当主机发生故障时,数据库服务器向主机的多台备机下发主备切换指令,多台备机分别执行各自缓存区中存储的操作记录日志,在各台备机分别执行完各自缓存区中的操作记录日志后,向数据库服务器上报各自的数据进程信息,数据库服务器根据各台备机上报的数据进程信息,选取执行数据进程最多的备机作为新的主机,从而可以保证在进行主备切换之前,备机已将缓存区中的操作记录执行完毕并进行了数据更新,则当新主机替代原主机进行工作时,新主机中的数据与原主机中的数据可以更加一致,新主机中的数据会更加完整。
【附图说明】
[0034]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1是本发明实施例提供的数据库管理系统的系统架构图;
[0036]图2是本发明实施例提供的主备切换方法的第一实施例的流程示意图;
[0037]图3是本发明实施例提供的主备切换方法的第二实施例的流程示意图;
[0038]图4是本发明实施例提供的主备切换系统的第一实施例的结构示意图;
[0039]图5是本发明实施例提供的主备切换系统的第二实施例的结构示意图;
[0040]图6是本发明实施例提供的判断模块的第一实施例的结构示意图。
【具体实施方式】
[0041]下面将结合本发明实施例
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1