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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值