文件名称:删除回滚日志文件-线性代数及其应用中文版
文件大小:2.3MB
文件格式:PDF
更新时间:2024-06-22 11:56:05
sqlite 数据库 嵌入式 入门必备
3.11 删除回滚日志文件 当数据变更已经安全的写入到硬盘之后,回滚日志文件就没有必要再存在了,因此立即删除之。如果在删除之前又 掉电了或者系统崩溃了,恢复进程(在后面将会提到)会将日志文件的内容写回到数据库文件中—即使这个数据库 没有发生变化。如果删除之后系统崩溃或者又停电了,看起来好象所有变化都已经写入到磁盘。因此,SQLite 判断 数据库文件是否完成了变更是依赖于回滚日志文件是否存在。 删除一个文件实际上不是一个原子操作,但从用户进程的角度来看,它是一个原子操作。一个进程总是可以向操作 系统询问某个文件存在否,而它得到的答案只有“YES”和“NO”二种。在一个事务提交的中间,系统崩溃或又停 了,之后,SQLite 会向操作系统咨询回滚日志文件存在与否,如果存在,则这个事务是没有完成,被中断了,需要 对数据库文件进行回滚。如果日志文件不存在,意味着事务已经提交 ok 了。. 事务存在的可能性依赖于是否有回滚日志文件。删除一个文件对于一个用户进程来说是原子性的。因此,整个事务 看起来也是一个原子操作。.