[发明专利]SQLite数据库的备份方法和装置有效
申请号: | 201911407587.7 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111159156B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 谢春平;符志清 | 申请(专利权)人: | 杭州迪普科技股份有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F11/14 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 王茹 |
地址: | 310051 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sqlite 数据库 备份 方法 装置 | ||
本申请提供一种SQLite数据库的备份方法及装置,应用于存储设备中,所述方法包括:打开所述存储设备上的至少一个选定数据库;分别为所述至少一个选定数据库添加共享锁;备份所述至少一个选定数据库;释放所述至少一个选定数据库上的共享锁;关闭所述至少一个选定数据库。应用本申请的实施例,可以消除相关技术中存在的漏洞,确保一次性备份完所有的选定数据库。
技术领域
本申请涉及网络通信技术领域,特别设计一种SQLite数据库的备份方法和装置。
背景技术
随着科技的飞速发展,企业及个人对各类信息系统、软件、网站的依赖性越来越高,数据库作为信息存储的核心技术担当着重要的角色。为了避免断电、设备异常卡死、版本升级不兼容、操作错误等造成数据库中存储的数据丢失,数据库备份尤为重要。
SQLite数据库是目前常用的一种数据库。请参见图1,图1为SQLite数据库的备份方法,包括:
S11:打开源数据库。
S12:打开备份数据库。
S13:创建备份数据库对象。
S14:申请到共享锁后调用创建的备份数据库对象拷贝源数据库中未拷贝页面中的设定数量的页面到备份数据库中,确定未拷贝页面的数量是否为零,若确定未拷贝页面的数量大于零,则执行S15;若确定未拷贝页面的数量为零,则执行S16。
S15:释放共享锁后主动暂停备份设定时长,并监控在设定时长内是否有其他进程对源数据库执行写操作。设定时长可以但不限于设定为200毫秒,由于在设定时长内不会在源数据库上持有共享锁,其他业务进程可以对源数据执行写操作,若监控到其他进程对源数据库执行写操作,则需要重新备份整个源数据库,执行S14,将整个源数据库中的页面作为未拷贝页面,若未监控到其他进程对源数据库执行写操作,则执行S14,将源数据库中除去已拷贝页面之外的页面作为未拷贝页面。
S16:释放备份数据库对象。
S17:关闭备份数据库。
S18:关闭源数据库。
上述方法中,如果在设定时长内有某个进程长时间频繁对源数据库执行写操作,可能导致S14与S15不断切换,而无法成功备份源数据库。因此,上述SQLite数据库的备份方法存在漏洞,无法确保成功备份源数据库。
发明内容
有鉴于此,本申请提供一种SQLite数据库的备份方法和装置,以解决相关技术中存在漏洞,无法确保成功备份源数据库的问题。
具体地,本申请是通过如下技术方案实现的:
一种SQLite数据库的备份方法,应用于存储设备中,所述方法包括:
打开所述存储设备上的至少一个选定数据库;
分别为所述至少一个选定数据库添加共享锁;
备份所述至少一个选定数据库;
释放所述至少一个选定数据库上的共享锁;
关闭所述至少一个选定数据库。
一种SQLite数据库的备份装置,应用于存储设备中,所述装置包括:
第一打开模块,用于打开所述存储设备上的至少一个选定数据库;
添加模块,用于分别为所述至少一个选定数据库添加共享锁;
备份模块,用于备份所述至少一个选定数据库;
第一释放模块,用于释放所述至少一个选定数据库上的共享锁;
关闭模块,用于关闭所述至少一个选定数据库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州迪普科技股份有限公司,未经杭州迪普科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911407587.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:位置调整方法和装置
- 下一篇:一种人脸图像清晰度的计算方法和装置