当前位置:  数据库>oracle

Oracle 联机重做日志文件(ONLINE LOG FILE)

    来源: 互联网  发布时间:2017-03-30

    本文导语: --========================================= -- Oracle 联机重做日志文件(ONLINE LOG FILE) --=========================================   一、Oracle中的几类日志文件     Redo log files      -->联机重做日志     Archive log files   -->归档日志     Alert log file...

--=========================================

-- Oracle 联机重做日志文件(ONLINE LOG FILE)

--=========================================

 

一、Oracle中的几类日志文件

    Redo log files      -->联机重做日志

    Archive log files   -->归档日志

    Alert log files     -->告警日志

    Trace files         -->跟踪日志

        user_dump_dest          -->用户跟踪日志

        backupground_dump_dest  -->进程跟踪日志

   

    --查看后台进程相关目录

        SQL> show parameter dump

 

        NAME                                 TYPE        VALUE

        ------------------------------------ ----------- ------------------------------

        background_core_dump                 string      partial

        background_dump_dest                 string      /u01/app/oracle/admin/orcl/bdump

        core_dump_dest                       string      /u01/app/oracle/admin/orcl/cdump

        max_dump_file_size                   string      UNLIMITED

        shadow_core_dump                     string      partial

        user_dump_dest                       string      /u01/app/oracle/admin/orcl/udump  

       

    关于Oracle 常用目录及路径请参考:Oracle 常用目录结构(10g)

    关于Oracle 体系结构请参考:Oracle实例和Oracle数据库(Oracle体系结构)

 

