【技术实现步骤摘要】
服务端程序和数据库的升级方法、装置和设备
本申请涉及数据库技术,尤其涉及一种服务端程序和数据库的升级方法、装置和设备。
技术介绍
服务端程序是一种采用客户端/服务端(C/S)结构、且运行在服务端并向用户提供业务服务的程序。服务端程序自上线提供服务后,通常都需要不断更新迭代。一般的,服务端程序在升级时,通常需要将服务端程序暂停服务后进行离线升级,待升级完成后,再次启动该升级后的服务端程序对外提供服务,这种升级方式往往造成用户在一段时间内的无法使用该服务端程序。因此,为了保证服务端程序持续对外提供服务,现有技术采用了轮转升级的方法对服务端程序进行升级,但是,该轮转升级的方法仅适用于不涉及数据库的服务端程序,而对于涉及数据库的服务端程序,该服务端程序的升级往往涉及到数据库表结构、数据内容的更新,而上述轮转升级的方法容易造成面向新旧服务端程序的数据库不一致,从而引发不兼容的问题。因此,为了避免上述问题,现有技术采用热备份的方式对数据库和服务端程序进行升级。具体为:首先对数据库进行热备份,获得两个数据库(正在提供服务的数据库A1和为升级准备的数据库为A2),两个数据库进行同步;然后在t1时刻,停止当前数据库的热备,对数据库A2执行数据库变更操作,并在数据库A2数据变更期间,升级前的服务端程序仍然读写数据库A1,待数据库A2变更完成后,启动升级后的服务端程序,并停止升级前的服务端程序,将访问请求引导到升级后的服务端程序进行处理;最后,将数据库A1在t1时刻之后的所有操作数据通过预先准备的订正语句导入上述变更后的数据库A2中,然后释放数据库A1,指示更新后的服务端程序指 ...
【技术保护点】
一种服务端程序和数据库的升级方法,其特征在于,所述服务端程序包括第一程序实体和第二程序实体;所述方法包括:禁用所述第二程序实体,随后更新所述第二程序实体;在更新所述第二程序实体之后,对当前对外提供服务的所述第一程序实体所使用的数据库进行兼容更新处理,获得第一数据库;控制更新后的第二程序实体接收访问请求并缓存所述访问请求;控制所述第一程序实体停止接收访问请求并更新所述第一程序实体,以及,对所述第一数据库进行非兼容更新处理,获得第二数据库。
【技术特征摘要】
1.一种服务端程序和数据库的升级方法,其特征在于,所述服务端程序包括第一程序实体和第二程序实体;所述方法包括:禁用所述第二程序实体,随后更新所述第二程序实体;在更新所述第二程序实体之后,对当前对外提供服务的所述第一程序实体所使用的数据库进行兼容更新处理,获得第一数据库;控制更新后的第二程序实体接收访问请求并缓存所述访问请求;控制所述第一程序实体停止接收访问请求并更新所述第一程序实体,以及,对所述第一数据库进行非兼容更新处理,获得第二数据库。2.根据权利要求1所述的方法,其特征在于,所述控制所述第一程序实体停止接收访问请求并更新所述第一程序实体,具体包括:控制所述第一程序实体停止接收访问请求,并在所述第一程序实体上的访问任务返回执行结果且在获得所述第二数据库之后,更新所述第一程序实体。3.根据权利要求1所述的方法,其特征在于,所述控制所述第一程序实体停止接收访问请求并更新所述第一程序实体,具体包括:控制所述第一程序实体停止接收访问请求,并在所述第一程序实体上的访问任务返回执行结果且在控制所述更新后的第二程序实体使用所述第二数据库对外提供业务服务之后,更新所述第一程序实体。4.根据权利要求1-3任一项所述的方法,其特征在于,所述禁用所述第二程序实体,随后更新所述第二程序实体,具体包括:控制所述第二程序实体停止接收访问请求,以禁用所述第二程序实体;在所述第二程序实体上的访问任务返回执行结果后,更新当前被禁用的第二程序实体。5.根据权利要求4所述的方法,其特征在于,所述控制所述第二程序实体停止接收访问请求,具体包括:配置所述第二程序实体中的请求接收器的工作状态为不使能disabled状态,以控制所述第二程序实体停止接收访问请求。6.根据权利要求1-3任一项所述的方法,其特征在于,所述控制更新后的第二程序实体接收访问请求并缓存所述访问请求,具体包括:配置所述更新后的第二程序实体中的请求接收器的工作状态为延缓请求hold模式,以控制所述更新后的第二程序实体接收访问请求并将所述访问请求进行缓存。7.根据权利要求6所述的方法,其特征在于,所述将所述访问请求进行缓存,具体包括:将所述访问请求缓存在所述更新后的第二程序实体的每个接收线程的堆栈中;或者,将所述访问请求缓存在所述更新后的第二程序实体的消息队列中;或者,将所述访问请求缓存在所述第一数据库中。8.根据权利要求1-3任一项所述的方法,其特征在于,所述控制所述第一程序实体停止接收访问请求,具体包括:配置所述第一程序实体中的请求接收器的工作状态为不使能disabled状态,以控制所述第一程序实体停止接收访问请求。9.根据权利要求1-3任一项所述的方法,其特征在于,所述兼容更新处理对应第一数据库操作集合,所述非兼容更新处理对应第二数据库操作集合;所述第一数据库操作集合至少包括:空操作、在所述数据库中增加新的数据库表的操作、在所述数据库中增加带有默认值的数据列的操作、在所述数据库中插入预设的数据行的操作;所述第二数据库操作集合至少包括:更改所述数据库中已有的数据库表或者数据库表中的列内容的操作、删除所述第一程序实体运行时所需的数据行的操作。10.根据权利要求1所述的方法,其特征在于,所述方法还包括:控制更新后的第一程序实体和更新后的第二程序实体采用所述第二数据库对外提供服务。11.一种服务端程序和数据库的升级装置,其特征在于,所述服务端程序包括第一程序实体和第二程序实体;所述装置包括:第一控制更新模块、第一数据库更新模块、缓存控制模块、第二控制更新模块和第二数据库更新模块;所述第一控制更新模块,用于禁用所述第二程序实体,随后更新所述第二程序实体;所述第一数据库更新模块,用于在所述第一控制更新模块更新所述第二程序实体之后,对当前对外提供服务的所述第一程序实体所使用的数据库进行兼容更新处理,获得第一数据库;所述缓存控制模块,用于控制更新后的第二程序...
【专利技术属性】
技术研发人员:王宏宇,尤宏伟,吕彪,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。