【技术实现步骤摘要】
SQLite数据库的备份方法和装置
本申请涉及网络通信
,特别设计一种SQLite数据库的备份方法和装置。
技术介绍
随着科技的飞速发展,企业及个人对各类信息系统、软件、网站的依赖性越来越高,数据库作为信息存储的核心技术担当着重要的角色。为了避免断电、设备异常卡死、版本升级不兼容、操作错误等造成数据库中存储的数据丢失,数据库备份尤为重要。SQLite数据库是目前常用的一种数据库。请参见图1,图1为SQLite数据库的备份方法,包括:S11:打开源数据库。S12:打开备份数据库。S13:创建备份数据库对象。S14:申请到共享锁后调用创建的备份数据库对象拷贝源数据库中未拷贝页面中的设定数量的页面到备份数据库中,确定未拷贝页面的数量是否为零,若确定未拷贝页面的数量大于零,则执行S15;若确定未拷贝页面的数量为零,则执行S16。S15:释放共享锁后主动暂停备份设定时长,并监控在设定时长内是否有其他进程对源数据库执行写操作。设定时长可以但不限于设定为200毫秒,由于在设定时长内不会在源数据库上持有共享锁,其他业务进程可以对源数据执行写操作,若监控到其他进程对源数据库执行写操作,则需要重新备份整个源数据库,执行S14,将整个源数据库中的页面作为未拷贝页面,若未监控到其他进程对源数据库执行写操作,则执行S14,将源数据库中除去已拷贝页面之外的页面作为未拷贝页面。S16:释放备份数据库对象。S17:关闭备份数据库。S18:关闭源数据库。上述方法中, ...
【技术保护点】
1.一种SQLite数据库的备份方法,应用于存储设备中,其特征在于,所述方法包括:/n打开所述存储设备上的至少一个选定数据库;/n分别为所述至少一个选定数据库添加共享锁;/n备份所述至少一个选定数据库;/n释放所述至少一个选定数据库上的共享锁;/n关闭所述至少一个选定数据库。/n
【技术特征摘要】
1.一种SQLite数据库的备份方法,应用于存储设备中,其特征在于,所述方法包括:
打开所述存储设备上的至少一个选定数据库;
分别为所述至少一个选定数据库添加共享锁;
备份所述至少一个选定数据库;
释放所述至少一个选定数据库上的共享锁;
关闭所述至少一个选定数据库。
2.根据权利要求1所述的方法,其特征在于,分别为所述至少一个选定数据库添加共享锁,具体包括:
轮询所述至少一个选定数据库,为轮询到的选定数据库添加共享锁,将未成功添加共享锁的选定数据库的标识保存在未完成链表中,并将添加次数加1;
确定所述未完成链表是否为空、以及所述添加次数是否达到设定阈值;
若确定所述未完成链表不为空且所述添加次数未达到所述设定阈值,则轮询所述未完成链表,为轮询到的选定数据库添加共享锁,将成功添加共享锁的选定数据库的标识从所述未完成链表中删除,并将所述添加次数加1,执行所述确定所述未完成链表是否为空、以及所述添加次数是否达到设定阈值的步骤;
若确定所述未完成链表为空且所述添加次数未达到所述设定阈值,则确定成功为所述至少一个选定数据库添加共享锁。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定所述未完成链表不为空且所述添加次数达到所述设定阈值,则发出共享锁添加失败提示信息。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定是否成功备份所述至少一个选定数据库;
若确定成功备份所述至少一个选定数据库,则在得到的备份文件中添加完整标记;
若确定未成功备份所述至少一个选定数据库,则发出未完成备份提示信息。
5.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:
打开所述存储设备上的待写入数据库;
接收到至少一个写SQL语句后,执行预设命令开启事务;
依次申请所述事务对应的锁转换流程中包括的各个锁后,执行写操作;
确定是否成功完成所述写操作;
若确定成功完成所述写操作,则将写入的数据更新到所述待写入数据库中;若确定未成功完成所述写操作,则撤销所述写操作;
释放所述最后一个锁后关闭所述待写入数据库。
6.根据权利要求5所述的方法,其特征在于,依次申请所述事务对应的锁转换流程中包括的各个锁,具体包括:
针对所述事务对应的锁转换流程中包括的每个锁,执行:
确定当前锁的申请次数是否超过设定次数;
若确定所述当前锁的申请次数未超过所述设定次数,则等待设定时长后重新申请所述当前锁,确定是否成功申请所述当前锁,若确定成功申请所述当前锁,则确定在所述锁转换流程中所述当前锁是否是最后一个锁,若确定在所述锁转换流程中所述当前锁不是最后一个锁,则申请所述锁转换流程中所述当前锁之后的下一个锁;若确定未成功申请所述当前锁,则将所述当前锁的申请次数加1后,执行所述确定当前锁的申请次数是否超过设定次数的步骤;
若确定所述当前锁的申请次数超过所述设定次数,则发出所述当前锁的申请失败提示信息。
7.一种SQLite数据库的备份装置,应用于存储设备中,其特征在于,所述装置包括:
第一打开模块,用于打开所述存储设备上的至少一个选定数据库;
添加模块,用于分别为所述至少一个选定数据库添加共享锁;
备份模块,用于备份所述至少一个选定数据库;
第一释放模块,用于释放所述至少一个选定数据库上的共享锁;
关闭模...
【专利技术属性】
技术研发人员:谢春平,符志清,
申请(专利权)人:杭州迪普科技股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。