一种服务器双机热备份系统的制作方法

文档序号:11147603阅读:831来源:国知局
一种服务器双机热备份系统的制造方法与工艺

本发明涉及备份技术领域,特别涉及一种服务器双机热备份系统。



背景技术:

数据通信系统通常要求系统具有很高的可靠性,无论遇到突发故障还是主动维护,都不会影响系统的正常运行。为了提高可靠性和可维护性,必须进行灾难备份和恢复。对于有高可靠性要求的系统来说,最佳的备份方案就是双机热备份。

双机热备份一般有两种方式。一种是磁盘阵列方式,另一种是纯软件方式。纯软件方式是指,在系统运行过程当中,有两台服务器装载完全相同的系统和数据,同时通过通信电缆来保持同步,当前工作的服务器称为主服务器,另一台服务器称为备服务器。备服务器不断检测主机状态,当备服务器检测到主服务器出现异常时,进行主备角色切换;当异常排除后,由管理人员将异常排除后的服务器重新切换为主服务器。

由于异常排除后需要人为操作才能完成主备切换(将异常排除后的服务器恢复为主服务器),即浪费人力,又很难在第一时间完成切换动作。



技术实现要素:

为了解决现有技术中异常排除后需要人为操作才能完成主备切换的问题,本发明实施例提供了一种服务器双机热备份系统。所述技术方案如下:

本发明实施例提供了一种服务器双机热备份系统,所述系统包括第一服务器和第二服务器;所述第一服务器包括:第一心跳发布模块、第一心跳订阅模块和第一主备切换模块,所述第二服务器包括:第二心跳发布模块、第二心跳订阅模块和第二主备切换模块;在所述第一服务器为主服务器时,所述第一心跳发布模块用于周期性地发送第一心跳信号,所述第一心跳信号包括服务启动时间;所述第二心跳订阅模块用于获取所述第一心跳信号;第二主备切换模块用于在设定时间内未接收到所述第一心跳信号的次数超过阈值时,将所述第二服务器切换为主服务器;在所述第二服务器为主服务器时,所述第一心跳发布模块用于周期性地发送第一心跳信号,所述第二心跳发布模块用于周期性地发送第二心跳信号,所述第二心跳信号包括服务启动时间;所述第一心跳订阅模块用于获取所述第一心跳信号和所述第二心跳信号;所述第二心跳订阅模块用于获取所述第一心跳信号和所述第二心跳信号;所述第一主备切换模块用于比较所述第一心跳信号和所述第二心跳信号中的服务器启动时间,当所述第一心跳信号的服务器启动时间晚于所述第二心跳信号中的服务器启动时间时,将所述第一服务器切换为主服务器;所述第二主备切换模块用于比较所述第一心跳信号和所述第二心跳信号中的服务器启动时间,当所述第一心跳信号的服务器启动时间晚于所述第二心跳信号中的服务器启动时间时,将所述第二服务器切换为备服务器。

在本发明实施例的一种实现方式中,所述第一服务器还包括第一数据库模块和第一数据同步模块,所述第二服务器还包括第二数据库模块和第二数据同步模块;所述第一心跳信号还包括所述第一服务器的IP地址和所述第一数据库模块中数据的版本号,所述第二心跳信号还包括所述第二服务器的IP地址和所述第二数据库模块中数据的版本号;所述第一数据同步模块还用于比较所述第一数据库模块中数据的版本号和所述第二数据库模块中数据的版本号,当所述第二数据库模块中数据的版本号大于所述第一数据库模块中数据的版本号时,将所述第二数据库模块中数据同步到所述第一数据库模块中;所述第二数据同步模块还用于比较所述第一数据库模块中数据的版本号和所述第二数据库模块中数据的版本号,当所述第一数据库模块中数据的版本号大于所述第二数据库模块中数据的版本号时,将所述第一数据库模块中数据同步到所述第二数据库模块中。

