Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427280
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类: Oracle

2008-06-17 23:06:58

日志文件的状态

日志写进程负责将内存中的日志信息写入日志文件。一个日志文件可能包含很多事务的操作记录,这些事务可能已经提交,也可能仍旧在执行。根据日志文件中所包含事务的执行情况,日志文件可以处于活动状态和不活动状态。

 

1. 日志文件的活动状态

 

处于活动状态下的日志文件,当前系统的运行仍旧可能需要读取该日志文件中的日志信息,因而日志文件不能被删除或者覆盖。

一个日志文件不管是否被写满,只要满足下面的两个条件之一,就处于活动状态:

1)日志文件中包含尚未提交或者回退的事务

数据库日志是数据一致性的有效保障。一个被执行的事务,最终可能正常完成,也可能由于错误、条件不满足等原因而失败、要求回退。如果出现事务回退,并且事务的日志信息已经存入日志文件,数据库系统就需要从日志文件中获取事务已经执行的更新操作,反方向执行这些操作以完成事务回退。

2)日志文件中所包含事务的更新尚未从内存中写到硬盘上

数据库系统为多个用户提供服务。基于性能的考虑,内存中的数据被更新后,并不是马上写入磁盘,而是仍旧存放在内存缓冲区中。如果系统出现故障,内存中的数据更新没能写入硬盘,系统再次启动后就要读取日志文件中的日志信息,重新执行该事务。

 

2. 日志文件的不活动状态

 

处于不活动状态下的日志文件,当前系统的运行不再需要读取该日志文件中的日志信息,因而日志文件可以被删除或者覆盖。

一个日志文件被写满之后,只有同时满足下面的两个条件,才处于不活动状态:

1)所包含事务已经全部提交或者回退

2)所包含事务的更新已经全部从内存中写到磁盘上

阅读(564) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~