linux下数据库解锁,如何解锁SQLite数据库?

bea66a944af531e767723c5f9ba70b1e.png

莫回无

删除日志文件听起来是个糟糕的主意。它允许sqite在崩溃后将数据库回滚到一致状态。如果在数据库处于不一致状态时删除它,则会留下损坏的数据库。引用方形遗址:如果确实发生崩溃或停电,并且磁盘上保留了一个热日志,则必须将原始数据库文件和热日志保留在磁盘上,并带有它们的原始名称,直到数据库文件被另一个SQLite进程打开并回滚为止。[.]我们怀疑SQLite恢复的常见故障模式是这样发生的:发生电源故障。恢复电源后,善意的用户或系统管理员开始四处查看磁盘是否损坏。他们看到了他们的数据库文件,名为“import ant.data”。他们可能对这个文件很熟悉。但在崩盘后,也有一个热门杂志名为“重要数据日记”。然后,用户删除热门日志,认为他们正在帮助清理系统。除了用户教育之外,我们不知道有什么办法可以阻止这种情况。回滚应该在下一次打开数据库时自动发生,但如果进程无法锁定数据库,则会失败。正如其他人所说,造成这种情况的一个可能原因是,另一个进程目前正在进行之中。如果数据库位于NFS卷上,则另一种可能是过期的NFS锁。在这种情况下,解决方法是将数据库文件替换为未锁定在NFS服务器上的新副本(MV database.db源.db;cp initial.db database.db)。请注意,sqlitFAQ建议注意并发访问NFS卷上的数据库,因为NFS文件锁定的实现存在缺陷。我无法解释为什么删除日志文件会让您锁定以前无法锁定的数据库。那是可复制的吗?顺便说一句,日志文件的存在并不一定意味着发生了崩溃,也不一定意味着需要回滚更改。Sqlitt有几种不同的日志模式,并且在持久化或截断模式中,它总是将-日记文件放在适当的位置,并更改内容以指示是否有部分事务要回滚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值