在本发明实施例的另一种实现方式中,所述第一数据库模块和所述第二数据库模块中的数据均分为多个部分,所述第一数据库模块中数据的版本号和所述第二数据库模块中数据的版本号均包括各个部分的版本号;所述第一数据同步模块用于比较所述第一数据库模块中数据的各个部分的版本号和所述第二数据库模块中数据的各个部分的版本号,当所述第二数据库模块中数据的一个部分的版本号大于所述第一数据库模块中数据的相同部分的版本号时,将所述第二数据库模块中数据的一个部分同步到所述第一数据库模块中;所述第二数据同步模块用于比较所述第一数据库模块中数据的各个部分的版本号和所述第二数据库模块中数据的各个部分的版本号,当所述第一数据库模块中数据的一个部分的版本号大于所述第二数据库模块中数据的相同部分的版本号时,将所述第一数据库模块中数据的一个部分同步到所述第二数据库模块中。

在本发明实施例的另一种实现方式中,所述第一数据同步模块用于根据所述第二服务器的IP地址更新所述第一数据库模块;所述第二数据同步模块用于根据所述第一服务器的IP地址更新所述第二数据库模块。

在本发明实施例的另一种实现方式中,所述第一服务器还包括第一服务管理模块,所述第二服务器还包括第二服务管理模块;所述第一服务管理模块用于在所述第一服务器启动时,启动服务并记录服务启动时间;所述第二服务管理模块用于在所述第二服务器切换为主服务器时,启动服务并记录服务启动时间。

在本发明实施例的另一种实现方式中,所述第二主备切换模块用于在设定时间内未接收到所述第一心跳信号时,将超时心跳计数器减一,当所述超时心跳计数器等于0时,将所述第二服务器切换为主服务器,所述超时心跳计数器的初始值为所述阈值。

在本发明实施例的另一种实现方式中,所述系统还包括服务器管理设备,所述服务器管理设备包括输入模块和发送模块;所述第一服务器还包括第一接收模块,所述第二服务器还包括第二接收模块;所述输入模块用于获取用户输入的主备切换指令;所述发送模块用于向所述第一服务器和所述第二服务器发送主备切换消息;所述第一接收模块和所述第二接收模块用于接收所述主备切换消息;所述第一主备切换模块和所述第二主备切换模块用于根据所述主备切换消息完成主备切换。

在本发明实施例的另一种实现方式中,所述发送模块用于通过UDP报文向所述第一服务器和所述第二服务器发送所述主备切换消息。

在本发明实施例的另一种实现方式中,所述服务器管理设备还包括第三心跳订阅模块,所述第三心跳订阅模块用于获取所述第一心跳信号和所述第二心跳信号。

在本发明实施例的另一种实现方式中,所述服务器管理设备还包括显示模块,用于根据所述第一心跳信号和所述第二心跳信号,显示所述第一服务器和所述第二服务器的运行状态。

本发明实施例提供的技术方案带来的有益效果是:

通过第二心跳订阅模块获取第一心跳信号,在设定时间内未接收到所述第一心跳信号的次数超过阈值时,说明第一服务器故障,此时由第二主备切换模块将第二服务器切换为主服务器,保证服务正常;当第一服务器经过检修重新启动时,所述第一主备切换模块比较所述第一心跳信号和所述第二心跳信号中的服务器启动时间,当所述第一心跳信号的服务器启动时间晚于所述第二心跳信号中的服务器启动时间时,将所述第一服务器切换为主服务器,所述第二主备切换模块比较所述第一心跳信号和所述第二心跳信号中的服务器启动时间,当所述第一心跳信号的服务器启动时间晚于所述第二心跳信号中的服务器启动时间时,将所述第二服务器切换为备服务器,从而完成第一服务器的重新切换,无需人工控制,节省人力且切换速度快。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种服务器双机热备份系统的框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种服务器双机热备份系统的框图,参见图1,该系统包括第一服务器10和第二服务器20,第一服务器10和第二服务器20通过网口有线连接。所述第一服务器10包括:第一心跳发布模块101、第一心跳订阅模块102和第一主备切换模块103,所述第二服务器20包括:第二心跳发布模块201、第二心跳订阅模块202和第二主备切换模块203。

