`

Redo active状态解析

 
阅读更多

当我们手动执行日志切换的时候:

SQL> alter system switch logfile;

系统已更改。


SQL> select group#,sequence#,status,archived from v$Log;

GROUP# SEQUENCE# STATUS ARC
---------- ---------- ---------------- ---
1 23 CURRENT NO
2 21 INACTIVE YES
3 22 ACTIVE YES

我们看日志文件组3已经归档,但是状态为ACTIVE的。
某个日志文件为ACTIVE状态,其实是表示这个文件的检查点还没有作完。而检查点没有做完的根本原因是dbwr执行的dirty buffer写出还没有执行完成,也就是说ckpt进程会等待dbwr写出数据完成,等待的过程就是表示等待将current日志中修改过的数据块信息写入到数据文件的过程。因为这些信息其实是实例恢复的时候要用到的信息,如shutdown abort时,oracle会利用redo日志中的信息对数据库进行实例恢复。
同时有一点需要补充的是:
当检查点发生的时候,不仅仅dbwr进程会触发(记住有的检查点不是一定要触发dbwr的),lgwr也会跟着触发,他会把检查点发生时的SCN之前的存储在redo log buffer中的redo,写入到我们的redo log file中。那么all in all,检查点的发生,就是lgwr和dbwr写buffer到磁盘文件的过程。但是效率却截然不同。
回到正题,log switch的时候会触发检查点,因此lgwr进程会把log buffer中的redo log写入redo log file中,如果我们这个时候设置了log_checkpoints_to_alert=TRUE,则我们可以在alert_icmnlsdb.log日志中,看到如下信息:
-------------------------------------------------------------
Sat Dec 29 12:59:43 2007
Beginning log switch checkpoint up to RBA [0x18.2.10], SCN: 0x0000.0003b0f6
Thread 1 advanced to log sequence 24
Current log# 2 seq# 24 mem# 0: D:/ORACLE/ORADATA/ICMNLSDB/REDO02.DBF
Sat Dec 29 12:59:43 2007
ARC0: Evaluating archive log 1 thread 1 sequence 23
ARC0: Beginning to archive log 1 thread 1 sequence 23
Creating archive destination LOG_ARCHIVE_DEST_1: 'D:/ORACLE/ARCHIVED_DEST/ARC00023.001'
ARC0: Completed archiving log 1 thread 1 sequence 23
---------------------------------------------------------------
注意信息中的SCN,这就是我们通过log switch触发checkpoint时的SCN,那么当checkpoint做完后,ckpt进程会把这个SCN更新到数据文件头上。但是这个checkpoint在这个时候确实是要等待dbwr将dirty buffer写完到数据文件后才算结束(dbwr要写到RBA(Beginning log switch checkpoint up to RBA [0x18.2.10]).因此如果日志切换到这个active的日志的时候,由于checkpoint要等待dbwr将RBA之前的所有dirty buffer写出,因此整个过程会等待。当然我们还要注意dbwr可能是执行多次写才能到RBA。这个和dbwr的写机制是有密切的关系。

from:http://space.itpub.net/12361284/viewspace-52651

Redo Log :用于instance recovery

archive log:用于media recovery

分享到:
评论

相关推荐

    AWR 报告深度解读:Redo Nowait指标的算法和诊断泄露二十多万名用户数据

    导读:本文将对Redo Nowait...检查V$LOG视图,可以获得日志状态,除了CURRENT日志组,其他日志都处于ACTIVE状态,而且后面的几组日志都是DBA最新添加的: SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES

    Oracle日志介绍

    #### 四、redo log状态解析 v$log视图提供了redo log的当前状态信息,主要有: 1. **ACTIVE** - 表示redo log组处于活动状态,但非当前组,用于崩溃恢复或块恢复,可能已归档或未归档。 2. **CURRENT** - 当前redo...

    oracle Active DataGuard配置和维护-完整版

    以下是对配置和维护Oracle 11g Active Data Guard的详细步骤的解析: 1. **要求**: 在配置Active Data Guard之前,你需要确保满足硬件、操作系统和网络等基本要求。这包括足够的磁盘空间来存储数据文件、redo log...

    深入解析Oracle--DBA入门、进阶与诊断案例

    本篇文章将根据提供的资料,深入解析Oracle DBA的入门、进阶及诊断案例。 一、Oracle DBA入门 1. 数据库概念:理解数据库的基本构成,如表空间、数据文件、控制文件、重做日志、实例等。 2. 安装与配置:学习如何在...

    Oracle IO问题解析

    最后,Oracle的监控工具如ASH(Active Session History)、AWR(Automatic Workload Repository)和Statspack可以帮助识别和解决IO性能问题。这些工具提供了详细的数据库活动报告,帮助DBA分析和定位性能瓶颈。 ...

    oracle动态性能视图

    这些视图使得数据库管理员(DBA)可以实时监控数据库的状态和性能,进而进行问题诊断和性能调优。其中,V$SYSSTAT是众多动态性能视图之一,它记录了自数据库实例启动以来的实例范围(instance-wide)资源使用情况。 ...

    12c 新特性-Temporary Undo

    1. **降低 Redo 日志占用空间**:Temporary Undo 使得临时表的Undo信息不再记录到Redo日志中,这有助于减小Redo日志的大小,进而提高LogMiner等组件的解析效率。 2. **减少 Undo 表空间的压力**:由于临时表的Undo...

    Oracle必备技能-工具篇-使用Toad学习笔记.docx

    - **查看日志文件**:监控redo log文件的状态和位置。 - **增加日志组**:扩展数据库的日志容量,确保事务记录的安全。 - **状态转变**:在inactive、active和current状态之间转换日志组。 - **删除日志组**:...

    怎么看AWR报告

    ### 如何查看与解读Oracle AWR报告 #### 一、AWR报告简介 ...此外,结合其他工具如ASH(Active Session History)和AWR Compare Report等,可以更全面地了解数据库性能状态,从而做出更加精准的优化决策。

    ORACLE性能优化工具整理

    *.*.*.*.4.2.1 查看redolog组状态 查看当前数据库重做日志组的使用状态。 *.*.*.*.4.2.2 查看redolog组成员 检查重做日志组内部各个成员的状态和使用情况。 *.*.*.*.4.2.3 增加redolog组 实际操作步骤,如何添加新...

    oracle优化公司培训

    Oracle数据库的体系结构由多个组件构成,如实例(Instance)、系统全局区(SGA)、重做日志缓冲区(Redo Log Buffer)、共享池(Shared Pool)、数据字典缓存(Data Dictionary Cache)、库缓存(Library Cache)、...

    Oracle数据库中Standby Database的搭建和使用.pdf

    - Logical Standby Database:逻辑备用数据库则对归档重做日志进行解析,根据解析结果执行SQL语句来更新数据。这允许逻辑备用数据库在不同的数据库结构或模式下运行。 3. Standby Database的建立过程: - 创建...

    ORACLE数据库变得非常慢解决方案一例.pdf

    在解决Oracle数据库性能下降的...在实际操作中,还需要结合其他监控工具和数据库诊断功能,如AWR(Automatic Workload Repository)、ASH(Active Session History)等,以获取更全面的视图并制定更精准的优化策略。

    Oracle 8i数据库性能优化技术.pdf

    本文主要探讨了如何优化Oracle 8i数据库系统的性能,以实现最佳运行状态。 首先,优化数据库性能的目标主要包括提升应用程序性能、设计高性能的应用以及编写高效的SQL语句。此外,还包括优化数据库服务器的内存分配...

    Oracle 动态性能表

    Oracle 动态性能表是数据库管理员和开发人员用于监控、诊断和优化Oracle...在实际工作中,结合SQL Trace、AWR(自动工作负载 Repository)和ASH(Active Session History)等工具,可以构建全面的性能监控和优化策略。

    ORACLE函数书册

    - 调用、解析次数:调用次数反映SQL的使用频率,解析次数则显示SQL的编译开销。 - 共享内存占用:SQL语句在共享池中占用的空间,过大可能引发内存争抢。 - 多版本缓存:在MVCC(多版本并发控制)机制下,用于存储...

    ORACLE体系.

    SGA包含数据缓冲区、重做日志缓冲区、共享池(包含SQL解析和执行计划)等,而PGA则用于存储每个会话的私有数据。 3. **表空间(Tablespaces)**:在Oracle中,数据存储在逻辑单元——表空间中,它可以包含一个或多...

    oracle内存全面分析.rar

    - **重做日志缓冲区(Redo Log Buffer)**:保存事务的更改信息,用于在系统崩溃时进行恢复。 - **共享池(Shared Pool)**:包含SQL语句的解析树、PL/SQL代码、数据库链接信息等,实现SQL语句的复用。 - **库...

    Oracle性能调整优实战手册.doc

    例如,使用动态性能视图(如V$视图)来查看数据库的运行状态,利用AWR(Automatic Workload Repository)和ASH(Active Session History)收集性能数据,以及使用 tkprof 和 trace 文件进行问题排查。 总的来说,...

Global site tag (gtag.js) - Google Analytics