软件升级方法及装置与流程

文档序号:20699045发布日期:2020-05-12 15:24阅读:141来源:国知局
软件升级方法及装置与流程

本发明涉及软件技术,尤其涉及一种软件升级方法及装置。



背景技术:

主备容灾集群通常应用在对可靠性要求很高的系统中,使用主备容灾集群可以保证在系统出现单点故障时整个系统的业务不中断。这种技术在计算机、通信等领域中有广泛的应用。

在主备容灾集群中,通常具有多个节点,当对主备容灾集群中的节点升级时,通常是先升级一个节点,在升级该一个节点时,可由另一个节点继续提供服务。如此便可保证升级过程中系统业务不会中断。

在节点的升级过程中,升级节点的数据库的结构可能会发生改变,例如数据库的表项可能会被删除,因此在提供服务的节点所产生的业务数据难以同步到升级的节点上。也就是说在节点升级过程中产生的业务数据无法保留,导致相关的系统业务无法正常处理。



技术实现要素:

本发明提供一种软件升级方法及装置,以避免在节点升级过程中产生的业务数据无法保留。

本发明提供一种软件升级方法,包括:

根据第一升级指令,控制第一节点进行软件升级,使得该第一节点升级后的数据库包括:该第一节点升级之前的数据库的表项;

根据第一业务指令,控制第二节点在所述第一节点进行升级的过程中处理系统业务,产生业务数据;

在该第一节点的升级完成之后,控制所述第一节点将所述第二节点上的所述业务数据同步至所述第一节点。

可选的,该第一节点升级后的数据库所包括的表项,等于,该第一节点升级前的数据库中的表项;

或者;

该第一节点升级后的数据库所包括的表项,多于,该第一节点升级前的数据库中的表项。

具体的,该控制该第二节点将该业务数据同步至该第一节点包括:

控制该第一节点从该第二节点获取该第二节点上的数据库二进制日志,并获取该数据库二进制日志的位置;

控制该第一节点将该数据库二进制日志保存为数据库中继日志;

控制该第一节点执行该数据库中继日志中的记录,以将该数据库二进制日志中记录的变动同步到该第一节点的数据库上。

进一步的,该控制该第二节点将该业务数据同步至该第一节点还包括:

控制该第二节点将该业务数据中,与历史业务数据不同的文件类型的数据同步到该第一节点。

可选的,本发明提供的方法还包括:

根据第二升级指令,控制该第二节点进行软件升级,使得该第二节点升级后的数据库包括:该第二节点升级之前的数据库的表项;

根据第二业务指令,控制该第一节点在所述第二节点进行升级的过程中处理系统业务,产生业务数据;

在该第二节点的升级完成之后,控制所述第二节点将所述第一节点上的所述业务数据同步至所述第二节点。

在实际应用中,该第一节点为备节点,该第二节点为主节点;或者,该第一节点为主节点,该第二节点为备节点。

本发明还可提供一种软件升级装置,包括:

第一升级模块,用于根据第一升级指令,控制第一节点进行软件升级,使得该第一节点升级后的数据库包括:该第一节点升级之前的数据库的表项;

第一业务模块,用于根据第一业务指令,控制第二节点在所述第一节点进行升级的过程中处理系统业务,产生业务数据;

第一同步模块,用于在该第一节点的升级完成之后,控制所述第一节点将所述第二节点上的所述业务数据同步至所述第一节点。

具体的,该第一同步模块包括:

获取单元,用于控制该第一节点从该第二节点获取该第二节点上的数据库二进制日志,并获取该数据库二进制日志的位置;

复制单元,用于控制该第一节点将该数据库二进制日志保存为数据库中继日志;

第一同步单元,用于控制该第一节点执行该数据库中继日志中的记录,以将该数据库二进制日志中记录的变动同步到该第一节点的数据库上。

进一步的,该第一同步模块还包括:

第二同步单元,用于控制该第二节点将该业务数据中,与历史业务数据不同的文件类型的数据同步到该第一节点。

可选的,该装置还包括:

第二升级模块,用于根据第二升级指令,控制该第二节点进行软件升级,使得该第二节点升级后的数据库包括:该第二节点升级之前的数据库的表项;

