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

文档序号:8457201阅读:来源:国知局
ssage)是一种发送方发送到接收方的消息,这种消息可以让接收方确定发送方是否以及何时出现故障或终止。当所述数据库服务器在预设的时间阈值内接收到了所述当前主机上报的心跳信息时,则判断为所述当前主机处于正常运行状态,则不满足主备切换条件,当所述数据库服务器在预设的时间阈值内未接收到所述当前主机上报的心跳信息时,则判断为所述当前主机未处于正常运行状态,则满足主备切换条件。其中,所述预设的时间阈值可以由数据库服务器系统或者数据库管理员进行设置,本发明实施例不作具体限定。
[0061]例如,所述当前主机每间隔10秒向所述数据库服务器上报一次当前的心跳信息,当所述数据库服务器在接收到上一次上报的心跳信息开始,间隔了 10秒后还未接收到所述当前主机上报的心跳信息,则所述数据库服务器默认所述当前主机未处于正常运行状态,则需要进行主备切换。
[0062]步骤S303:当满足所述主备切换条件时,产生主备切换指令,并将所述主备切换指令发送至所述当前主机的至少两台备机,以使所述至少两台备机发送各自的数据进程信息;
[0063]具体地,当所述数据库服务器检测到所述当前主机出现未处于正常运行状态,即满足主备切换条件时,所述数据库服务器产生主备切换指令,并将所述主备切换指令下发至所述当前主机的各台备机,以通知所述各台备机需要进行主备切换过程,所述各台备机在接收到所述数据库服务器下发的所述主备切换指令后,开始执行各自缓存区中对应的操作日志,以将所述各台备机中的数据进行快速更新,当所述各台备机分别执行完各自缓存区中的操作日志后,向所述数据库服务器上报各自的数据进程信息,以使所述数据库根据所述各台备机各自上报的数据进程信息进行选取新的主机的操作。
[0064]步骤S305:所述至少两台备机在接收到所述主备切换指令后,各自执行对应各台备机的数据进程文件中记录的且未执行的操作;
[0065]具体地,所述至少两台备机在接收到所述数据库服务器下发的所述主备切换指令后,开始执行各自缓存区中对应的操作日志中的操作记录,以将所述各台备机中的数据进行快速更新,所述各台备机执行所述备机中缓存的操作日志中的操作记录,且所述操作日志中的操作记录为预先从所述当前主机的操作日志中提取的部分或者全部数据操作记录。
[0066]步骤S307:当所述至少两台备机中的任意一台备机执行完所述任意一台备机的数据进程文件中记录的所有操作后,将所述任意一台备机的数据进程信息发送至数据库服务器;
[0067]具体地,当所述各台备机的某台备机执行完所述备机的操作日志中对应的所有操作记录时,所述备机向所述数据库服务器上报所述备机的数据进程信息,所述数据进程信息可以表征所述备机执行的进程情况,所述数据进程信息中可以包括执行的数据操作类型、执行的数据对象、执行的操作时间以及执行的序列号,从所述数据进程信息中可以查看所述备机执行过的所有操作记录。所述数据库服务器在下发所述主备切换指令给所述各台主机时,等待接收所述各台备机分别上报的各自的数据进程信息,且等待的时间为规定的时间阈值,在所述规定的时间阈值内,所述各台备机在执行完所有的操作记录后,上报各自的数据进程信息,当超过所述规定的时间阈值后,所述数据库服务器不再接收备机上报的数据进程信息,并开始根据所述各台备机各自上报的数据进程信息,从中选取执行数据进程最多的备机,作为新的主机
[0068]例如,各台备机通过上报各自的GTID (global transact1n identifier,即全局事务标示符,GTID由两部分组成:source id,以及transact1n id,其中,source_id用于标示源服务器,这个值在第一次启动时生成,并写入到配置文件中,transact1n id则是根据在源服务器上第几个提交的事务来确定,即代表执行的进程中的最大序列号。)列表至所述数据库服务器,所述数据库服务器可以通过各台备机上报的GTID列表获取各台备机执行的进程情况。
[0069]步骤S309:根据所述至少两台备机发送的各自的数据进程信息按照预设条件选取与所述当前主机保持同步的目标备机,并将选取出的所述目标备机设置为目标主机;
[0070]具体地,所述数据库服务器根据所述各台备机各自上报的数据进程信息,从中选取与所述当前主机中的数据更加一致,更加同步的目标备机,并将选取出的所述目标备机设置为目标主机,并在所述数据库服务器中将所述目标主机的IP地址设置为切换后的新主机的IP地址,以使选取出的所述目标主机在所述数据库中作为主机进行应用。
[0071]进一步地,所述数据库服务器根据所述至少两台备机发送的各自的数据进程信息,选取所述数据进程信息中执行进程最多的数据进程信息对应的备机,作为与所述当前主机保持同步的所述目标备机,其中执行数据进程最多,意味着在所述当前主机发生异常状态之前,所述目标备机中缓存的操作日志与所述当前主机在发生异常之前的操作日志更加接近、更加一致,当所述目标备机执行完所述目标备机的操作日志中记录的所有进程时,意味着所述目标备机中的数据与所述当前主机中的数据更加一致、更加同步,所述目标备机中保存的数据更加完整。
[0072]例如,所述数据库服务器根据所述至少两个备机上报的各自的GTID列表,选取其中GTID最大的备机作为新的主机。其中上报的GTID值越大,即表明该备机执行的进程越多,该备机中存储的数据与所述当前主机中存储的数据越接近,因此在主备切换之后,新的主机中的数据与原主机中的数据更一致
[0073]步骤S311:将连接到所述当前主机的所有服务切换到所述目标主机中,并将所述至少两台备机中除所述目标备机以外的其他备机设置为所述目标主机的备机。
[0074]具体地,当所述数据库服务器将所述目标主机的IP地址设置为新的主机IP地址后,将所有连接到之前的主机的服务或者连接重新连接到所述目标主机中,以使所述当前主机不再作为主机在所述数据库中进行应用,并使所述目标主机在所述数据库中进行应用,并将所述至少两台备机中除所述目标备机以外的其他所有备机与所述目标备机重新建立主备关系,从而实现主备切换。
[0075]上述详细阐述了本发明实施例的方法,下面为了便于更好地实施本发明实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关装置。
[0076]如图4示出的本发明实施例提供的主备切换系统的第一实施例的结构示意图,主备切换系统40包括主机装置401,主机装置401包括:判断模块4011、产生模块4013和选取模块4015,其中
[0077]判断模块4011,用于根据检测到的当前主机的工作状态,判断是否满足主备切换条件;
[0078]产生模块4013,用于当满足所述主备切换条件时,产生主备切换指令,并将所述主备切换指令发送至所述当前主机的至少两台备机,以使所述至少两台备机发送各自的数据进程?目息;
[0079]选取模块4015,用于根据所述至少两台备机发送的各自的数据进程信息按照预设条件选取与所述当前主机保持同步的目标备机,并将选取出的所述目标备机设置为目标主机。
[0080]可理解的是,本实施例的主备切换系统40的各功能模块的功能可根据上述图2方法实施例的方法具体实现,此处不再赘述。
[0081]进一步地,如图5示出的本发明实施例提供的主备切换系统的第二实施例的结构示意图,主备切换系统40包括主机装置401以及备机装置403,主机装置401包括:判断模块4011、产生模块4013和选取模块4015外,还包括切换模块4017,备机装置403包括:执行模块4031和发送模块4033,其中
[0082]切换模块4017,用于将连接到所述当前主机的所有服务切换到所述目标主机中,并将所述至少两台备机中除所述目标备机以外的其他备机设置为所述目标主机的备机;
[0083]执行模块4031,用于在接收到所述主备切换指令后,各自执行对应各台备机的数据进程文件中记录的且未执行的操作;
[0084]发送模块4033,用于当所述至少两台备机中的任
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1