专利名称::一种双机切换方法及系统的制作方法
技术领域:
:本发明涉及通信
技术领域:
,尤其涉及一种双机切换方法及系统。
背景技术:
:随着通讯技术和计算机技术的迅猛发展,人们对构成计算机通信网络设备的要求越来越高,不仅是网络服务的内容,而且是网络服务的质量。提高网络服务质量的一个措施就是提高通讯设备的可靠性。为了提高设备的可靠性,最常用的方法就是对关键的网络设备采用主、备用双机工作的方式。在主用机发生故障时,通过双机切换,由备用机接替主用机继续处理业务。双机切换主要应用在网络侧设备的核心节点上,比如固网交换机。现有的双机切换系统中,主备双机间通常会有一个硬件DOG卡来监测双机的运行情况,并由DOG卡实现主备机间的切换。但是由于DOG卡方式线缆连接的距离有限,使得主、备用双机的距离及位置也受到很大限制;并且这种DOG卡方式的双机切换技术要求主用机的公共数据和备用机的公共数据必须进行同步切换。因为若公共数据不同步,则主备双机中的配置信息、业务信息、用户信息等关键数据将不一致。当主机发生故障时,备机升为主用后,由于公共数据不一致,那么必然造成新的主用机和原有的主用机在逻辑功能上有差异。严重的情况,会导致双机都不能正常工作,以至于双机互踢的现象发生。
发明内容鉴于上述的分析,本发明旨在提供一种双机切换方法及系统,用以解决现有技术中存在的由于主备机的公共数据不同步而导致双机互踢和必须通过硬件才可以实现双机切换的问题。本发明的目的主要是通过以下技术方案实现的本发明提供了一种双机切换方法,所述方法包括步骤A:将主用机和备用机的公共数据存放到两者共享的数据库中,并在该数据库中预先设定一数据库表,该数据库表中存放有分别用来表示主用机和备用机各自运行状态的两条记录;步骤B:按预定周期检查所述数据库表中的记录来确认双机的运行状态,并根据所述数据库表记录的运行状态进行双机切换。进一步地,所述执行步骤B之前还包括主用机启动后,设定主用机和备用机在所述数据库表中记录的运行状态,然后按预定周期向备用机发送握手信号;备用机启动后,根据其在所述数据库表中记录的运行状态进行判断,如果为备用态,接收主用机的握手信号,并发送握手信号给主用机;否则,更新数据库表,进行双机切换,并复位主用机为备用机。进一步地,所述步骤B具体包括主用机根据数据库表的记录确定双机的运行状态是否正常,如果正常,发送握手信号给备用机,否则发送备机升主用信号给备用机;备用机定期检查主用机发来的握手信号,当在预定周期内未接收到主用机发来的握手信号或者接收到主用机发送的备机升主用信号,则更新数据库表,进行双机切换,并复位主用机为备用机;同时,主用机定期检查备用机反馈回来的握手信号,当在预定周期内未接收到备用机发来的握手信号时,则复位备用机。进一步地,所述进行双机切换的过程具体包括原备用机升为主用机,修正主用机和备用才几在数据库表中的记录,并激活服务功能;主用才几和备用机分别接收对方发来的握手信号,并由主用机发送双才几切换完成指令。进一步地,所述复位备用机的过程具体包括备用机根据主用机发来的复位信号,修正其在数据库表中的记录;备用机去活服务功能,并向主用机发送复位完毕信号;主用机根据接收到的复位完毕信号,激活服务功能。进一步地,所述方法还包括主用机和备用机4艮据用户的双机切换要求,进4亍手动双机切换。进一步地,所述手动双机切换的过程具体包括主用机根据接收到的双机切换指令检测到握手信号是否存活,并在确定存活后向备用机发送倒机信号;主用机在收到备用机反馈的倒机证实信号后,修正其在数据库表中的记录,同时去活服务功能,转入备用态;备用机在预定周期内检查其在数据库表中的记录是否已被修改,若已被修改,则激活服务功能,备用机升为主用态。本发明还提供了一种双机切换系统,所述系统包括数据库服务器、主用机和备用机,其中,数据库服务器,用于保存主用机和备用机共享的公共数据及设定的数据库表,所述教记录;主用机,用于在双机运行过程中,根据数据库表的记录确定双机的运行状态是否正常,正常时发送握手信号给备用机,否则发送备机升主用信号给备用机;同时,主用机还用于定期检查备用机反馈回来的握手信号,当在预定周期内未接收到备用机发来的握手信号时,则复位备用机。备用机,用于定期检查主用机发来的握手信号,当在预定周期内未接收到主用机发来的握手信号或者接收到主用机发送的备用机升主信号,则更新数据库表,进行双机切换,并复位主用机为备用机;记录的运行状态,然后按预定周期向备用机发送握手信号;备用机还用于在启动后根据其在所述数据库表中记录的运行状态进行判断如果为备用态,接收主用机的握手信号,并发送握手信号给主用机;否贝'J,该备用机升为主用机,修正其在数据库表中记录的运行状态,并激活服务功能。进一步地,所述主用机还用于在运行过程中用于定期检查备用机发来的握手信号,当在预定周期内未接收到备用机发来的信号时,则发送复位信号给备用机。进一步地,当备用机收到主用机发来的复位信号以后,所述备用机还用于根据主用机发来的复位信号,修正其在数据库表中的记录,然后去活服务功能,并向主用机发送复位完毕信号。进一步地,所述主用机和备用机还用于根据用户的双机切换要求进行手动双机切换,具体为所用主用机,用于根据接收到的双机切换指令检测到握手信号是否存活,在确定存活后向备用机发送倒机信号;并且,在收到备用机反馈的倒机证实信号后,所述主用机还用于修正主用机和备用机在数据库表中的记录,同时去活服务功能,转入备用态;所述备用机,用于在预定周期内检查其在数据库表中的记录是否已被修改,当确认已被修改时,激活服务功能,备用机升为主用态。本发明有益效果如下本发明通过将主用机和备用机记录各自运行状态的信息保存在数据库表中,并周期性的检查此表来确认双机状态,并根据此表记录的信息进行双机状态的切换,从而克服了传统双机设计技术中需要双机数据同步和双机数据不一致出现的问题;并且不再需要硬件DOG卡,节省投资;此外,主、备用双才几在物理上既可以;故置在一台月良务器内实现,又可以;改在两台服务器完成功能;此外,若分离放置,则主、备用双机的距离不受釆用DOG卡方式线缆连接的限制。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获3曰付。图1为本发明实施例所述方法中,服务器启动流程的双机时序图;图2为本发明实施例所述方法中,复位备机的时序流程图3为本发明实施例所述方法中,自动双机切换的时序流程图;图4为本发明实施例所述方法中,手动双机切换的时序流程图。具体实施例方式下面结合附图来具体描述本发明的优先实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。首先结合附图1到附图4对本发明实施例所述方法进行详细说明。本发明所述方法需要预先将主用机和备用机的公共数据存放到数据库服务器的数据库中,由主用机和备用机进行初始化的时候读取。同时还需要在数据库中设置一数据库表TBSERVER,该数据库表中存放有两条记录,分别用来记录主用机和备用机各自的运行状态。本发明实施例所述的双机切换方法分为四类流程,分别是服务器启动流程、复位备用机流程、自动双机切换流程和手动双机切换流程。在双机处理过程中,主用机和备用机是一个相对的名称,在流程处理中可能会不断的相互转换。为了叙述方便,本发明实施例约定,先启动的服务器即为主用机,另一个服务器就是备用机;在运行过程中,谁接收到消息并处理,谁就是主用机。如图1所示,图1是本发明的服务器启动流程的双机时序图,当服务器开机力口电后,进入双才几启动流程,具体描述如下时刻101:主用机(先启动的服务器)启动后,查询数据库表TBSERVER中符合主用机IP地址的记录,查找到后,将该记录中的STATUS字段置TRUE(表示主用态),并将另一个记录的STATUS字段置FALSE(表示备用态)。时刻102:主用机处于主用工作态,激活服务功能;同时,主用机在系统中注册一个定时器,按预定周期向备用机发送握手信号。时刻103:备用机(后启动的服务器)启动后,去活服务功能,备用机查询数据库表TBSERVER中符合备用机IP地址的记录;查找到后,若备用机记录中的STATUS字段为FALSE,则说明主备机均处于正常状态,备用机接收主用机的握手信号,继续本流程;若STATUS字段为TRUE,说明此时发生双主用问题,则由备用机将另一个记录的STATUS字段置FALSE,原备用机升为主用机(重新执行图1所示的启动流程),并发送复位信号给原主用机,原主用机降为备用机(进行图2所示的复位备机流程)。时刻104:主用机和备用机接收到握手信号并同步各自状态,同时修正数据库表TBSERVER的数据。备用机周期检测握手信号是否存活,若存活,说明主用机工作正常,则继续本流程;若不存活,说明主用机可能由于异常情况导致功能失效,备用机将其在数据库表TBSERVER中的记录的STATUS字段置TRUE,将另一个记录的STATUS字段置为FALSE,原备用机升为主用机(重新执行图l所示的启动流程)。时刻105:双机正常工作。当备用机在一定时间内收不到主用机发来的握手信号,则备用机判断主用机工作异常,该备用机升为主用机,向原主用机发送复位信号,原主用机降为备用机,进入复位备机流程;或者,备用机在一定时间内收不到主用机发来的握手信号时,主用机则主动向备用机发送复位信号,备用机进入复位流程;或者,为了避免双主(TBSERVER中的两条记录的STATUS字段均为TRUE)或双备(TBSERVER表中的两条记录的STATUS字段均为FALSE)情况的发生,主动向对侧机(可能是主用机,也可能是备用机)发送复位信号,从而保证自己一定是主用机,确保按正确的流程处理。如图2所示,图2是复位备机的时序流程图,具体描述如下时刻201:主用才几向备用才几发送复位信号。时刻202:备用机接收到复位信号,修正数据库表TBSERVER的数据,同时去活服务功能,并向主用机发送复位完毕信息。时刻203:主用机接收到备用机的复位完毕信号,激活服务功能。时刻204:双机正常工作。如图3所示,图3是自动双机切换的时序流程图,具体流程为时刻301:主备用机正常工作。时刻302:当备用机在预定时间(如3秒)内接收不到主用机发送的握手信号或者接收到主用机自检测本身故障发送的备机升主用信号,则向原主用机发送复位信号,原主用机进入图2所示的复位备机的流程。时刻303:原主用机如果接收到复位信号,则转入复位备机的流程。时刻304:原备用机修正数据库表TBSERVER中主、备用机的STATUS字段状态,激活服务功能,备用机用升为主用机。时刻305:主、备用机接收到握手信号,双机正常工作。时刻306:主用机(原备用机)向网管服务器发送双机切换完成指令。根据实际情况的需要,用户可以进行手动双机切换的操作,如图4所示,图4为手动双机切换的时序流程图,具体流程为时刻401:用户通过网管服务器发送双机切换指令给主用机。时刻402:主用机若检测到握手信号存活,则向备用机发送倒机信号;否则,向网管服务器发送切换失败的消息。时刻403:备机接收到倒机信号后则立即发送倒才几证实信号并启动500ms定时器检查数据库表TBSERVER的STATUS字段状态是否改变。时刻404:主用机收到倒机证实信号后,主用机会修正数据库表TBSERVER中主备机的STATUS字段状态,同时去活服务功能,转入备用态。时刻405:备用机侧的定时器周期到时,将会4企查TBSERVER中的STATUS字段状态是否已被修改。若已被修改,则激活服务功能,备用机升为主用态。时刻406:双机周期性的接收到对方的握手信号后正常工作。时刻407:主用机向网管服务器发送双机切换完成指令。本发明实施例中,握手信号的作用在于同步主、备机之间的状态和传送主、备机间的命令信息。如表1所示,握手信号的设计如下只传送1个字节的数据包;按位编码表示不同的状态信号和命令信号。在握手信号的设计中,Bit7表示是哪一侧发送的握手信息,其中,l表示主用侧发送;O表示备用侧发送。Bit6Bit4为保留位,以备后用。握手信号分为两类,状态信号和命令信号。目前,从Bit3到Bit0全0表示状态信号;其它情况为命令信号,命令信号最大可为8种,目前设计只有3种,分别是复位信号、倒机信号和备机升主用信号。表1<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>本发明实施例的数据库表TBSERVER用来存》丈主、备双机的状态信息。如表2所示,STATUS字段的取值为TRUE(1)或者FALSE(0),分别代表主用态和备用态。IPADDRESS(IP地址)和PORT(端口)字段分别表示物理的IP地址和端口号。主、备双机在物理上若放置在两台服务器或一台服务器上具有双网卡或一块网卡有双IP地址绑定情况下则根据IPADDRESS字段进行区分;其它情况下主、备用机IPADDRESS相同的情况下,根据PORT进行区分主、备双机。表2<table>tableseeoriginaldocumentpage15</column></row><table>然后对本发明所述系统进4亍详细说明。本发明所述系统包括数据库服务器、主用机和备用机,下面分别予以说明。首先,预先将主用机和备用机的公共数据存放到数据库服务器的数据库中,由主用机和备用机进行初始化的时候读取。同时还需要在数据库中设置一数据库表TBSERVER,该数据库表中存放有两条记录,分别用来记录主用机和备用机各自的运行状态。主用机在启动后设定主用机和备用机在所述数据库表中记录的运行状态为,即,主用机启动后,查询数据库表TBSERVER中符合主用机IP地址的记录,查找到后,将该记录中的STATUS字段置TRUE(表示主用态),并将另一个记录的STATUS字段置FALSE(表示备用态),然后按预定周期向备用机发送握手信号。备用机在启动后根据其在所述数据库表中记录的运行状态进行判断若备用机记录中的STATUS字段为FALSE,则说明主备机均处于正常状态,备用机接收主用机的握手信号;若STATUS字段为TRUE,说明此时发生双主用问题,则由备用机将另一个记录的STATUS字段置FALSE,原备用机升为主用机,修正其在数据库表中记录的运行状态为主用态,并激活服务功能。在系统运行过程中,所述备用机定期检查主用机发来的握手信号,当在预定周期内未接收到主用机发来的握手信号或者接收到主用机发送的备机升主信号,该备用机升为主用机,修正数据库表中记录的运行状态,激活服务功能,并发送复位信号给备用机。同时,所述主用机定期检查备用机发来的握手信号,当在预定周期内未接收到备用机发来的信号时,则发送复位信号给备用机。当备用机收到主用机发来的复位信号以后,则转入复位备机的流程备用机修正数据库表TBSERVER中主、备用机的STATUS字段状态,激活服务功能,备用机用升为主用机;主、备用机接收到握手信号,双机正常工作;主用机(原备用机)向网管服务器发送双机切换完成指令。本发明所述系统还可以根据用户的双机切换要求进行手动双机切换,具体包括主用机根据用户发送的双机切换指令检测握手信号是否存活,如果存活则向备用机发送倒机信号;否则,向网管服务器发送切换失败的消息。备机接收到倒机信号后则立即发送倒机证实信号并启动500ms定时器检查数据库表TBSERVER的STATUS字段状态是否改变。主用机收到倒机证实信号后,主用机会修正数据库表TBSERVER中主备机的STATUS字段状态,同时去活服务功能,转入备用态。备用机侧的定时器周期到时,将会检查TBSERVER中的STATUS字段状态是否已被修改。若已被修改,则激活服务功能,备用机升为主用态。双机周期性的接收到对方的握手信号后正常工作,并由主用机向网管服务器发送双机切换完成指令。综上所述,本发明实施例提供了一种双机切换方法及系统,通过将主用机和备用机记录各自运行状态的信息保存在数据库表中,并周期性的检查此表来确认双才几状态,若主、备双才几出现故障则根据此表记录的信息进行双机状态的切换。本发明这种由数据库配合的软件双机实现方式具有以下优点主、备双机间不存在公共数据的同步,克服了传统双机设计技术中需要双机数据同步和双机数据不一致出现的问题;不再需要硬件DOG卡,节省投资;主、备用双机在物理上既可以放置在一台服务器内实现,又可以放在两台服务器完成功能;此外,若分离放置,则主、备用双机的距离不受采用DOG卡方式线缆连接的限制。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域:
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。权利要求1、一种双机切换方法,其特征在于,所述方法包括步骤A将主用机和备用机的公共数据存放到两者共享的数据库中,并在该数据库中预先设定一数据库表,该数据库表中存放有分别用来表示主用机和备用机各自运行状态的两条记录;步骤B按预定周期检查所述数据库表中的记录来确认双机的运行状态,并根据所述数据库表记录的运行状态进行双机切换。2、根据权利要求1所述的方法,其特征在于,所述执行步骤B之前还包括主用机启动后,设定主用机和备用机在所述数据库表中记录的运行状态,然后按预定周期向备用机发送握手信号;备用机启动后,根据其在所述数据库表中记录的运行状态进行判断,如果为备用态,接收主用机的握手信号,并发送握手信号给主用机;否则,更新数据库表,进行双机切换,并复位主用机为备用机。3、根据权利要求2所述的方法,其特征在于,所述步骤B具体包括主用机根据数据库表的记录确定双机的运行状态是否正常,如果正常,发送握手信号给备用机,否则发送备机升主用信号给备用机;备用机定期检查主用机发来的握手信号,当在预定周期内未接收到主用机发来的握手信号或者接收到主用机发送的备机升主用信号,则更新数据库表,进行双才几切换,并复位主用冲几为备用牙几;同时,主用机定期检查备用机反馈回来的握手信号,当在预定周期内未接收到备用机发来的握手信号时,则复位备用机。4、根据权利要求1到3中任意一项所述的方法,其特征在于,所述进行双机切换的过程具体包括原备用机升为主用机,修正主用机和备用机在数据库表中的记录,并激活服务功能;主用机和备用机分别接收对方发来的握手信号,并由主用机发送双机切换完成指令。5、根据权利要求2或3所述的方法,其特征在于,所述复位备用机的过程具体包括备用机根据主用机发来的复位信号,修正其在数据库表中的记录;备用机去活服务功能,并向主用机发送复位完毕信号;主用机根据接收到的复位完毕信号,激活服务功能。6、根据权利要求1到3中任意一项所述的方法,其特征在于,所述方法还包括主用机和备用机根据用户的双机切换要求,进行手动双机切换。7、根据权利要求6所述的方法,其特征在于,所述手动双机切换的过程具体包括主用机根据接收到的双机切换指令检测到握手信号是否存活,并在确定存活后向备用机发送倒机信号;主用机在收到备用机反馈的倒机证实信号后,修正其在数据库表中的记录,同时去活服务功能,转入备用态;备用机在预定周期内检查其在数据库表中的记录是否已被修改,若已被修改,则激活服务功能,备用机升为主用态。8、一种双机切换系统,其特征在于,所述系统包括数据库服务器、主用才几和备用才几,其中,数据库服务器,用于保存主用机和备用机共享的公共数据及设定的数据库表,所述数据库表中存有分别用来表示主用机和备用机各自的运行状态的两条记录;主用机,用于在双机运行过程中,根据数据库表的记录确定双机的运行状态是否正常,正常对发送握手信号给备用机,否则发送备机升主用信号给备用机;同时,主用机还用于定期检查备用机反馈回来的握手信号,当在预定周期内未接收到备用机发来的握手信号时,则复位备用机;备用机,用于定期检查主用机发来的握手信号,当在预定周期内未接收到主用机发来的握手信号或者接收到主用机发送的备用机升主信号,则更新数据库表,进行双机切换,并复位主用机为备用才几。9、根据权利要求8所述的系统,其特征在于,主用机还用于在启动后设定主用机和备用机在所述数据库表中记录的运行状态,然后按预定周期向备用机发送握手信号;备用机还用于在启动后根据其在所述数据库表中记录的运行状态进行判断如果为备用态,接收主用机的握手信号,并发送握手信号给主用机;否贝'J,该备用机升为主用机,修正其在数据库表中记录的运行状态,并激活服务功能。10、根据权利要求8所述的系统,其特征在于,所述主用机还用于在运行过程中用于定期检查备用机发来的握手信号,当在预定周期内未接收到备用机发来的信号时,则发送复位信号给备用机。11、根据权利要求9或IO所述的系统,其特征在于,当备用机收到主用机发来的复位信号以后,所述备用机还用于根据主用机发来的复位信号,修正其在数据库表中的记录,然后去活服务功能,并向主用机发送复位完毕信号。12、根据权利要求8到10中任意一项所述的系统,其特征在于,所述主用所用主用机,用于根据接收到的双机切换指令检测到握手信号是否存活,在确定存活后向备用机发送倒机信号;并且,在收到备用机反馈的倒机证实信号后,所述主用机还用于修正主用机和备用机在数据库表中的记录,同时去活服务功能,转入备用态;所述备用机,用于在预定周期内检查其在数据库表中的记录是否已被修改,当确认已被修改时,激活服务功能,备用机升为主用态。全文摘要本发明公开了一种双机切换方法及系统,其中,所述方法包括将主用机和备用机的公共数据存放到其共享的数据库中,并在该数据库中预先设定一数据库表,该数据库表中存放有分别用来表示主用机和备用机各自运行状态的两条记录;按预定周期检查所述数据库表中的记录来确认双机的运行状态,并根据所述数据库表记录的运行状态自动进行双机切换;本发明克服了传统双机设计技术中需要双机数据同步和双机数据不一致出现的问题;并且不再需要硬件DOG卡,节省投资。文档编号H04B1/74GK101340272SQ20081014725公开日2009年1月7日申请日期2008年8月25日优先权日2008年8月25日发明者阳陶申请人:中兴通讯股份有限公司