[发明专利]服务端程序和数据库的升级方法、装置和设备在审
申请号: | 201610811502.1 | 申请日: | 2016-09-08 |
公开(公告)号: | CN107807816A | 公开(公告)日: | 2018-03-16 |
发明(设计)人: | 王宏宇;尤宏伟;吕彪 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F17/30 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 杨泽,刘芳 |
地址: | 开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 服务端 程序 数据库 升级 方法 装置 设备 | ||
技术领域
本申请涉及数据库技术,尤其涉及一种服务端程序和数据库的升级方法、装置和设备。
背景技术
服务端程序是一种采用客户端/服务端(C/S)结构、且运行在服务端并向用户提供业务服务的程序。服务端程序自上线提供服务后,通常都需要不断更新迭代。一般的,服务端程序在升级时,通常需要将服务端程序暂停服务后进行离线升级,待升级完成后,再次启动该升级后的服务端程序对外提供服务,这种升级方式往往造成用户在一段时间内的无法使用该服务端程序。因此,为了保证服务端程序持续对外提供服务,现有技术采用了轮转升级的方法对服务端程序进行升级,但是,该轮转升级的方法仅适用于不涉及数据库的服务端程序,而对于涉及数据库的服务端程序,该服务端程序的升级往往涉及到数据库表结构、数据内容的更新,而上述轮转升级的方法容易造成面向新旧服务端程序的数据库不一致,从而引发不兼容的问题。
因此,为了避免上述问题,现有技术采用热备份的方式对数据库和服务端程序进行升级。具体为:首先对数据库进行热备份,获得两个数据库(正在提供服务的数据库A1和为升级准备的数据库为A2),两个数据库进行同步;然后在t1时刻,停止当前数据库的热备,对数据库A2执行数据库变更操作,并在数据库A2数据变更期间,升级前的服务端程序仍然读写数据库A1,待数据库A2变更完成后,启动升级后的服务端程序,并停止升级前的服务端程序,将访问请求引导到升级后的服务端程序进行处理;最后,将数据库A1在t1时刻之后的所有操作数据通过预先准备的订正语句导入上述变更后的数据库A2中,然后释放数据库A1,指示更新后的服务端程序指向最终的数据库A2。
但是,现有技术的这种升级服务端程序和数据库的方法,对于大容量的数据库,备份时间长,资源浪费严重,并且当升级后的服务端程序已经采用变更后的数据库A2对外提供服务时,升级前的服务端程序对数据库的更改所产生的增量数据正在向变更后的数据库A2中迁移,数据不一致风险较大。
发明内容
本申请提供一种服务端程序和数据库的升级方法、装置和设备,以解决现有技术采用热备的方法升级服务端程序和数据库时,所导致的备份时间长,资源浪费严重的技术问题,并且解决现有技术中当升级后的服务端程序已经采用变更后的数据库对外提供服务时,升级前的服务端程序对数据库的更改所产生的增量数据正在向变更后的数据库中迁移,引发数据不一致的技术问题。
一个方面,本申请提供一种服务端程序和数据库的升级方法,所述服务端程序包括第一程序实体和第二程序实体;所述方法包括:
禁用所述第二程序实体,随后更新所述第二程序实体;
在更新所述第二程序实体之后,对当前对外提供服务的所述第一程序实体所使用的数据库进行兼容更新处理,获得第一数据库;
控制更新后的第二程序实体接收访问请求并缓存所述访问请求;
控制所述第一程序实体停止接收访问请求并更新所述第一程序实体,以及,对所述第一数据库进行非兼容更新处理,获得第二数据库。
上述所提供的服务端程序和数据库的升级方法,通过在更新当前被禁用的第二程序实体之后,对当前对外提供服务的第一程序实体所使用的数据库进行兼容更新处理得到第一数据库,然后在服务端设备在控制第一程序实体停止接收访问请求后,控制更新后的第二程序实体接收并缓存访问请求,并更新上述第一程序实体以及对第一数据库进行非兼容更新处理,获得第二数据库。本申请实施例中,通过兼容更新处理所得到第一数据库,使得当前对外提供服务的第一程序实体针对同一个访问请求,在访问升级前的数据库所得到的结果和访问兼容更新处理后的数据库(即第一数据库)所得到的结果相同,确保当前对外提供服务的第一程序实体访问升级前后的数据库时访问数据一致,避免访问结果出错;同时,通过服务端设备在第一程序实体停止接收访问请求时,控制更新后的第二程序实体接收并缓存访问请求,从而对于外部设备来讲,服务器端设备当前仍然在接收访问请求,服务端程序对外提供的业务并没有中断,保证了外部设备通过服务端程序访问数据库时的连续性;另外,服务端设备通过控制上述对升级前的数据库进行兼容更新处理和非兼容更新处理的顺序,从而使得升级前的数据库得到完整的升级操作,并且不会带来升级前后的服务端程序访问升级前的数据库和访问升级后的数据库时出现访问错误的问题,也无需对升级前的数据库进行热备,大大的节省了热备资源,并且,也不存在升级前后的数据库之间的增量数据迁移,避免出现升级前后服务端程序访问数据不一致的问题。
作为一种可实现的方式,所述控制所述第一程序实体停止接收访问请求并更新所述第一程序实体,具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610811502.1/2.html,转载请声明来源钻瓜专利网。