在所述第一服务器10为主服务器时,所述第一心跳发布模块101用于周期性地发送第一心跳信号,所述第一心跳信号包括服务启动时间;所述第二心跳订阅模块202用于获取所述第一心跳信号;第二主备切换模块203用于在设定时间内未接收到所述第一心跳信号的次数超过阈值时,将所述第二服务器20切换为主服务器。

在所述第二服务器20为主服务器时,所述第一心跳发布模块101用于周期性地发送第一心跳信号,所述第二心跳发布模块201用于周期性地发送第二心跳信号,所述第二心跳信号包括服务启动时间;所述第一心跳订阅模块102用于获取所述第一心跳信号和所述第二心跳信号;所述第二心跳订阅模块202用于获取所述第一心跳信号和所述第二心跳信号;所述第一主备切换模块103用于比较所述第一心跳信号和所述第二心跳信号中的服务器启动时间,当所述第一心跳信号的服务器启动时间晚于所述第二心跳信号中的服务器启动时间时,将所述第一服务器10切换为主服务器;所述第二主备切换模块203用于比较所述第一心跳信号和所述第二心跳信号中的服务器启动时间,当所述第一心跳信号的服务器启动时间晚于所述第二心跳信号中的服务器启动时间时,将所述第二服务器20切换为备服务器。

本发明通过第二心跳订阅模块获取第一心跳信号,在设定时间内未接收到所述第一心跳信号的次数超过阈值时,说明第一服务器故障,此时由第二主备切换模块将第二服务器切换为主服务器,保证服务正常;当第一服务器经过检修重新启动时,所述第一主备切换模块比较所述第一心跳信号和所述第二心跳信号中的服务器启动时间,当所述第一心跳信号的服务器启动时间晚于所述第二心跳信号中的服务器启动时间时,将所述第一服务器切换为主服务器,所述第二主备切换模块比较所述第一心跳信号和所述第二心跳信号中的服务器启动时间,当所述第一心跳信号的服务器启动时间晚于所述第二心跳信号中的服务器启动时间时,将所述第二服务器切换为备服务器,从而完成第一服务器的重新切换,无需人工控制,节省人力。

其中,第一服务器10为本发明实施例中的默认主服务器,当第一服务器10故障时,第二服务器20切换为主服务器,而当第一服务器10恢复正常后,第一服务器10切换为主服务器,第二服务器20切换为备服务器。

其中,第一主备切换模块103和第二主备切换模块203通过运行热备程序实现主备切换。

另外,本发明实施例提供的第一服务器10和第二服务器20均包括存储模块,存储模块中存储有相关应用服务(即前述服务),第一服务器10在启动时即运行这些应用服务,而第二服务器20仅在切换为主服务器时,才运行这些应用服务。在本发明实施例中,应用服务运行使需要连接数据库使用。在本发明实施例中,应用程序与热备程序独立运行。

在本发明实施例中,第一心跳信号和第二心跳信号的周期可以根据实际需要设置,例如5秒。

在本发明实施例中,当第一服务器10或第二服务器20切换为主服务器时,绑定对外英特网协议(英文Internet Protocol,简称IP)地址,以供客户端接入,完成服务提供。当第一服务器10或第二服务器20切换为备服务器时,解绑对外IP地址。

在本发明实施例中,服务启动时间是指服务启动时的时间,上述服务是指服务器提供的服务,例如服务器为视频服务器时,则其提供的服务为视频服务,服务器为下载服务器时,则其提供的是下载服务。

