zoukankan      html  css  js  c++  java
  • redo log

    redo log 都是重做记录。

    重做记录(也称为重做条目)由一组更改向量组成,每个向量都是对数据库中单个块所做更改的描述。例如,如果更改员工表中的薪资值,则会生成包含更改向量的重做记录,这些更改向量描述对该表的数据段块、撤消段数据块和撤消段的事务表所做的更改。

    重做条目记录数据,可用于重建对数据库所做的所有更改,包括撤消段。因此,重做日志还保护回滚数据。使用重做数据恢复数据库时,数据库将读取重做记录中的更改向量,并将更改应用于相关块。

    重做记录以循环方式缓冲在SGA的重做日志缓冲区中(请参阅“Oracle数据库如何写入重做日志”),并由LGWR数据库后台进程写入其中一个重做日志文件。每当提交事务时,LGWR将事务重做记录从SGA的重做日志缓冲区写入重做日志文件,并为每个提交的事务分配一个系统更改号(SCN)来标识重做记录。只有在联机日志中与给定事务相关联的所有重做记录都安全地位于磁盘上时,用户进程才会通知该事务已提交。

    在提交相应事务之前,还可以将重做记录写入重做日志文件。如果重做日志缓冲区已满或另一个事务提交,则LGWR会将重做日志缓冲区中的所有重做日志条目刷新到重做日志文件,即使某些重做记录可能未提交。如果需要,数据库可以回滚这些更改。

    添加日志文件,可设置块大小(512到4k)

    ALTER DATABASE orcl ADD LOGFILE
      GROUP 4 ('/u01/logs/orcl/redo04a.log','/u01/logs/orcl/redo04b.log')
      SIZE 100M BLOCKSIZE 512 REUSE;

    查询目前的块大小
    SQL> SELECT BLOCKSIZE FROM V$LOG;
    
    BLOCKSIZE
    ---------
          512

    当设置ARCHIVE_LAG_TARGET初始化参数时,将使数据库定期检查实例的当前重做日志,并确定何时切换日志。
    ARCHIVE_LAG_TARGET = 1800
    30分钟

    Creating Redo Log Groups

    ALTER DATABASE
      ADD LOGFILE ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') SIZE 100M;

    指定group号
    ALTER DATABASE 
      ADD LOGFILE GROUP 10 ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo')
          SIZE 100M BLOCKSIZE 512;
    给group加成员
    ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;

    Dropping Log Groups

    先查看redo的状态,是否已归档,处于INACTIVE状态

    SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
    
       GROUP# ARC STATUS
    --------- --- ----------------
            1 YES ACTIVE
            2 NO  CURRENT
            3 YES INACTIVE
            4 YES INACTIVE
    然后在删除
    ALTER DATABASE DROP LOGFILE GROUP 3;

    删除group中的成员
    ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';


    切换日志
    ALTER SYSTEM SWITCH LOGFILE;

    Clearing a Redo Log File

    当数据库打开时,重做日志文件可能会损坏,并最终停止数据库活动,因为存档无法继续。

    需要clear redo log。

     

    ALTER DATABASE CLEAR LOGFILE GROUP 3; 
    如果日志未被归档
    ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;



    与redo相关的数据字典视图
    ViewDescription

    V$LOG

    Displays the redo log file information from the control file

    V$LOGFILE

    Identifies redo log groups and members and member status

    V$LOG_HISTORY

    Contains log history information



  • 相关阅读:
    JDK问题--linux下java unrecognized class file version错误的解决
    XP oracle32位客户端安装找不到orandce11.dll.dbl
    Oracle的安装问题
    xhost和DISPLAY
    linux下访问windows的共享
    windows域与工作组概念
    当页面加载完成时,JQ触发添加页面的元素的事件触发不了。。
    工厂模式Assembly.Load(path).CreateInstance 反射出错解决办法
    MVC之联动学习
    SQL2008将服务器的数据库表数据插入到本地数据库
  • 原文地址:https://www.cnblogs.com/muzisanshi/p/12066240.html
Copyright © 2011-2022 走看看