升级数据库的方法以及装置制造方法及图纸

技术编号:29788707 阅读:11 留言:0更新日期:2021-08-24 18:07
本说明书实施例提供升级数据库的方法以及装置,其中所述升级数据库的方法包括:通过对低版本主库的只读备库进行逻辑备份,获得与高版本主库兼容的备份文件以及所述只读备库在所述逻辑备份时的全局事务标识符的值;将所述备份文件导入所述高版本主库,以及,根据所述全局事务标识符的值设置所述高版本主库的全局事务标识符;将所述高版本主库设置为所述低版本主库的备库,以使所述高版本主库利用设置的全局事务标识符复制所述低版本主库的更新;在所述高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库。

【技术实现步骤摘要】
升级数据库的方法以及装置
本说明书实施例涉及数据库
,特别涉及一种升级数据库的方法。本说明书一个或者多个实施例同时涉及一种升级数据库的装置,一种计算设备,以及一种计算机可读存储介质。
技术介绍
由于弥补安全漏洞等因素,数据库版本不断升级。例如,目前,MySQL5.6版和5.7版本是使用最多的版本。但是,由于5.6版存在一些安全漏洞,官方已停止维护,并已推出了MySQL8.0,提供了大量新特性、性能优化和安全特性。目前,由于版本兼容性等原因,升级数据库暂无通用的热升级方案,一般是采用冷升级方案。但是在冷升级过程中,数据库须停止服务,会降低可用性。
技术实现思路
有鉴于此,本说明书施例提供了一种升级数据库的方法。本说明书一个或者多个实施例同时涉及一种升级数据库的装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。根据本说明书实施例的第一方面,提供了一种升级数据库的方法,包括:通过对低版本主库的只读备库进行逻辑备份,获得与高版本主库兼容的备份文件以及所述只读备库在所述逻辑备份时的全局事务标识符的值;将所述备份文件导入所述高版本主库,以及,根据所述全局事务标识符的值设置所述高版本主库的全局事务标识符;将所述高版本主库设置为所述低版本主库的备库,以使所述高版本主库利用设置的全局事务标识符复制所述低版本主库的更新;在所述高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库。可选地,所述高版本主库在创建时未设置备库;所述根据所述全局事务标识符的值设置所述高版本主库的全局事务标识符包括:在将所述备份文件导入所述高版本主库之前,在所述高版本主库执行清理数据库日志及重置全局事务标识符为空的指令;在所述备份文件导入所述高版本主库的情况下,利用所述备份文件包含的全局事务标识符的值,为所述高版本主库的数据库日志设置对应的全局事务标识符;所述方法还包括:在所述高版本主库与所述低版本主库的更新同步的情况下,为所述高版本主库建立备库。可选地,所述将备份文件导入所述高版本主库包括:将所述备份文件上传到存储系统;在所述备份文件上传到所述存储系统的情况下,从所述存储系统下载所述备份文件到所述高版本主库所在机器;在所述高版本主库执行针对所述备份文件的导入命令。可选地,所述在高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库包括:从所述高版本主库读取出已应用的低版本主库的日志的位点信息;从所述低版本主库读取出所述低版本主库的日志的最新位点信息;通过将所述高版本主库已应用的低版本主库的日志的位点信息与所述低版本主库的日志的最新位点信息进行比较,判断所述高版本主库与所述低版本主库是否接近更新同步或达到更新同步;如果否,返回到所述从高版本主库读取出已应用的低版本主库的日志的位点信息的步骤;如果接近更新同步,将所述低版本主库设置为只读模式,返回到所述从高版本主库读取出已应用的低版本主库的日志的位点信息的步骤;如果达到更新同步,将指向所述低版本主库的路由切换到所述高版本主库。可选地,还包括:在对所述只读备库进行逻辑备份之前,停止应用低版本主库的日志;在对所述只读备库完成逻辑备份之后,开启应用低版本主库的日志。可选地,所述在高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库包括:在所述高版本主库与所述低版本主库的更新同步的情况下,通过代理层将路由切换到所述高版本主库;或者,在所述高版本主库与所述低版本主库的更新同步的情况下,将所述低版本主库的域名修改为指向所述高版本主库。可选地,还包括:在对所述低版本主库的只读备库进行所述逻辑备份之前,关闭所述低版本主库清理本地日志的功能。根据本说明书实施例的第二方面,提供了一种升级数据库的装置,包括:备份模块,被配置为通过对低版本主库的只读备库进行逻辑备份,获得与高版本主库兼容的备份文件以及所述只读备库在所述逻辑备份时的全局事务标识符的值;导入模块,被配置为将所述备份文件导入所述高版本主库,以及,根据所述全局事务标识符的值设置所述高版本主库的全局事务标识符;复制更新模块,被配置为将所述高版本主库设置为所述低版本主库的备库,以使所述高版本主库利用设置的全局事务标识符复制所述低版本主库的更新;路由切换模块,被配置为在所述高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库。根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:通过对低版本主库的只读备库进行逻辑备份,获得与高版本主库兼容的备份文件以及所述只读备库在所述逻辑备份时的全局事务标识符的值;将所述备份文件导入所述高版本主库,以及,根据所述全局事务标识符的值设置所述高版本主库的全局事务标识符;将所述高版本主库设置为所述低版本主库的备库,以使所述高版本主库利用设置的全局事务标识符复制所述低版本主库的更新;在所述高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库。根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意一项所述升级数据库的方法的步骤。本说明书一个实施例提供了升级数据库的方法,该方法通过对低版本主库的只读备库进行逻辑备份,获得与高版本主库兼容的备份文件,因为在备份期间备库是只读状态,不影响低版本主库的写操作,不必中断服务。因为高版本主库对低版本只读备库逻辑备份得到的备份文件具有兼容性,因此,可以将备份文件导入高版本主库。而且,由于根据只读备库备份时的全局事务标识符的值设置高版本主库的全局事务标识符,使备份文件中的SQL语句内容与高版本主库的全局事务标识符所代表的数据状态相一致,从而在高版本主库设置为低版本主库的备库的情况下,可以利用该全局事务标识符复制低版本主库的更新。从而,在高版本主库与低版本主库的更新同步的情况下,可以将指向低版本主库的路由切换到高版本主库,完成数据库热升级。可见,本说明书实施例提供的方法通过导入具有兼容性的备份文件与更新复制相结合的方式,实现了版本的热升级,保证了读写服务不间断,即高可用性。附图说明图1是本说明书一个实施例提供的一种升级数据库的方法的流程图;图2是本说明书一个实施例提供的数据库结构示意图;图3是本说明书一个实施例提供的一种升级数据库的方法的处理过程流程图;图4是本说明书一个实施例提供的数据库结构示意图;图5是本说明书一个实施例提供的一种升级数据库的装置的结构示意图;图6是本说明书另一个实施例提供的一种升级数据库的装置的结构示意图;图7是本说明书一个实施例提供的一种计算设备的结构框图。具体实施方式在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同本文档来自技高网...

