一、概述
重做日志(即 REDO 日志)指在 DM 数据库中添加、删除、修改对象,或者改变数据,DM 都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件默认以 log 为扩展名,可在初始化数据库时使用建库参数 RLOG_POSTFIX_NAME 指定重做日志文件的扩展名。每个 DM 数据库实例必须至少有 2 个重做日志文件,默认两个日志文件为 DAMENG01.log、DAMENG02.log,这两个文件循环使用。
重做日志文件因为是数据库正在使用的日志文件,因此被称为联机日志文件。
重做日志文件主要用于数据库的备份与恢复。理想情况下,数据库系统不会用到重做日志文件中的信息。然而现实世界总是充满了各种意外,比如电源故障、系统故障、介质故障,或者数据库实例进程被强制终止等,数据库缓冲区中的数据页会来不及写入数据文件。这样,在重启 DM 实例时,通过重做日志文件中的信息,就可以将数据库的状态恢复到发生意外时的状态。
重做日志文件对于数据库是至关重要的。它们用于存储数据库的事务日志,以便系统在出现系统故障和介质故障时能够进行故障恢复。在 DM 数据库运行过程中,任何修改数据库的操作都会产生重做日志,例如,当一条元组插入到一个表中的时候,插入的结果写入了重做日志,当删除一条元组时,删除该元组的事实也被写了进去,这样,当系统出现故障时,通过分析日志可以知道在故障发生前系统做了哪些动作,并可以重做这些动作使系统恢复到故障之前的状态。
二、管理重做日志文件
添加重做日志文件
在服务器打开状态下,可以添加新的重做日志文件。添加的数据文件大小最小为 4096*页大小,如页大小为 8K,则可添加的文件最小值为 4096*8k=32M。如添加重做大小为 128M 的重做日志文件DAMENG03.log。
ALTER DATABASE ADD LOGFILE '/data/dmdata/DAMENG/DAMENG03.log' size 128;
扩展重做日志文件
在服务器打开状态下,可以扩展已有的重做日志文件的大小。如扩展重做日志文件DAMENG03.log 到 256M。
ALTER DATABASE RESIZE LOGFILE '/data/dmdata/DAMENG/DAMENG03.log' to 256;
三、其他
在V$RLOG视图中监控FREE_SPACE/TOTAL_SPACE,如果空闲率低于20%就需要考虑扩容,低于1G可用一般是出现影响了。存储IO性能可以监控上看看应该有瓶颈了,还有业务层面也看看拆分大事务,间隔调度批量作业等,避免集中资源压力。扩REDO要选择在业务空闲时间进行。
SELECT FREE_SPACE/TOTAL_SPACE FROM V$RLOG;
V$LOG_HISTORY:服务器启动后,记录当前节点联机日志切换的历史信息。只记录最近 128 次切换记录。

以前的版本可以通过过滤日志得知重做日志的切换时间,如下:
cat 日志.log | grep 'rfil file switch'
