`

redo logfile 的不同状态

阅读更多

一、V$LOG:STATUS 指的是GROUP的状态
UNUSED:尚未记录change的空白group
CURRENT: 当前正在被LGWR使用的group(同时是ACTIVE状态)
ACTIVE: 未被LGWR写,instance recovery需要的。
INACTIVE:online,未被LGWR写,对recovery不再有用了。
CLEARING:正在被clear的group
CLEARING_CURRENT:一个正在被clear的CURRENT group

二、V$LOGFILE:STATUS指的是member的状态
INVALID: 不能使用的member,可能损坏了(另外,刚加入到redolog group的日志文件在被使用之前也是这个状态)
STALE: 见下面解释
DELETED:被alter database drop logfile member的member
BLANK: 正常的都是blank,不管是否被写。


下面是对metalink上对stale的解释
Log files may have a status of stale regardless of redo log mirroring or
archival mode.

Solution Description:
=====================

In general, the stale status of a redo log member should not be a cause for
great concern, unless you observe that this happens frequently or
systematically. Keep in mind that a stale log is not necessarily an invalid
log, but more of an "in-doubt" one. Once the corresponding redo group becomes
the current one again, the stale status will go away by itself.

下面是一个例子:
logfile中有两个file为stale状态,当发生日志切换时,group1变成current状态,从而,group1下的logfile变成
blank(正常状态)
另外,这个例子也展示了logfile group从active到inactive的变化。
当发生switch logfile前,group5为current状态,switch logfile后,group5变为active状态,这说明recovery时
group5是有用的,同时也说明logfile时发生的不是完全检查点。
当手工发生检查点后,group5从active变为了inactive状态,此时,group5对recovery不再有用。这说明:
alter system checkpoint发生的是完全检查点。
SQL> l
1* select * from v$logfile
SQL> /
GROUP# STATUS TYPE MEMBER
---------- ------- ------- ----------------------------------------
1 STALE ONLINE /opt/oracle/oradata/userlog2/redo01.log
2 STALE ONLINE /opt/oracle/oradata/userlog2/redo02.log
3 ONLINE /opt/oracle/oradata/userlog2/redo03.log
4 ONLINE /opt/oracle/oradata/userlog2/redo04.log
5 ONLINE /opt/oracle/oradata/userlog2/redo05.log
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 21 20971520 1 NO INACTIVE 704228 07-AUG-06
2 1 22 20971520 1 NO INACTIVE 753376 07-AUG-06
3 1 23 20971520 1 NO INACTIVE 785843 07-AUG-06
4 1 24 20971520 1 NO INACTIVE 868923 08-AUG-06
5 1 25 20971520 1 NO CURRENT 951980 10-AUG-06
SQL> alter system switch logfile;
System altered.
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- ----------------------------------------
1 ONLINE /opt/oracle/oradata/userlog2/redo01.log
2 STALE ONLINE /opt/oracle/oradata/userlog2/redo02.log
3 ONLINE /opt/oracle/oradata/userlog2/redo03.log
4 ONLINE /opt/oracle/oradata/userlog2/redo04.log
5 ONLINE /opt/oracle/oradata/userlog2/redo05.log
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 26 20971520 1 NO CURRENT 994126 10-AUG-06
2 1 22 20971520 1 NO INACTIVE 753376 07-AUG-06
3 1 23 20971520 1 NO INACTIVE 785843 07-AUG-06
4 1 24 20971520 1 NO INACTIVE 868923 08-AUG-06
5 1 25 20971520 1 NO ACTIVE 951980 10-AUG-06
SQL>
SQL> alter system checkpoint;
System altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 26 20971520 1 NO CURRENT 994126 10-AUG-06
2 1 22 20971520 1 NO INACTIVE 753376 07-AUG-06
3 1 23 20971520 1 NO INACTIVE 785843 07-AUG-06
4 1 24 20971520 1 NO INACTIVE 868923 08-AUG-06
5 1 25 20971520 1 NO INACTIVE 951980 10-AUG-06

 

分享到:
评论

相关推荐

    行业-42 redo log是直接一条一条写入文件的吗?非也,揭秘redo log block.rar

    写入redo log时,数据库系统会先将redo log记录放入内存中的redo log buffer,等到buffer达到一定大小或者满足特定条件(如事务提交)时,系统会将整个buffer批量写入到redo log file的相应block中。这样的批量写入...

    Redo Log之一:理解Oracle redo log

    Oracle会自动进行日志切换,这通常发生在LGWR进程停止写入当前日志组并开始写入下一个日志组时,或者在用户发出ALTER SYSTEM SWITCH LOGFILE命令时。 在发生日志文件损坏的情况下,Oracle提供了清空重做日志文件的...

    rac数据库修改redolog日志组大小及数量.docx

    需要注意的是,由于不同磁盘的写入速度不同,可能需要等待一段时间以确保Redo Log文件的状态已经变为非活动状态。 ##### 3. 删除Redo Log日志组 确认原有Redo Log日志组不再处于活跃状态后,可以执行删除操作: `...

    hex格式redo log解析

    在Oracle数据库中,redo log是持久化数据的重要部分,它确保了即使在系统崩溃或硬件故障后,数据库也能恢复到一致的状态。本篇将深入解析hex格式的redo log,包括文件头、日志头、块头以及一个insert语句的详细内容...

    ORACLE 修改redo日志文件 大小的方法

    alter database add logfile group4 '/u01/oradata/orcl/redo04.log' size 500M; alter database add logfile group5 '/u01/oradata/orcl/redo05.log' size 500M; alter database add logfile group6 '/u01/oradata/...

    行业-41 在Buffer Pool执行完增删改之后,写入日志文件的redo log长什么样.rar

    在MySQL等关系型数据库中,redo log用于记录对数据页的所有修改,以便在系统崩溃或异常情况后,能够通过重放日志来恢复数据的一致性状态。 当Buffer Pool执行完增删改操作后,这些改动会被记录在redo log中,通常...

    LOG FILE SYNC概述

    当事务执行完一系列操作后,需要将redo日志记录写入磁盘,以保证数据的一致性和持久性,此时就会发生LOG FILE SYNC等待。这个等待事件通常具有极短的等待时间,大约在1-5毫秒之间,但在某些情况下,如果出现性能问题...

    行业-44 redo log buffer中的缓冲日志,到底什么时候可以写入磁盘?l.rar

    在分析和优化数据库性能时,我们可能会关注到redo log buffer的相关指标,如redo generation rate(redo日志生成速率)和log file sync等待事件。通过对这些指标的监控和调整,我们可以更好地管理redo log buffer,...

    Oracle日志介绍

    5. **CLEARING** - 正在通过ALTER DATABASE CLEAR LOGFILE命令清空日志,之后状态变为UNUSED。 #### 五、redo log与归档日志写入机制 在归档模式下,当redo log file写满并准备被覆盖时,其内容会被复制到归档日志...

    详解MySQL 重做日志(redo log)与回滚日志(undo logo)

    为了优化性能,MySQL允许根据不同的innodb_flush_log_at_trx_commit配置,调整redo log的刷新策略。设置为1是最安全的,但可能导致较高的I/O负载;设置为2可以降低I/O,但增加了数据丢失的风险;设置为0可以进一步...

    redo 维护 oracle

    使用DBA视图如V$LOG、V$LOGFILE和V$ARCHIVED_LOG可以获取相关信息。 8. **性能优化** 优化redo日志的写入性能对于数据库性能至关重要。这可能涉及调整redo log buffer cache的大小,优化日志文件的位置(例如,...

    Mysql启动中 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 的问题

    1. **备份现有日志文件**:首先,你需要备份当前的`ib_logfile0`和`ib_logfile1`,以防万一在操作过程中出现问题,你可以恢复到之前的状态。 2. **删除不匹配的日志文件**:接下来,安全地删除与新配置不匹配的旧...

    oracle改redo日志方法.doc

    ALTER DATABASE ADD LOGFILE GROUP 4 '/u01/app/oradata/orcl/redo04.log' SIZE 50M; ALTER DATABASE ADD LOGFILE GROUP 5 '/u01/app/oradata/orcl/redo05.log' SIZE 50M; ALTER DATABASE ADD LOGFILE GROUP 6 '/u01...

    mysql三种日志文件的介绍

    redo log的工作机制是:首先把数据加载到内存中,然后对记录进行修改,并写入redo log buffer中,然后由redo log buffer写入到redo log file中。这样,即使MySQL宕机,也可以通过redo log进行数据恢复。 redo log与...

    ​MySQL语句- ALTER LOGFILE GROUP详细介绍.pdf

    在MySQL的InnoDB存储引擎中,`ALTER LOGFILE GROUP`语句扮演着一个重要的角色,它主要用于修改重做日志组(redo log group)的配置。重做日志作为InnoDB保证事务持久性的关键组件之一,在系统崩溃后能有效地帮助恢复...

    oracle 常用命令

    4. **添加在线redo log成员** (`ALTER DATABASE ADD LOGFILE MEMBER`): 通过这个命令,可以向已存在的日志组中添加新的redo log文件,提供冗余和故障切换能力。 5. **重命名在线redo log文件** (`ALTER DATABASE ...

    undo&redo;.docx

    你可以通过查询动态性能视图V$LOGFILE来查看当前的撤销日志文件信息: ```sql SELECT * FROM v$logfile ORDER BY group#; ``` 撤销日志用于实现回滚(ROLLBACK)操作,当用户执行ROLLBACK命令时,系统可以利用撤销...

    Archive Log Current及Archive Log路线图

    > Specify CURRENT to manually archive the current redo log file group of the specified thread, forcing a log switch. If you omit the THREAD parameter, then Oracle Database archives all threads. 这一...

Global site tag (gtag.js) - Google Analytics