【技术保护点】
1.一种升级数据库的方法,包括:/n通过对低版本主库的只读备库进行逻辑备份,获得与高版本主库兼容的备份文件以及所述只读备库在所述逻辑备份时的全局事务标识符的值;/n将所述备份文件导入所述高版本主库,以及,根据所述全局事务标识符的值设置所述高版本主库的全局事务标识符;/n将所述高版本主库设置为所述低版本主库的备库,以使所述高版本主库利用设置的全局事务标识符复制所述低版本主库的更新;/n在所述高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库。/n

【技术特征摘要】
1.一种升级数据库的方法,包括:
通过对低版本主库的只读备库进行逻辑备份,获得与高版本主库兼容的备份文件以及所述只读备库在所述逻辑备份时的全局事务标识符的值;
将所述备份文件导入所述高版本主库,以及,根据所述全局事务标识符的值设置所述高版本主库的全局事务标识符;
将所述高版本主库设置为所述低版本主库的备库,以使所述高版本主库利用设置的全局事务标识符复制所述低版本主库的更新;
在所述高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库。


2.根据权利要求1所述的方法,所述高版本主库在创建时未设置备库;所述根据所述全局事务标识符的值设置所述高版本主库的全局事务标识符包括:
在将所述备份文件导入所述高版本主库之前,在所述高版本主库执行清理数据库日志及重置全局事务标识符为空的指令;
在所述备份文件导入所述高版本主库的情况下,利用所述备份文件包含的全局事务标识符的值,为所述高版本主库的数据库日志设置对应的全局事务标识符;
所述方法还包括:
在为所述高版本主库的数据库日志设置对应的全局事务标识符之后,为所述高版本主库建立备库。


3.根据权利要求1所述的方法,所述将备份文件导入所述高版本主库包括:
将所述备份文件上传到存储系统;
在所述备份文件上传到所述存储系统的情况下,从所述存储系统下载所述备份文件到所述高版本主库所在机器;
在所述高版本主库执行针对所述备份文件的导入命令。


4.根据权利要求1所述的方法,所述在高版本主库与所述低版本主库的更新同步的情况下,将指向所述低版本主库的路由切换到所述高版本主库包括:
从所述高版本主库读取出已应用的低版本主库的日志的位点信息;
从所述低版本主库读取出所述低版本主库的日志的最新位点信息;
通过将所述高版本主库已应用的低版本主库的日志的位点信息与所述低版本主库的日志的最新位点信息进行比较,判断所述高版本主库与所述低版本主库是否接近更新同步或达到更新同步;
如果否,返回到所述从高版本主库读取出已应用的低版本主库的日志的位点信息的步骤;
如果接近更新同步,将所述低版本主库设置为只读模式,返回到所述从高版本主库读取出已应用的低版本主库的日志的位点信息的步骤;
如果达到更新同步,将指向所述低版本主库的路由切换到所述高版本主库。

...

【专利技术属性】
技术研发人员:唐家勇王波
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1