二、联机重做日志的规划管理

    1.联机重做日志     

        记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等)

        提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复)

        可以被分组管理

       

    2.联机重做日志组

        由一个或多个相同的联机日志文件组成一个联机重做日志组

        至少两个日志组,每组一个成员(建议每组两个成员,分散放开到不同的磁盘)

        由LGWR后台进程同时将日志内容写入到一个组的所有成员

            LGWR的触发条件

                在事务提交的时候(COMMIT)

                Redo Log Buffer 三分之一满

                Redo Log Buffer 多于一兆的变化记录

                在DBWn写入数据文件之前

           

    3.联机重做日志成员

        重做日志组内的每一个联机日志文件称为一个成员

        一个组内的每一个成员具有相同的日志序列号(log sequence number),且成员的大小相同

        每次日志切换时,Oracle服务器分配一个新的LSN号给即将写入日志的日志文件组

        LSN号用于唯一区分每一个联机日志组和归档日志

        处于归档模式的联机日志,LSN号在归档时也被写入到归档日志之中

       

    4.日志文件的工作方式

        日志文件采用按顺序循环写的方式

        当一组联机日志组写满,LGWR则将日志写入到下一组,当最后一组写满则从第一组开始写入

        写入下一组的过程称为日志切换

        切换时发生检查点过程

        检查点的信息同时写入到控制文件

   

    5.联机日志文件的规划

        总原则

            分散放开,多路复用

            日志所在的磁盘应当具有较高的I/O

            一般日志组大小应满足自动切换间隔至少15-20分钟左右业务需求

            建议使用rdo结尾的日志文件名,避免误删日志文件。如redo1.rdo,redo2.rdo

        规划样例

            Redo Log Group1     Redo Log Group2     Redo Log Group3

           

            Member1             Member1              Member1            -->Physical Disk 1

           

            Member2             Member2              Member2            -->Physical Disk 2

           

            Member3             Member3              Member3            -->Physical Disk 3

           

    6.日志切换和检查点切换

        ALTER SYSTEM SWITCH LOGFILE;   --强制手动切换

       

        ALTER SYSTEM CHECKPOINT;

       

        强制设置检查点间隔

        ALTER SYSTEM SET FAST_START_MTTR_TARGET = n

       

    7.添加日志文件组

        ALTER DATABASE ADD LOGFILE [GROUP n]

            ('$ORACLE_BASE/oradata/u01/logn1.rdo',

             '$ORACLE_BASE/oradata/u01/logn2.rdo')

            SIZE mM;

           

    8.添加日志成员

        ALTER DATABASE ADD LOGFILE MEMBER

        '$ORACLE_BASE/oradata/u01/logn1.rdo' TO GROUP 1,

        '$ORACLE_BASE/oradata/u01/logn2.rdo' TO GROUP 2;

       

    9.删除日志成员

        不能删除组内的唯一一个成员

        不能删除处于active 和current 状态组内的成员

        删除处于active 和current 状态组内的成员,应使用日志切换使其处于INACTIVE状态后再删除

        对于组内如果一个成员为NULL 值,一个为INVALID,且组处入INACTIVE,仅能删除INVALID状态成员

        删除日志成员,物理文件并没有真正删除,需要手动删除

        删除日志文件后,控制文件被更新

        对于处于归档模式下的数据库,删除成员时确保日志已被归档,查看v$log视图获得归档信息

        ALTER DATABASE DROP LOGFILE MEMBER '$ORACLE_BASE/oradata/u01/logn1.rdo'

       

    10.删除日志组

        一个实例至少需要两个联机日志文件组

        活动或当前的日志组不能被删除

        组内成员状态有NULL 值或INVALID状态并存,组不可删除

        日志组被删除后,物理文件需要手动删除(对于非OMF)

        ALTER DATABASE DROP LOGFILE GROUP n

       

    11.日志的重定位及重命名

        所需权限

            ALTER DATABASE 系统权限

            复制文件到目的位置操作系统权限(写权限)

        CURRENT状态组内的成员不能被重命名

        建议该行为之前备份数据库

        重命名或重定位之后建议立即备份控制文件

        重定位及重命名的两种方法

            添加一个新成员到日志组,然后删除一个旧的成员

            使用ALTER DATABASE RENAME FILE 命令(不区分归档与非归档模式)

                复制联机日志文件到新路径:ho cp

                执行ALTER DATABASE RENAME FILE '' TO ''

            对于处于CURRENT状态的需要改名且不切换的情况下

                办法是切换到MOUNT状态下再执行上述操作

                               

    12.清空日志文件组

        ALTER DATABASE CLEAR LOGIFLE GROUP n

        ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP n --使用unarchived 避免归档

   

    13.日志周期循环及切换分析

       

        Group 1      Group 2      Group 3

       

        Current      Inactive     Inactive

        ---------- Log Switch -------------

        Active       Current      Inactive

        ---------- Log Switch -------------

        Active       Active       Current

        ---------- Log Switch -------------

        Current      Inactive     Inactive

       

        --Active 和Current 称之为在一个循环周期之内(按顺序写日志)

        --Inactive 称为一个周期之外(一个新的循环)

        --新一轮循环开始如在归档状态则先归档再清空,否则直接清空日志

        --数据库启动时Active 和Current 状态的日志不能丢失,否则出错

       


    
 
 

您可能感兴趣的文章:

  • oracle联机数据库备份详解
  • Linux平台下Oracle 密码文件重建
  • Oracle数据库访问参数文件的顺序
  • Oracle 对数据文件大小的限制
  • Oracle移动数据文件到新分区步骤分析
  • 在jsp文件中怎么设置oracle的路径:很简单的,只是因为我不会;
  • Oracle的spfile参数文件
  • linux下通过对文件读取方式查询oracle的版本信息
  • 求高手指点shell导入.dat文件到ORACLE数据库
  • jsp文件连接oracle失败
  • linux 安装 oracle 运行./runinstall 提示没有这个文件
  • oracle删除文件后数据库启动不了的处理方法
  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • Oracle控制文件多元化处理
  • Oracle数据库逻辑备份的SH文件
  • 利用多个转储文件导出大量Oracle数据
  • 50分的题:如何给oracle减肥?在linux多目录的环境下查找体积最大的单个文件??
  • 用oracle pl/sql 从A unix机器,去读取B unix机器上的一个文件,怎么实现?
  • 读取oracle数据库表写文件慢
  • 如何向oracle中写入一个大文件?谢谢!
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c的九大最新技术特性介绍 iis7站长之家
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3