在本发明实施例的一种实现方式中,所述第一服务器10还可以包括第一数据库模块104和第一数据同步模块105,所述第二服务器20还可以包括第二数据库模块204和第二数据同步模块205;所述第一心跳信号还包括所述第一服务器10的IP地址和所述第一数据库模块104中数据的版本号,所述第二心跳信号还包括所述第二服务器20的IP地址和所述第二数据库模块204中数据的版本号;所述第一数据同步模块105还用于比较所述第一数据库模块104中数据的版本号和所述第二数据库模块204中数据的版本号,当所述第二数据库模块204中数据的版本号大于所述第一数据库模块104中数据的版本号时,将所述第二数据库模块204中数据同步到所述第一数据库模块104中;所述第二数据同步模块205还用于比较所述第一数据库模块104中数据的版本号和所述第二数据库模块204中数据的版本号,当所述第一数据库模块104中数据的版本号大于所述第二数据库模块204中数据的版本号时,将所述第一数据库模块104中数据同步到所述第二数据库模块204中。

其中,第一数据库模块104和第二数据库模块204均用于承载数据库,第一数据库模块104和第二数据库模块204均通过服务器中的存储模块实现。

在本发明实施例中,在进行数据库同步时,即可以同步数据库中的所有数据;也可以为了避免在进行数据同步时,传输数据库中的所有数据造成同步成本过高的问题,将数据库中的数据分为多个部分,每次同步数据库时,只对有数据更新的部分进行同步。其中,数据库的数据可以按照存储位置分为多个部分。

对于第二种更新方式(只同步更新的部分),所述第一数据库模块104和所述第二数据库模块204中的数据均可以分为多个部分,所述第一数据库模块104中数据的版本号和所述第二数据库模块204中数据的版本号均包括各个部分的版本号;所述第一数据同步模块105用于比较所述第一数据库模块104中数据的各个部分的版本号和所述第二数据库模块204中数据的各个部分的版本号,当所述第二数据库模块204中数据的一个部分的版本号大于所述第一数据库模块104中数据的相同部分的版本号时,将所述第二数据库模块204中数据的一个部分同步到所述第一数据库模块104中;所述第二数据同步模块205用于比较所述第一数据库模块104中数据的各个部分的版本号和所述第二数据库模块204中数据的各个部分的版本号,当所述第一数据库模块104中数据的一个部分的版本号大于所述第二数据库模块204中数据的相同部分的版本号时,将所述第一数据库模块104中数据的一个部分同步到所述第二数据库模块204中。

具体地,第一数据库模块104和第二数据库模块204还用于为数据库中各个部分设置版本号。设置时,各个部分均具有一个初始版本号,当该部分数据更新时,第一数据库模块104(或第二数据库模块204)对该部分的版本号进行更新,在更新过程中,版本号逐渐变大,例如在当前版本号的基础上加1;或者,周期地对各个部分中有数据更新的部分进行版本号更新。第一数据库模块104(或第二数据库模块204)维护各个部分与其版本号的对于关系,例如通过一个表格存储上述关系。

第一心跳发布模块101和第二心跳发布模块201在发布心跳信息时,获取上述关系并根据该关系生产心跳信息。

在本发明实施例中,比较所述第一数据库模块104中数据的各个部分的版本号和所述第二数据库模块204中数据的各个部分的版本号,是指分别比较两个数据库中相同部分的版本号。例如,第一数据库模块104中数据和第二数据库模块204中的数据均分为1、2、3、4四个部分,则比较时,比较第一数据库模块104中数据部分1和第二数据库模块204中数据部分1的版本号,比较第一数据库模块104中数据部分2和第二数据库模块204中数据部分2的版本号,比较第一数据库模块104中数据部分3和第二数据库模块204中数据部分3的版本号,比较第一数据库模块104中数据部分4和第二数据库模块204中数据部分4的版本号。

具体地,所述第一数据同步模块105用于根据所述第二服务器20的IP地址更新所述第一数据库模块104;所述第二数据同步模块205用于根据所述第一服务器10的IP地址更新所述第二数据库模块204。其中,更新即前述将所述第一数据库模块104中数据同步到所述第二数据库模块204中,或者将所述第二数据库模块204中数据同步到所述第一数据库模块104中。