第二业务模块,用于根据第二业务指令,控制该第一节点在所述第二节点进行升级的过程中处理系统业务,产生业务数据;

第二同步模块,用于在该第二节点的升级完成之后,控制所述第二节点将所述第一节点上的所述业务数据同步至所述第二节点。

本发明提供一种软件升级方法及装置,该软件升级方法包括根据升级指令,控制第一节点进行软件升级,使得该第一节点升级后的数据库包括:该第一节点升级之前的数据库的表项;根据业务指令,控制第二节点在所述第一节点进行升级的过程中处理系统业务,产生业务数据;在该第一节点的升级完成之后,控制该第二节点将该业务数据同步至该第一节点。该方法通过升级指令的控制使得第一节点升级后的数据库包括了该第一节点升级之前的数据库的表项,从而在第一节点升级完成后,可以将处理系统业务的第二节点上产生的业务数据同步到第一节点上,使得节点升级过程中产生的业务数据得以保留,保证了系统业务的正常处理。

附图说明

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

图1为本发明提供的软件升级方法实施例一的流程图;

图2为本发明提供的软件升级方法实施例二的流程图;

图3为本发明提供的软件升级方法实施例三的流程图;

图4为本发明提供的软件升级装置实施例一的框图;

图5为本发明提供的软件升级装置实施例二的框图;

图6为本发明提供的软件升级装置实施例三的框图;

图7为本发明提供的服务器的框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明提供的软件升级方法实施例一的流程图。该软件升级方法可由控制设备执行,该控制设备可以对集群中各个节点的升级进行控制,例如,该控制设备可以为集群中专门用于进行节点管理的一个节点,还可以为集群中既可处理系统业务还可进行节点管理的一个节点。该控制设备还可称为软件升级设备。

如图1所示,本实施例的方法可以包括:

步骤101、根据第一升级指令,控制第一节点进行软件升级,使得该第一节点升级后的数据库包括:该第一节点升级之前的数据库的表项。

在使用主备容灾集群中的系统中,集群中的各个节点具有相同的软件版本,且集群中各个节点对应的数据库中存储有相同的业务数据。在进行集群的软件升级时,集群中的各个节点均需要升级到相同的版本以使得各个节点仍能保持互为主备容灾。同时,为了尽可能减少升级过程对系统业务的影响,通常将集群中的节点分批次进行升级。本实施例中,可以优先对其中一个一个,如第一节点进行升级。

在实际应用中,集群中的节点可以被统一管理,例如各节点被集群中的控制设备通过管理软件进行统一管理。在进行集群软件升级时,可以由控制设备通过该管理软件向第一节点发送第一升级指令,第一节点在接收到第一升级指令后,便可根据第一升级指令进行升级,该第一升级指令可以为第一节点对应的软件升级代码。该第一节点可通过运行该第一升级指令的代码,进行软件升级。

第一节点进行软件升级的过程中,还对该第一节点的数据库进行升级。因而,该第一升级指令中包括有,数据库升级代码。该第一节点可通过运行该第一升级指令中的数据库升级代码,使得第一节点升级前的数据库中的表项均被保留在升级后的数据库中,也就是第一节点升级后的数据库包括了该第一节点升级之前的数据库的表项。

控制设备,可通过该第一升级指令中的数据库升级代码,控制第一节点的数据库升级,从而使得第一节点升级后的数据库包括:该第一节点升级之前的数据库的表项。

可选的,该第一节点升级后的数据库所包括的表项可以等于该第一节点升级前的数据库中的表项,也就是在第一节点升级前和升级后其数据库中包括的表项没有产生变化,例如数据库中包括的表、表中包括的字段等都未产生变化。

可选的,该第一节点升级后的数据库所包括的表项还可以多于该第一节点升级前的数据库中的表项,也就是该第一节点升级后的数据库中除了包括该第一节点升级前的表项,还包括了在升级过程中新产生的表项,例如数据库中包括了新增的表或者表中包括了新增的字段。

步骤102、根据第二业务指令,控制第二节点在该第一节点进行升级的过程中处理系统业务,产生业务数据。

