Oracle Redo日志的状态
2013-01-06 15:18
253 查看
CURRENT:指的是当前的日志文件,该日志文件是活动的,当前正在被使用的,在进行崩溃恢复时,Current的日志文件时必须的。
ACTIVE:活动的非当前日志,该日志可能已经完成归档也可能没有归档,活动的日志文件在Crash恢复时会被用到。
ACITVE状态意味着检查点尚未完成,如果日志文件循环使用再次到达该文件,数据库将处于等待的停顿状态,此时在alert文件中,可以看到类似如下记录:Checkpoint not complete。当这种问题出现时,可以从数据库内部通过v$session_wait来观察,该视图会显示数据库当前哪些session正处于这种等待。Checkpoint not complete在数据库中体现为等待事件log file switch(checkpoint incomplete):
SQL> select sid,event,state from v$session_wait;---查询结果中event的值为:log file switch
在此同时,可能DBWR进程正在进行db file parallel write,日志文件必须等待DBWR完成检查点触发的写操作之后才能被覆盖。如果设置了参数log_checkpoints_to_alert为TRUE的话,还可以在alert文件中清晰地看到检查点的增进和完成情况。
引起Checkpoint Incomplete可能有以下多种原因:
日志文件过小,切换过于频繁;
日志组太少,不能满足正常业务量的需要;
日志文件所在磁盘I/O存在瓶颈,导致写出缓慢,阻塞数据库正常运行;
由于数据文件磁盘I/O瓶颈,DBWR写出过于缓慢;
由于事务量巨大,DBWR负载过高,不堪重负。
解决方法:
适当增加日志文件大小;
适当增加日志组数;
使用更快的磁盘存储日志文件(如采用更高转速磁盘;使用RAID10而不是RAID5等方式);
改善磁盘I/O的性能;
使用多个DBWR进程或使用异步I/O等。
注意:Checkpoint Incomplete是一类严重的等待,它意味着数据库不能再产生日志,所有数据库修改操作将全部挂起。
INACTIVE:非活动日志,该日志在实例恢复时不再需要,但是在介质恢复时可能会用到。INACTIVE状态的日志也可能没有被归档。如果数据库启动在归档模式,在未完成归档之前,日志文件也不允许被覆盖,这时候活动进程会处于log file switch(archiving needed)等待之中。日志是否完成归档,可以根据v$log视图的archived字段进行判断。
UNUSED:是指该日志从未被写入,这类日志可能是刚被添加到数据库或者在RESETLOGS之后被重置。被使用之后,该状态会被改变。
ACTIVE:活动的非当前日志,该日志可能已经完成归档也可能没有归档,活动的日志文件在Crash恢复时会被用到。
ACITVE状态意味着检查点尚未完成,如果日志文件循环使用再次到达该文件,数据库将处于等待的停顿状态,此时在alert文件中,可以看到类似如下记录:Checkpoint not complete。当这种问题出现时,可以从数据库内部通过v$session_wait来观察,该视图会显示数据库当前哪些session正处于这种等待。Checkpoint not complete在数据库中体现为等待事件log file switch(checkpoint incomplete):
SQL> select sid,event,state from v$session_wait;---查询结果中event的值为:log file switch
在此同时,可能DBWR进程正在进行db file parallel write,日志文件必须等待DBWR完成检查点触发的写操作之后才能被覆盖。如果设置了参数log_checkpoints_to_alert为TRUE的话,还可以在alert文件中清晰地看到检查点的增进和完成情况。
引起Checkpoint Incomplete可能有以下多种原因:
日志文件过小,切换过于频繁;
日志组太少,不能满足正常业务量的需要;
日志文件所在磁盘I/O存在瓶颈,导致写出缓慢,阻塞数据库正常运行;
由于数据文件磁盘I/O瓶颈,DBWR写出过于缓慢;
由于事务量巨大,DBWR负载过高,不堪重负。
解决方法:
适当增加日志文件大小;
适当增加日志组数;
使用更快的磁盘存储日志文件(如采用更高转速磁盘;使用RAID10而不是RAID5等方式);
改善磁盘I/O的性能;
使用多个DBWR进程或使用异步I/O等。
注意:Checkpoint Incomplete是一类严重的等待,它意味着数据库不能再产生日志,所有数据库修改操作将全部挂起。
INACTIVE:非活动日志,该日志在实例恢复时不再需要,但是在介质恢复时可能会用到。INACTIVE状态的日志也可能没有被归档。如果数据库启动在归档模式,在未完成归档之前,日志文件也不允许被覆盖,这时候活动进程会处于log file switch(archiving needed)等待之中。日志是否完成归档,可以根据v$log视图的archived字段进行判断。
UNUSED:是指该日志从未被写入,这类日志可能是刚被添加到数据库或者在RESETLOGS之后被重置。被使用之后,该状态会被改变。
相关文章推荐
- 【Oracle】数据库运行状态下物理删除所有redo日志恢复方法
- redo日志文件组的三种状态(current,active,inactive)
- oracle online redo log 日志组成员
- Oracle TDE与Redo日志的关系探索
- Oracle日志文件的状态current/active/inactive/unused
- Oracle为何会发生归档日志archivelog大小远小于联机重做日志online redo log size的情况?
- Oracle redo 日志切换时间频率
- oracle 统计redo统计当天日志生成和最近日期日志生成统计
- Oracle数据库诊断案例-redo log日志组处于高激活状态
- Oracle RMAN 使用RMAN恢复ACTIVE状态的日志
- Oracle中REDO日志
- oracle Logminer日志挖掘redo log中的sql语句
- Oracle中REDO日志
- oracle 日志状态为stale
- Oracle Redo生成日志的统计
- oracle体系结构之redo日志缓存池,大共享区
- Script:列出Oracle每小时的redo重做日志产生量
- Oracle 维护redo日志 推荐
- Oracle中REDO日志
- Oracle redo日志切换频繁