具体地,第一数据同步模块105采用第二服务器20的IP地址向第二服务器请求数据同步。此处,第二服务器20的IP地址即为第二服务器20中第二数据库模块204的IP地址。

其中,第一服务器10的IP地址可以在其启动时设置,第二服务器20的IP地址可以在其切换为主服务器是设置。

在本发明实施例的一种实现方式中,所述第一服务器10还可以包括第一服务管理模块106,所述第二服务器20还可以包括第二服务管理模块206;所述第一服务管理模块106用于在所述第一服务器10启动时,启动服务并记录服务启动时间;所述第二服务管理模块206用于在所述第二服务器20切换为主服务器时,启动服务并记录服务启动时间。

在本发明实施例中,第一服务器10和第二服务器20提供的服务完全相同,且第一服务器10和第二服务器20中存储的数据在每次同步后也完全相同。

在本发明实施例的一种实现方式中,所述第二主备切换模块203用于在设定时间内未接收到所述第一心跳信号时,将超时心跳计数器减一,当所述超时心跳计数器等于0时,将所述第二服务器20切换为主服务器,所述超时心跳计数器的初始值为所述阈值。

例如,心跳计数器的初始值为3,第二主备切换模块203在3秒内未接收到第一心跳信号,则将心跳计数器设置为2,第二主备切换模块203在下一个3秒内还没有接收到第一心跳信号,则将心跳计数器设置为1,直到心跳计数器为0。

而如果在心跳计数器的值变为0之前,接收到第一心跳信号,此时可以将心跳计数器重置为初始值;或者连续接收到设定个数的第一心跳信号后,将心跳计数器重置为初始值。

可选地,所述系统还可以包括服务器管理设备30,服务器管理设备30同时与第一服务器10和第二服务器20连接,具体可以通过网口进行有线连接。所述服务器管理设备30包括输入模块301和发送模块302;所述第一服务器10还包括第一接收模块107,所述第二服务器20还包括第二接收模块207;所述输入模块301用于获取用户输入的主备切换指令;所述发送模块302用于向所述第一服务器10和所述第二服务器20发送主备切换消息;所述第一接收模块107和所述第二接收模块207用于接收所述主备切换消息;所述第一主备切换模块103和所述第二主备切换模块203用于根据所述主备切换消息完成主备切换。

其中,输入模块301可以为键盘、按钮、触摸屏等,主备切换指令是指用户通过输入模块301进行输入操作时产生的控制指令,用于指示将第一服务器10或第二服务器20中的一个切换为主服务器,将另一服务器切换为备服务器。主备切换消息是根据主备切换指令生成的消息,其与主备切换指令作用相同,将其发送到第一服务器10和第二服务器20来完成切换指示,最终由第一服务器10和第二服务器20完成切换动作。

在这种实现方式中,通过服务器管理设备30主动控制主备服务器的切换,实现系统多样性。

在本发明实施例的一种实现方式中,所述发送模块302用于通过用户数据报协议(英文User Datagram Protocol,简称UDP)报文向所述第一服务器10和所述第二服务器20发送所述主备切换消息。

在本发明实施例的一种实现方式中,所述服务器管理设备30还可以包括第三心跳订阅模块303,所述第三心跳订阅模块303用于获取所述第一心跳信号和所述第二心跳信号。

在本发明实施例的一种实现方式中,所述服务器管理设备30还可以包括显示模块304,用于根据所述第一心跳信号和所述第二心跳信号,显示所述第一服务器10和所述第二服务器20的运行状态。其中运行状态可以包括服务器是否故障等。进一步地,所述服务器管理设备30还可以获取第一服务器10和所述第二服务器20的主备状态,从而显示当前的主服务器和备服务器设置。

其中,显示模块304可以为显示器。

在本发明实施例中,服务器管理设备30可以集成在第一服务器10或第二服务器20上;或者服务器管理设备30也可以为独立的设备。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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