达梦数据库的重做日志

一、概述

重做日志(即 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 次切换记录。

该视图新增于2023年第二季度

以前的版本可以通过过滤日志得知重做日志的切换时间,如下:

cat 日志.log | grep 'rfil file switch'
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