当前位置: 首页 > news >正文

GaussDB 预写日志回收参数设置

1 问题现象

在GaussDB数据库运行过程中,会出现大量日志,既有保证数据库安全可靠的wal日志(预写式日志,也称为Xlog),也有用于数据库日常维护的运行和操作日志等。在数据库发生故障时,可以参考这些日志进行问题定位和数据库恢复的操作。在这篇文章中详细讲述wal相关内容与演示日志回收几个参数设置。

2 技术背景

预写式日志wal(Write Ahead Log,也称为Xlog)是指如果要修改数据文件,必须是在这些修改操作已经记录到日志文件之后才能进行修改,即在描述这些变化的日志记录刷新到永久存储器之后。在系统崩溃时,可以使用wal日志对GaussDB数据库进行恢复操作。

为了避免随机I/O写性能过低的情况,会先将事务的数据库修改写入一个顺序追加的wal日志文件中,由于写日志文件是顺序I/O操作,可以达到一个很高的性能。

当系统崩溃发生时,数据库可以通过日志中记录的数据变化恢复系统崩溃前的操作。在日志回放的过程中,数据库会根据日志记录的先后顺序,依次读取每个日志的内容,然后判断该日志记录的事务对数据库数据文件的修改是否和当前相关数据文件的内容一致。如果一致,说明数据库停机之前的修改已经写入数据文件中,该日志修改无须回放;如果不一致,则说明数据库停机之前的修改还没有写入数据文件中,上次数据库停机可以是异常宕机导致,该日志对应的事务操作需要重新在相关数据文件中执行,才能保证恢复成功。

wal日志实际默认被划分为16M大小的一系列文件,这些文件默认存储在数据目录的pg_xlog子目录下,被称为wal段(WAL Segment),Checkpoint线程将日志数据写入到WAL BUFFER中,由后台wal日志线程异步刷盘。

其中,Checkpoint是wal日志中的一个位点,在这个点位之前数据库中的所有数据和wal中反映的信息相同(即可以认为这个点位前的数据已经落盘到数据文件中了)。Checkpoint也是一个操作,这个操作会往wal日志里写checkpoint位点。主要作用:

   1、记录redo point,标记redo point之前的数据均已刷脏,完成持久化存储;

    2、标记redo point之前的wal日志可以被清理加收;

    3、脏页刷盘

GaussDB数据库中Checkpoint分全量和增量,内部使用的是增量Checkpoint,1分钟执行1次。全量Checkpoint,Checkpoint期间会将缓存中脏页全部下刷落盘,导致I/O紧张,影响正常业务;不能频繁触发,redo推进慢时,宕机后redo的时间会变长。

对于增量Checkpoint,缓冲区脏页按顺序放到一个缓存队列,后台wal日志线程会依照顺序依次刷盘,Checkpoint根据刷页进度推进redo点;频率不受限制,及时推进,降低RTO。wal日志对数据库异常恢复有重要的作用,建议定期对WAL日志进行备份。

3 WAL日志相关参数

wal日志主要有以下几个相关参数:

参数名称

参数说明

取值范围

wal_level

设置写入WAL信息量的级别,不能为空或被注释掉

须知:

  • 如果需要启用WAL日志归档和主备机的数据流复制,必须将此参数设置为archive、hot_standby或者logical。
  • 如果此参数设置为minimal,archive_mode必须设置为off,hot_standby必须设置为off,max_wal_senders参数设置为0,且需为单机环境,否则将导致数据库无法启动。
  •  如果此参数设置
http://www.dtcms.com/a/282097.html

相关文章:

  • Uniapp中双弹窗为什么无法显示?
  • Java虚拟机——JVM
  • uniapp各端通过webview实现互相通信
  • UniApp 多端人脸认证图片上传实现
  • AI Agent:重构智能边界的终极形态——从技术内核到未来图景全景解析
  • uniapp写好的弹窗组件
  • 【uni-ui】hbuilderx的uniapp 配置 -小程序左滑出现删除等功能
  • kafka3.6下载安装(传统架构/KRaft模式)+实例测试
  • uniapp小程序实现地图多个标记点
  • 《设计模式之禅》笔记摘录 - 7.中介者模式
  • C#中Lambda表达式与=>运算符
  • C++:Vector类核心技术解析及其模拟实现
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十二天
  • 印章标注,支持圆形、方形印章,OCR图片识别
  • 可道云最新版1.60.02发布了,新增免费内网穿透插件
  • 041_多接口实现与冲突解决
  • DuckDB 高效导入 IPv6 地址数据的实践与性能对比
  • 创客匠人拆解:知识变现系统如何破解 “增长困局”?
  • GENERALIST REWARD MODELS: FOUND INSIDE LARGELANGUAGE MODELS
  • 从 CSV文件的加载、分区和处理 来理解 Spark RDD
  • 设计模式—初识设计模式
  • 【kubernetes】--安全认证机制
  • Linux4:线程
  • 前端技术之---应用国际化(vue-i18n)
  • UE5多人MOBA+GAS 24、创建属性UI(一)
  • ubuntu24 c++ 自定义目录编译opencv4.12
  • Ubuntu GRUB菜单密码重置教程
  • 电脑安装 Win10 提示无法在当前分区上安装Windows的解决办法
  • WPF+CEF 执行JS报错
  • 从零开始的云计算生活——番外3,LVS+KeepAlived+Nginx高可用实现方案