首页 > 其他分享 >25.wal日志大小是怎样规划的?

25.wal日志大小是怎样规划的?

时间:2024-04-28 13:11:44浏览次数:14  
标签:25 wal max keep WAL 日志 size

1. WAL空间是由那些参数决定的

WAL空间主要以下这三个参数控制:

  • max_wal_size
  • min_wal_size
  • wal_keep_segments或wal_keep_size

所以需要正确设置这个几个参数。这几个参数的原理具体可以见文章:PostgreSQL数据库WAL日志空间大小以及不清理的原因深入分析

2. 空间规划以及参数设置

WAL空间的大小实际上是应该从每天产生多少的WAL的另来规划,但在还没有把数据库建立起来之前,我们很难之道这个数据库每天产生多少日志,所以这时我们通常把WAL空间规划为数据库大小的5%~10%左右。

当然如果这个数据库很小,如只有10GB大小,我们给WAL空间规划为2GB也是没有问题的。但是如果这个数据库的空间很大,如20TB,而这个数据库的更新量不大,则可以小一些,如100GB。

参数min_wal_size通常不需要设置的太大,通常1GB就够了,如果是小库(小于100GB),也可以设置的更小一些,如160MB。

max_wal_size设置为WAL空间的规划大小,而wal_keep_segments设置为max_wal_size - min_wal_size的大小。从原理上说,我们不一定要保证:wal_keep_size + min_wal_size <= max_wal_size,也是可以设置:wal_keep_size + min_wal_size > max_wal_size,这时max_wal_size就与WAL得空间大小没有太大得关系了,max_wal_size主要控制checkpoint发生的频度,每写WAL的日志量超过: max_wal_size的1/3~1/2时就会发生一次checkpoint。

注意如果wal_keep_segments设置的过小,容易导致备库失效。有些人说我们使用复制槽来防止备库需要的WAL日志被清理掉,但是我的经验是物理备库尽量不要使用复制槽,因为复制槽容易导致WAL空间失控,导致主库宕机,这个风险是很大的。通常我们设置合理的wal_keep_segments或wal_keep_size就可以保证备库在绝大多数情况下不会因主库把他需要的WAL日志清理掉而失效。另一般我们还会打开主库的归档,打开归档后,即使备库失效了,还可以通过滚归档的WAL日志来恢复过来,而不必重搭。

标签:25,wal,max,keep,WAL,日志,size
From: https://www.cnblogs.com/zmc60/p/18163538

相关文章

  • 24.影响wal日志大小的因素
    影响WAL大小的因素:其他情况下,会有以下因素影响WAL大小。WAL异常增长,或WAL一直膨胀且超过max_wal_size,执行检查点后,WAL使用量未见降低或WAL日志不会被删除重用,需要排查以下因素。独立于max_wal_size之外,wal_keep_size(MB)+1个最近的WAL文件将总是被保留。(pg13之前的版本是wal_......
  • MySQL三大日志(binlog,redolog,undolog)详解
    转发https://segmentfault.com/a/1190000041758784一、MySQL日志MySQL日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其中比较重要的就是二进制日志binlog(归档日志)、事务日志redolog(重做日志)和undolog(回滚日志)。日志关系如下图:二、redologre......
  • python可复用代码(连接数据库/字符串处理/爬虫/日志配置)【1】
    importpymysqlimportloggingimporttimeimportrandomimportloggingimportrequestsfrombs4importBeautifulSoup"""获取数据库连接"""#连接数据库获取游标defget_conn():""":return:连接,游标""&qu......
  • oracle 查看日志
    查看日志SELECT*FROMv$diag_alert_ext  使用SQL*Plus连接到Oracle数据库。运行以下命令来查看当前会话的日志记录:SELECTusername,os_username,machine,sql_textFROMv$sessionWHEREusernameISNOTNULL;复制代码这将显示当前所有活动会话的用户名、操作系统用户名、......
  • 力扣-125. 验证回文串
    1.题目题目地址(125.验证回文串-力扣(LeetCode))https://leetcode.cn/problems/valid-palindrome/题目描述如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个回文串。字母和数字都属于字母数字字符。......
  • c# Log 日志 以及不打印重复Log
    publicstaticclassLogHelp{privatestaticreadonlyILoglogger;privatestaticreadonlylog4net.ILogLInfo=log4net.LogManager.GetLogger("LogInfo");privatestaticreadonlylog4net.ILogLError=log4net.LogMan......
  • 使用Files.walk删除文件
    摘要:使用Files.walk删除指定文件名的文件。  使用Files.walk工具,递归判断指定目录中的常规文件路径名是否符合约定名称,如果满足条件就删除。publicclassDelFile{//文件名在此集合就删除privatestaticSet<String>givenFileNames=newHashSet<>();publ......
  • 电阻串并联计算器2025下载CResistors 2025 download
    可以算多个串联或者并联电阻的阻值、电压、电流、功率、电导之间的相互计算。本软件为支持64位x64奔腾指令的共享软件,价格很便宜,50元1套,就是2包烟钱。很划算。Itcancalculatethemutualcalculationofresistance,voltage,current,powerandconductanceofmultipleser......
  • dremio 25.0 KVStore 升级简单说明
    dremio25.0开始对于数据源的存储支持加密了,所以升级上稍有不同,官方给出的操作流程如下参考处理//对于已经运行的,应该先stop,然后进行应用包的替换dremiostop//执行dremio-admin的upgradedremio-adminupgrade//启动dremiostart//停止drem......
  • 23.pg_wal浅析01
    1.PG_WAL?WAL是一套保证数据完整性的标准。简要地说,WAL中心概念是数据文件(这里涉及到表和索引)修改必须在这些动作被记录之后,即描述这些修改操作的日志记录被刷到永久存储中。如果我们遵循这个过程,我们不需要在每次事务提交时刷数据页到磁盘,因我我们知道一旦发生崩溃,我们可以......