[发明专利]SQLite数据库的备份方法和装置有效
申请号: | 201911407587.7 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111159156B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 谢春平;符志清 | 申请(专利权)人: | 杭州迪普科技股份有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F11/14 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 王茹 |
地址: | 310051 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sqlite 数据库 备份 方法 装置 | ||
1.一种SQLite数据库的备份方法,应用于存储设备中,其特征在于,所述方法包括:
打开所述存储设备上的至少一个选定数据库;
分别为所述至少一个选定数据库添加共享锁;
备份所述至少一个选定数据库;
释放所述至少一个选定数据库上的共享锁;
关闭所述至少一个选定数据库;
分别为所述至少一个选定数据库添加共享锁,具体包括:
轮询所述至少一个选定数据库,为轮询到的选定数据库添加共享锁,将未成功添加共享锁的选定数据库的标识保存在未完成链表中,并将添加次数加1;
确定所述未完成链表是否为空、以及所述添加次数是否达到设定阈值;
若确定所述未完成链表不为空且所述添加次数未达到所述设定阈值,则轮询所述未完成链表,为轮询到的选定数据库添加共享锁,将成功添加共享锁的选定数据库的标识从所述未完成链表中删除,并将所述添加次数加1,执行所述确定所述未完成链表是否为空、以及所述添加次数是否达到设定阈值的步骤;
若确定所述未完成链表为空且所述添加次数未达到所述设定阈值,则确定成功为所述至少一个选定数据库添加共享锁。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定所述未完成链表不为空且所述添加次数达到所述设定阈值,则发出共享锁添加失败提示信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定是否成功备份所述至少一个选定数据库;
若确定成功备份所述至少一个选定数据库,则在得到的备份文件中添加完整标记;
若确定未成功备份所述至少一个选定数据库,则发出未完成备份提示信息。
4.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
打开所述存储设备上的待写入数据库;
接收到至少一个写SQL语句后,执行预设命令开启事务;
依次申请所述事务对应的锁转换流程中包括的各个锁后,执行写操作;
确定是否成功完成所述写操作;
若确定成功完成所述写操作,则将写入的数据更新到所述待写入数据库中;若确定未成功完成所述写操作,则撤销所述写操作;
释放最后一个锁后关闭所述待写入数据库。
5.根据权利要求4所述的方法,其特征在于,依次申请所述事务对应的锁转换流程中包括的各个锁,具体包括:
针对所述事务对应的锁转换流程中包括的每个锁,执行:
确定当前锁的申请次数是否超过设定次数;
若确定所述当前锁的申请次数未超过所述设定次数,则等待设定时长后重新申请所述当前锁,确定是否成功申请所述当前锁,若确定成功申请所述当前锁,则确定在所述锁转换流程中所述当前锁是否是最后一个锁,若确定在所述锁转换流程中所述当前锁不是最后一个锁,则申请所述锁转换流程中所述当前锁之后的下一个锁;若确定未成功申请所述当前锁,则将所述当前锁的申请次数加1后,执行所述确定当前锁的申请次数是否超过设定次数的步骤;
若确定所述当前锁的申请次数超过所述设定次数,则发出所述当前锁的申请失败提示信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州迪普科技股份有限公司,未经杭州迪普科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911407587.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:位置调整方法和装置
- 下一篇:一种人脸图像清晰度的计算方法和装置