• DM 重做日志文件管理


    一、重做日志文件介绍

    重做日志(即REDO日志)指在DM数据库中添加、删除、修改对象,或者改变数据,DM都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件以log为扩展名。每个DM数据库实例必须至少有2个重做日志文件,默认两个日志文件为DAMENG01.log、DAMENG02.log,这两个文件循环使用。

    重做日志文件因为是数据库正在使用的日志文件,因此被称为联机日志文件。

    重做日志文件主要用于数据库的备份与恢复。理想情况下,数据库系统不会用到重做日志文件中的信息。然而现实世界总是充满了各种意外,比如电源故障、系统故障、介质故障,或者数据库实例进程被强制终止等,数据库缓冲区中的数据页会来不及写入数据文件。这样,在重启DM实例时,通过重做日志文件中的信息,就可以将数据库的状态恢复到发生意外时的状态。

    重做日志文件对于数据库是至关重要的。它们用于存储数据库的事务日志,以便系统在出现系统故障和介质故障时能够进行故障恢复。在DM数据库运行过程中,任何修改数据库的操作都会产生重做日志,例如,当一条元组插入到一个表中的时候,插入的结果写入了重做日志,当删除一条元组时,删除该元组的事实也被写了进去,这样,当系统出现故障时,通过分析日志可以知道在故障发生前系统做了哪些动作,并可以重做这些动作使系统恢复到故障之前的状态。

    二、查询重做日志文件

    2.1 查询数据库系统中重做日志文件路径和大小

    (1)通过V$RLOGFILE查询重做日志文件大小和存储路径

    select  group_id, file_id,path,client_path,rlog_size/(1024*1024) as SIZE_M from V$RLOGFILE;

    数据库系统中共有两个日志文件DMOA01.log和DMOA02.log,文件大小为256M。

    三、重做日志文件管理

    3.1 修改日志文档大小

    (1)通过alter database resize命令修改重做日志大小。

    ALTER DATABASE RESIZE LOGFILE '/dm/dmdata/prod/prod01.log' to 257;

    ALTER DATABASE RESIZE LOGFILE '/dm/dmdata/prod/prod02.log' to 257;

    select  group_id, file_id,path,client_path,rlog_size/(1024*1024) as SIZE_M from V$RLOGFILE;

     

    重做日志文件大小默认值是256M,修改大小时,值必须大于256M,不能等于或小于256M。修改后的值等于或小于256M时,会提示执行失败,

    日志文件大小无效的错误。如上图所示,把日志文件大小修改为257M

    3.2 增加重做日志文件

    (1)给数据库增加大小为258M的日志文件DMOA03.log

    ALTER DATABASE ADD LOGFILE '/dm/dmdata/prod/prod03.log' size 257;

    select  group_id, file_id,path,client_path,rlog_size/(1024*1024) as SIZE_M from V$RLOGFILE;

     

     

    增加完成后如上图所示。

    3.3 重做日志文件重命名

    (1)在MOUNT状态下,支持对日志文件的重命名操作。将日志文件DMOA01.log、DMOA02.log、DMOA03.log重命名

       为DMOA1.log、DMOA2.log、DMOA3.log。

    SQL> alter database mount;
    操作已执行
    已用时间: 00:00:01.744. 执行号:0.
    SQL> 
    SQL> ALTER DATABASE RENAME LOGFILE '/dm/dmdata/prod/prod01.log' to '/dm/dmdata/prod/prod001.log';
    操作已执行
    已用时间: 301.384(毫秒). 执行号:3900.
    SQL> 
    SQL> ALTER DATABASE RENAME LOGFILE '/dm/dmdata/prod/prod02.log' to '/dm/dmdata/prod/prod002.log';
    操作已执行
    已用时间: 322.775(毫秒). 执行号:3901.
    SQL>                                                                                                                             
    SQL> ALTER DATABASE RENAME LOGFILE '/dm/dmdata/prod/prod03.log' to '/dm/dmdata/prod/prod003.log';
    操作已执行
    已用时间: 671.803(毫秒). 执行号:3902.
    SQL> 
    SQL> alter database open;
    操作已执行
    已用时间: 00:00:01.721. 执行号:0.
    SQL> 

     

    3.4 修改重做日志文件存放路径

    (1)将/home/dmdba/dmdbms/data/DMOA目录下的DMOA1.log、DMOA2.log、DMOA3.log移动到/home/dmdba/dmdbms/data/DMOA/redolog目录下。

    修改前

    /home/dmdba/dmdbms/data/DMOA/DMOA1.log

    /home/dmdba/dmdbms/data/DMOA/DMOA2.log

    /home/dmdba/dmdbms/data/DMOA/DMOA3.log

    修改后

    /home/dmdba/dmdbms/data/DMOA/redolog/DMOA1.log

    /home/dmdba/dmdbms/data/DMOA/redolog/DMOA2.log

    /home/dmdba/dmdbms/data/DMOA/redolog/DMOA3.log

    alter database mount;

    ALTER DATABASE RENAME LOGFILE '/home/dmdba/dmdbms/data/DMOA/DMOA1.log' to '/home/dmdba/dmdbms/data/DMOA/redolog/DMOA1.log';

    ALTER DATABASE RENAME LOGFILE '/home/dmdba/dmdbms/data/DMOA/DMOA2.log' to '/home/dmdba/dmdbms/data/DMOA/redolog/DMOA2.log';

    ALTER DATABASE RENAME LOGFILE '/home/dmdba/dmdbms/data/DMOA/DMOA3.log' to '/home/dmdba/dmdbms/data/DMOA/redolog/DMOA3.log';

    alter database open;

    注意:重做日志文件不能被删除,所有日志文件大小最好保持一致。

    3.5 查看DB当前正在使用用的RedoLog文件

    (1)查看数据库正在使用的重做日志文件。

    select cur_file from V$RLOG;

    select * from v$rlog

    SQL> select cur_file from V$RLOG;

    LINEID     CUR_FILE  

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

    1          0

    SQL>

  • 相关阅读:
    为什么选择WordPress作为企业CMS?
    《手写Mybatis》第4章:Mapper XML的解析和注册使用
    mysql Varchar字符存储时报错
    基于 SpringBoot + MyBatis 的博客系统
    从 DMAIC 方法论说起,记一个长链接 bug 的排查全过程
    数学建模:拟合算法
    openvpn组网技术原理及配置过程(centos服务器/安卓客户端/linux客户端)
    Spring Cloud整合Seata实现TCC分布式事务模式案例
    暑期留校——区间DP-板子题石子合并
    力扣每日一题59:螺旋矩阵||
  • 原文地址:https://blog.csdn.net/suyishuai/article/details/126608052