您的位置:首页 > 其它

日志最常见的状态有以下几种:CURRENT , ACTIVE , INACTIVE ,UNUSED

2013-07-08 22:57 429 查看
文档地址:http://docs.oracle.com/cd/B19306_01/server.102/b14231/onlineredo.htm#sthref872

Active (Current) and Inactive Redo Log Files

Oracle Database uses only one redo log files at atime to store redo records written from the redo log buffer. Theredo log file that LGWR is actively writing to is called thecurrent redo log file.

Redo log files that are required for instance recovery arecalled active redo log files. Redo log files that areno longer required for instance recovery are calledinactive redo logfiles.

If you have enabled archiving (the database is in
ARCHIVELOG
mode), then the database cannot reuse oroverwrite an active online log file until one of the archiverbackground processes (ARCn) has archived its contents.If archiving
is disabled (the database is in
NOARCHIVELOG
mode), then when the last redo log fileis full, LGWR continues by overwriting the first available activefile.

日志最常见的状态有以下几种:CURRENT , ACTIVE , INACTIVE ,UNUSED

1.CURRENT 指当前的日志文件,该日志文件是活动的,当前正在被使用的,在进

行崩溃恢复时Current 的日志文件是必须的。

2. ACTIVE 日志是活动的非当前日志,该日志可能已经完成归档也可能没有归档,

活动的日志文件在Crash 恢复时会被用到。Active 状态意味着,检查点尚未完

成,如果日志文件循环使用再次到达该文件,数据库将处于等待的停顿状态,

当这种问题出现时,可以从数据库内部通过v$session_wait 来观察,该视图会

显示数据库当前哪些Sesssion 正处于这种等待。Checkpoint not complete 在

数据库中体现为等待事件log file switch(checkpoint incomplete):select

sid,event,state from v$session_wait;同时要注意DBWR 进程正在执行db file

parallel write,日志文件必须等待DBWR 完成检查点触发的写操作之后才能被

覆盖。如果设置了参数log_checkpoints_to_alter 为True 的话,还可以在alert

文件中清晰地看到检查点的增进和完成情况.

可以对这个问题做一下简单的分析,Checkpoint incomplete 有多种可能原因:

·日志文件过小,切换过于频繁;

·日志组太少,不能满足正常事务量的需要;

·日志文件所在磁盘I/O 存在瓶颈,导致写出缓慢,阻塞数据库正常运行;

·由于数据文件磁盘I/O 瓶颈,DBWR 写出过于缓慢;

·由于事务量巨大,DBWR 负荷过高,不堪重负。

针对不同的原因,又可以从不同角度着手解决问题:

·适当增加日志文件大小;

·适当增加日志组数;

·使用更快速磁盘存储日志文件(如:采用更高转速磁盘;使用RAID10 而不是

RAID5 等方式);

·改善磁盘I/O 性能;

·使用多个DBWR 进程或使用异步I/O 等。

3.INACTIVE 是非活动日志,该日志在实例恢复时不再需要,但是在介质恢复时

可能会用到。INACTIVE 状态的日志也可能没有被归档。如果数据库启动在归档

模式,在未完成归档之前,日志文件也不允许被覆盖,这时活动进程处于log file

switch(archiving needed)等待之中。日志是否完成归档,可以根据

V$LOG.ARCHIVED 字段进行判断,ARCHIVED 状态为NO,也就是尚未归档:所有DML

事务都将挂起,用户处于log file switch(archiving needed)等待,通常是由

数据库异常引起的,可能是因为I/O 缓慢,也可能是因为事务量过大,在特殊情

况下,有可能是因为日志损坏。

4.UNUSED 表示该日志从未被写入,这类日志可能是刚被添加到数据库或者在

RESETLOGS 之后被重置。被使用之后,该状态会被改变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: