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