日志文件3种状态

以下内容是我从自己的测试环境中查询出来的在线重做日志信息:
SQL> select* from v$log;
    GROUP#     THREAD#   SEQUENCE#      BYTES    MEMBERS ARC STATUS          FIRST_CHANGE# FIRST_TIM
---------- -------------------- ---------- ---------- --- ---------------- ----------------------
          1                 11   52428800          1 NO   CURRENT                535890 19-MAY-12
          2                   9   52428800          1 YES INACTIVE                523266 18-MAY-12
          3                 10   52428800          1 NO   ACTIVE                  52530918-MAY-12
可以看到在这里日志文件有三个状态:
CURRENT,当前的
INACTIVE,不活动的
ACTIVE,活动的
以下信息摘自Oracle官方手册DatabaseAdministrator's Guide:what is redo log?
Active (Current) andInactive Redo Log Files
Oracle Database uses onlyone redo log files at a time to store redo records written from theredo log buffer. The redo log file that LGWR is actively writing tois called the current redo log file.
Redo log files that arerequired for instance recovery are called active redo log files.Redo log files that are no longer required for instance recoveryare called inactive redo log files.
If you have enabledarchiving (the database is in ARCHIVELOG mode), then the databasecannot reuse or overwrite an active online log file until one ofthe archiver background processes (ARCn) has archived its contents.If archiving is disabled (the database is in NOARCHIVELOG mode),then when the last redo log file is full, LGWR continues byoverwriting the first available active file.
上面的这段话意思大致如下:(翻译的不正确的地方,还请指正)
Oracle数据库在只使用一个重做日志文件将某段时间内的重做日志缓冲区的信息记录进去。这个重做日志文件被LGWR进程实时的写入,被称作current的重做日志文件。
如果重做日志文件在实例恢复的时候被需要,那么我们称作这个重做日志文件为active的。重做日志文件在实例恢复的时候不被需要,那么我们称作这个重做日志文件为inactive的。
如果你开启了归档模式(数据库在ARCHIVELOG模式),在后台进程(ARCn)将重做日志文件的信息已归档之前,数据库无法重用active状态的重做日志文件。如果归档模式是禁用的(数据库在NOARCHIVELOG模式),而且最后一个重做日志文件已经被写满,LGWR会重新复写第一个可用的活动的文件。


注:处于active的日志文件组无法删除,因为这个日志文件组可能会在实例恢复的时候使用。
我们可以使用alter databasecheckpoint命令手动的创建一个检查点,来是active的日志文件组变成inactive的日志文件组,这一点在扩容日志文件组(先删除再添加)的时候会用到!
可以使用alter system switchlogfile命令手动的切换日志文件组
另外在说一下active和inactive的一些区别,其实这两种状态的重做日志都是已经归档的,不同的只是,active状态的重做日志文件组是在实例恢复的时候被需要的,因为有一些事务虽然已经提交了,但是这些记录的更改还没有写到datafile中,如果这个时候实例一旦失败(断电或者其他的突发情况),在进行实例恢复的时候会需要这些active状态的日志文件组,每过一段时间,当系统负载不是很大的时候,Oracle会尝试将内存中的数据写入到datafile中,这个时候active的日志文件组就会变成inactive状态,我们可以使用alter database checkpoint强制来执行这个过程;而inactive是在实例恢复的时候不被需要的日志文件组。



以上内容来自连接http://blog.sina.com.cn/s/blog_67be3b4501015mth.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值