在第一节点进行升级的过程中,为使得系统业务不中断,可由控制设备将第二业务指令发送至第二节点,以控制第二节点在该第一节点进行升级的过程中处理系统业务。该第二业务指令中可包括互联网协议地址(internetprotocoladdress,简称ip地址),用以使得第二阶段根据该ip地址,处理系统业务。在实际应用中,集群中具有一个ip地址,集群通过该ip地址对外提供各种业务,该ip地址被分配在集群中的哪个节点上,就由哪个节点来处理系统业务,该ip地址称为集群的浮动ip地址。例如,控制设备可以将该浮动ip地址分配在第一节点上,控制第一节点处理系统业务;若第一节点发生故障导致该节点不可用,控制设备还可再将该浮动ip地址分配至第二节点,控制第二节点处理系统业务。

本实施例中,在第一节点开始升级前,可以由第一业务指令控制将该浮动ip地址分配在第二节点上,从而使得在该第一节点升级的过程中由该第二节点处理系统业务。第二节点处理系统业务的过程中,会产生与其处理的系统业务相关的各种业务数据,例如,使用系统业务的用户的相关信息。这些业务数据均存储在第二节点上。

在实际应用中,该第一节点可以为备节点,该第二节点为主节点;或者,该第一节点为主节点,该第二节点为备节点。也就是说,本实施例提供的方案,可先对备节点进行软件升级,在对备节点进行升级的过程中,由主节点处理业务;也可先对主节点进行软件升级,在对主节点进行升级的过程中,由主节点处理业务。

步骤103、在该第一节点的升级完成之后,控制该第一节点将该第二节点上的该业务数据同步至该第一节点。

由于在第一节点升级的过程中,第二节点在处理系统业务时产生了业务数据,而该些业务数据存储在第二节点的数据库中,后续的系统业务处理中可能会使用到这些已存储的业务数据,为保持节点之间的业务数据的一致,需要将第二节点上产生的业务数据同步至第一节点。

通过执行步骤101可使得第一节点升级后的数据库包括该第一节点升级之前的数据库的表项,而第一节点升级前的数据库中的表项与第二节点的数据库中的表项相同,因此这样,就可以将第二节点上产生的业务数据,复制到第一节点的数据库中的对应表项中。

本实施例提供的软件升级方法,包括根据升级指令,控制第一节点进行软件升级,使得该第一节点升级后的数据库包括:该第一节点升级之前的数据库的表项;根据业务指令,控制第二节点在所述第一节点进行升级的过程中处理系统业务,产生业务数据;在该第一节点的升级完成之后,控制该第一节点将该第二节点上的该业务数据同步至该第一节点。该方法通过升级指令的控制使得第一节点升级后的数据库包括了该第一节点升级之前的数据库的表项,从而在第一节点升级完成后,可以将处理系统业务的第二节点上产生的业务数据同步到第一节点上,使得节点升级过程中产生的业务数据得以保留,保证了系统业务的正常运行。

在上述图1所示实施例的基础上,本发明还可提供一种软件升级方法,

图2为本发明提供的软件升级方法实施例二的流程图。如图2所示,在图1所示实施例的基础上,步骤103中的控制该第一节点将该第二节点上的该业务数据同步至该第一节点可以包括:

步骤201、控制该第一节点从该第二节点获取该第二节点上的数据库的二进制日志,并获取该数据库的二进制日志的位置。

在第二节点处理系统业务的过程中,第二节点上产生的业务数据被存储在第二节点的数据库中,因此在此过程中第二节点的数据库中存储的数据会发生变动,而数据库的这些变动被记录在数据库的二进制日志((binarylog,简称binlog)中。第一节点从第二节点获取到在第一节点升级过程中第二节点数据库产生的二进制日志,该二进制日志包括:第二节点的数据库发生变动的记录,以及记录这些变动的事件的位置信息,也就是二进制日志的位置。

步骤202、控制该第一节点将该数据库二进制日志保存为数据库中继日志。

第一节点获得第二节点上的数据库二进制日志后,将该二进制日志保存为自己的中继日志(relaylog),因此中继日志同样包括:上述第二节点数据库发生的变动。在数据库中,一个节点上的二进制日志仅用于记录本节点的数据库产生的变动,而中继日志中则是本节点从其他节点获得的二进制日志,数据库进行同步的机制是将其他节点的二进制日志保存为本节点的中继日志,之后通过中继日志将其他节点的变动同步到本节点。

步骤203、控制该第一节点执行该数据库中继日志中的记录,以将该数据库中继日志中记录的变动同步到该第一节点的数据库上。

第一节点读取中继日志的内容,并按照中继日志中的数据库的变动记录来执行相应的操作,以使得在第二节点上执行过的使得第二节点数据库产生变动的操作在第一节点上相应的被执行。这样,就可使得第一节点数据库中的数据重新与第二节点数据库中的数据保持一致。

另外,由于在步骤201中第一节点获取了该数据库二进制日志的位置,因此及时在执行上述同步的过程中被中断,在恢复后也能根据二进制日志的位置,从中断的地方继续进行同步。

可选的,如上所示的步骤103中的控制该第一节点将该第二节点上的该业务数据同步至该第一节点还可包括:

步骤204、控制该第二节点将该业务数据中,与历史业务数据不同的文件类型的数据同步到该第一节点。

在第二节点上产生的业务数据中,除了上述通过二进制日志和中继日志来进行同步的数据库格式的数据外,还有在第二节点上以文件类型存储的数据,例如,存储于第二节点的磁盘中的配置文件等。这些文件类型的数据并未存储在数据库中,而是存储于第二节点的其他存储设备中,因此在第一节点升级完成后,除了要将第二节点的数据库中的数据进行上述同步之外,还需要对这些文件类型的数据进行同步。对于文件类型的数据,第二节点可以将其增量复制到第一节点上,也就是仅将其中与历史业务数据不同的部分同步到第一节点上,以提高同步效率。

本实施例提供的软件升级方法,在图1所示实施例的基础上,控制该第一节点将该第二节点上的该业务数据同步至该第一节点包括:控制该第一节点从该第二节点获取该第二节点上的数据库二进制日志,并获取该数据库二进制日志的位置;控制该第一节点将该数据库二进制日志保存为数据库中继日志;控制该第一节点执行该数据库中继日志中的记录,以将该数据库二进制日志中记录的变动同步到该第一节点的数据库上;控制该第二节点将该业务数据中,与历史业务数据不同的文件类型的数据同步到该第一节点。该方法中第一节点通过获取第二节点的二进制日志,从而将二进制日志中记录的数据库的变动相应的复制在第一节点,从而实现第一节点和第二节点数据库的同步,使得节点升级过程中产生的业务数据得以保留,保证了系统业务的正常处理。

在上述图1所示实施例一的基础上,本发明还可提供一种软件升级方法,

图3为本发明提供的软件升级方法实施例三的流程图。如图3示,在图1所示实施例的基础上,该方法还可包括:

步骤301、根据第二升级指令,控制该第二节点进行软件升级,使得该第二节点升级后的数据库包括:该第二节点升级之前的数据库的表项。

在步骤103中将第二节点上的业务数据同步至第一节点之后,即可进行第二节点的升级。具体的,由控制设备通过管理软件向第二节点发送第二升级指令,第二节点在接收到第二升级指令后,便可根据第二升级指令进行升级,该第二升级指令可以为第二节点对应的软件升级代码。该第二节点可通过运行该第二升级指令的代码,进行软件升级。

该第二节点还可通过运行该第二升级指令中的数据库升级代码,使得第二节点升级前的数据库中的表项均被保留在升级后的数据库中,也就是第二节点升级后的数据库包括了该第二节点升级之前的数据库的表项。同时,第二节点升级之后的软件版本与第一节点升级之后的软件版本一致,两者的数据库所包括的表项也相同。

步骤302、根据第二业务指令,控制该第一节点在所述第二节点进行升级的过程中处理系统业务,产生业务数据。

在第二节点开始升级之前,控制设备通过发送第二业务指令控制将集群的浮动ip地址分配在第一节点上,从而使得在该第二节点升级的过程中由该第一节点处理系统业务。例如第二业务指令中可以包括主备切换指令,用以将在步骤102中分配到第二节点的浮动ip地址重新分配到第一节点上。第一节点处理系统业务的过程中,会产生与其处理的系统业务相关的各种业务数据,例如,使用系统业务的用户的相关信息。这些业务数据均存储在第一节点上。

步骤303、在该第二节点的升级完成之后,控制所述第二节点将所述第一节点上的所述业务数据同步至所述第二节点。

由于在第二节点升级的过程中,第一节点在处理系统业务时产生了业务数据,而该些业务数据存储在第一节点的数据库中,后续的系统业务处理中可能会使用到这些已存储的业务数据,为保持节点之间的业务数据的一致,需要将第一节点上产生的业务数据同步至第一节点。

通过执行步骤301可使得第二节点升级后的数据库包括该第二节点升级之前的数据库的表项,并且还与第一节点升级之后的数据库的表项一致,因此这样,就可以将第一节点上产生的业务数据,复制到第二节点的数据库中的对应表项中。

可选的,在步骤101之前,该方法还可包括:控制第一节点和第二节点之间的自动同步停止;在步骤303之后,该方法还可包括:控制第一节点和第二节点之间的自动同步启动。第一节点和第二节点之间的自动同步包括文件类型的数据的同步以及数据库的同步。数据库同步时,第一节点和第二节点的数据库处于双主复制状态,每侧产生的新的业务数据都会被复制到另一侧。

本实施提供的软件升级方法,可以在第一节点升级时由第二节点处理系统业务,将第二节点上产生的业务数据同步至第一节点;之后,可进行节点切换,在第二节点升级时由第一节点处理系统业务,将第一节点上产生的业务数据同步至第二节点。该方法中仅在进行节点切换的过程中系统业务不可用,其他时间系统业务均可正常使用,用户使用体验更好。同时,在集群各个节点的升级过程中产生的业务数据都能够保留下来,保证了系统业务的正常处理。

本发明还可提供一种软件升级装置。图4为本发明提供的软件升级装置实施例一的框图。如图4所示,该装置包括:

第一升级模块41,用于根据第一升级指令,控制第一节点进行软件升级,使得所述第一节点升级后的数据库包括:所述第一节点升级之前的数据库的表项。

第一业务模块42,用于根据第一业务指令,控制第二节点在该第一节点进行升级的过程中处理系统业务,产生业务数据。

第一同步模块43,用于在所述第一节点的升级完成之后,控制所述第二节点将所述业务数据同步至所述第一节点。

本实施例提供的软件升级装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在图4所示的实施例的基础上,本发明还可提供一种软件升级装置。图5为本发明提供的软件升级装置实施例二的框图。如图5所示,在图4所示装置的基础上,第一同步模块43包括:

获取单元51,用于控制所述第一节点从所述第二节点获取所述第二节点上的数据库二进制日志,并获取所述数据库二进制日志的位置;

复制单元52,用于控制所述第一节点将所述数据库二进制日志保存为数据库中继日志;

第一同步单元53,用于控制所述第一节点执行所述数据库中继日志中的记录,以将所述数据库二进制日志中记录的变动同步到所述第一节点的数据库上。

第二同步单元54,用于控制所述第二节点将所述业务数据中,与历史业务数据不同的文件类型的数据同步到所述第一节点。

本实施例提供的软件升级装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在图4所示的实施例的基础上,本发明还可提供一种软件升级装置。图6为本发明提供的软件升级装置实施例三的框图。如图6所示,该装置还包括:

第二升级模块61,用于根据第二升级指令,控制第二节点进行软件升级,使得所述第二节点升级后的数据库包括:所述第二节点升级之前的数据库的表项;

第二业务模块62,用于根据第二业务指令,控制第一节点在该第二节点进行升级的过程中处理系统业务,产生业务数据;

第二同步模块63,用于在所述第二节点的升级完成之后,控制所述第一节点将所述业务数据同步至所述第二节点。

本实施例提供的软件升级装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本发明还可以提供一种控制设备。图7为本发明提供的控制设备的框图。如图7所示,控制设备70包括:存储器71和处理器72;

存储器71和处理器72连接;

存储器71用于存储程序指令;

处理器72用于调用存储器71存储的程序指令,使得控制设备70执行图1-3所示实施例的软件升级方法。其实现原理和技术效果类似,此处不再赘述。

可选的,控制设备70可以为服务器。

本发明还可提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可以实现上述图1-3所示实施例的软件升级方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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