[发明专利]一种基于动态库的数据库系统在线升级方法和系统在审
申请号: | 202110585971.7 | 申请日: | 2021-05-27 |
公开(公告)号: | CN113296822A | 公开(公告)日: | 2021-08-24 |
发明(设计)人: | 王金山 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F8/656 | 分类号: | G06F8/656;G06F16/21 |
代理公司: | 北京汇信合知识产权代理有限公司 11335 | 代理人: | 林聪源 |
地址: | 100086 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 数据库 系统 在线 升级 方法 | ||
本发明公开了一种基于动态库的数据库系统在线升级方法和系统,属于数据库技术领域,所述方法包括:将数据库系统的升级内容封装为动态库;加载所述动态库到内存中;将所述数据库系统的待升级内容替换为所述动态库。通过将升级内容封装为动态库,并加载到内存中,替换动态库的调用关系,使数据库系统调用新版本的动态库,从而实现升级的作用,避免了繁琐的升级步骤,避免了数据库服务中断,实现无感或低感升级,利于提高用户体验。
技术领域
本发明涉及数据库技术领域,具体涉及一种基于动态库的数据库系统在线升级方法和系统。
背景技术
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合,已广泛应用到各个技术领域,例如平台即服务(PaaS)。PaaS服务系统需要7X24小时不间断运行,服务不能中断,更不允许重启。但是,当数据库系统发现重大漏洞,或者增强功能时,又不得不停止PaaS服务进程,进行离线升级。
随着主备复制技术的增强,很多数据库系统会采用一主多备的模式,这样可以先停止备库,升级备库,然后再将服务从主库切换到备库,接下来再升级主库。通过主备库交替对外提供服务,间接实现了在线升级,但是交替服务易导致当前连接全部断开,当前事务全部失败回滚,并且要求应用系统支持事先制定的高可用机制,才能保证正常切换,操作步骤繁琐,用户感知同样不好,导致数据库升级困难。
发明内容
针对现有技术中存在的上述技术问题,本发明提供一种基于动态库的数据库系统在线升级方法和系统,通过将升级内容封装到动态库中,加载动态库后再进行替换,便于无感升级。
本发明公开了一种基于动态库的数据库系统在线升级方法,所述方法包括:将数据库系统的升级内容封装为动态库;加载所述动态库到内存中;将所述数据库系统的待升级内容替换为所述动态库。
优选的,所述升级内容包括可执行代码,所述可执行代码的在线升级方法包括:
将可执行代码封装为动态库;
将所述动态库加载到进程空间;
将所述数据库系统的指针或函数指针指向所述可执行代码。
优选的,所述可执行代码包括以下任一函数或它们的组合:定时检测函数、连接创建函数和数据库操作函数;
其中,定时检测函数用于定时监听系统的服务,所述连接创建函数用于创建和释放连接的执行进程,执行进程用于调用所述数据库操作函数,所述数据库操作函数用于接收并执行数据库的操作指令。
优选的,所述方法还包括结束动态库的方法:
监听当前动态库提供服务的调用情况;
判断所述服务是否停止调用;
若是,结束所述服务、并释放当前动态库的进程空间。
优选的,数据库操作的方法包括:
判断动态库提供的服务是否结束;
若否,将新连接请求转发给连接创建函数;
通过连接创建函数创建新连接的执行线程;
通过所述执行线程接收新连接请求的数据库操作请求、执行相应的数据库操作,并返回操作结果。
优选的,所述方法还包括通过监听动态库升级数据库系统的方法:
监听动态库;
判断所述动态库是否有新版本;
若是,将所述数据库系统的指针或指针函数指向所述新版本动态库的可执行代码。
优选的,监听指定目录下的动态库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110585971.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种撒肥机
- 下一篇:一种呼吸科胸膜疾病患者穿刺引流装置及其使用方法