Postgresql vacuum freeze相关参数
先看3个参数:
#如果表的事务ID年龄大于该值, 则数据库触发freeze,即使未开启autovacuum也会强制触发FREEZE
autovacuum_freeze_max_age | 500000
#在手动或自动垃圾回收时, 如果记录的事务ID年龄大于该值, 将被FREEZE
vacuum_freeze_min_age | 10
#在手动垃圾回收时, 如果表的事务ID年龄大于该值, 将触发FREEZE. 该参数的上限值为 %95 autovacuum_freeze_max_age
vacuum_freeze_table_age | 100000
首先如果pg_class表age(relfrozenxid)大于autovacuum_freeze_max_age,那么数据库系统会自动做vacuum,回收年龄
没有达到500000之前,不做vacuum
hank=> select oid::regclass,age(relfrozenxid) from pg_class where relname='hank' and relowner=16392;oid | age
------+--------hank | 495471
(1 row)
达到后,立即做vacuum
hank=> select oid::regclass,age(relfrozenxid) from pg_class where relname='hank' and relowner=16392;oid | age
------+--------hank | 504559
(1 row)
可见日志:
2017-08-07 17:23:44.193 CST,,,4774,,5988319d.12a6,2,,2017-08-07 17:23:41 CST,3/5308,0,LOG,00000,"automatic vacuum of table ""hank.hank.hank"": index scans: 0
pages: 0 removed, 1596 remain, 0 skipped due to pins, 0 skipped frozen
tuples: 0 removed, 307278 remain, 0 are dead but not yet removable
buffer usage: 3204 hits, 1 misses, 1278 dirtied
avg read rate: 0.003 MB/s, avg write rate: 3.386 MB/s
system usage: CPU 0.00s/0.05u sec elapsed 2.94 sec",,,,,,,,,""
vacuum后age回到vacuum_freeze_min_age所设置的值,注意这里做的是vacuum,不是vacuum freeze,如果手工做vacuum freeze,age(relfrozenxid)会降到0
hank=> select oid::regclass,age(relfrozenxid) from pg_class where relname='hank' and relowner=16392;oid | age
------+-----hank | 10
(1 row)
这里手工freeze后,回到0开始计数
hank=> vacuum freeze hank;
VACUUM
hank=> select oid::regclass,age(relfrozenxid) from pg_class where relname='hank' and relowner=16392;oid | age
------+-----hank | 0
(1 row)
另外对vacuum_freeze_table_age参数说明一下:
普通的vacuum由visibility map决定表的那些page需要被扫描,正常情况下,会跳过没有dead row的page,即使这些page有旧的xid值,所以,正常vacuum并不冻结表中所有行的xid,vacuum_freeze_table_age控制什么时候需要扫描全表,并冻结所有行的xid,如果事物数大于(vacuum_freeze_table_age-vacuum_freeze_min_age),那么就扫描所有可见的,没有冻结的page,如果vacuum_freeze_table_age设置为0,那么每次都会强制扫描所有page。
Postgresql vacuum freeze相关参数相关推荐
- PostgreSql vacuum
一. 概述 在 PostgreSQL 中,被删除或者被更新的元组并没有在物理上从它们的表中移除,它们将一直存在,直到一次 VACUUM 被执行.因此有必要周期性地做 VACUUM,特别是在频繁被更新的 ...
- Postgresql vacuum最佳实践
Postgresql作为世界上最先进的HTAP数据库,以其超高在线事务处理及分析性能和强大的功能被广泛应用与各行各业中.但其实它也并不完美,说到postgres,不得不提那个让人一直头疼的问题,也是数 ...
- BUG: vacuum freeze 报错 ERROR: found xmin ...... from before relfrozenxid .... 处理方法
template1=> vacuum freeze template1.pg_catalog.pg_authid; ERROR: found xmin 1988747257 from befor ...
- MySQL8常见客户端和启动相关参数
MySQL8常见客户端和启动相关参数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL常见的客户端 1>.使用MySQL服务自带的mysql连接工具 2>. ...
- Linux kernel内存管理之OOM相关参数
一.OOM概念 OOM是Out Of Memory(内存溢出)的缩写,虽然linux kernel的内存管理有很多机制(从cache中回收.swap out等)可以满足用户空间的各种虚拟内存需求,但是 ...
- postgresql vacuum 与 transaction ID wraparound 总结
2019独角兽企业重金招聘Python工程师标准>>> 1,每次insert ,该行的xmin填充为该次insert的xid,xmax填充为0 2,每次update, 旧行的xmi ...
- mysql 中修改对象_在MySQL中,创建一个数据库后,还可以对象其进行修改,不过这里的修改是指可以修改被创建数据库的相关参数,也可以修改数据库名。...
[多选题]注射时,在( )情况下,采用较高的注射速率. [单选题]通常,所设置的模具温度是指和制品接触的模腔内表面在( ). [单选题]反映某一事件发生强度的指标应选用 [判断题]当试样制备之后 ...
- linux 内核调整相关参数
linux 内核调整相关参数 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN***,默认 ...
- Data Guard相关参数学习介绍
LOG_ARCHIVE_DEST_n 参数属性介绍 该参数的n在11g中为1到31,下列为参数的属性值: u AFFIRM and NOAFFIRM u ALTERNATE (not suppor ...
最新文章
- 计算C#程序执行时间
- JS_模拟广告栏跟随效果
- linux蓝天模具风扇控制软件,ECView最新版下载-蓝天原厂风扇转速策略调节软件clevo ecview下载 v6.8 通用版-IT猫扑网...
- OV7670摄像头模块资料
- Pyltp的安装使用笔记
- IDEA工具-鼠标滚轮调整字体大小
- inprivate浏览是什么意思_inprivate浏览是什么意思,怎样关闭inprivate浏览器
- 如何在win10上显示隐藏文件
- 目标框选之单阶段与两阶段目标检测区别
- 英文商务邮件开场白结尾
- 小说作者推荐:春如棠合集
- 7-20 打印九九口诀表(15 分)
- android-smart-image-view图片加载简单使用
- 最全的100个Python精选库,建议收藏!
- 泽塔云在2022年Gartner中国区超融合市场竞争报告中被评为优秀厂商代表
- 工业交换机冗余什么意思?
- c语言家庭生活计划管理系统,[参赛作品]家庭智能鱼缸
- 2022上海市安全员C证培训试题及模拟考试
- 专业免费的图片、照片去灰底、修复软件,专业人员都在用它
- 个人网络安全学习路线规划(附视频教程)
热门文章
- tan函数在线性方程中的美妙应用
- 编写五子棋的完整python代码_python开发 实现单机五子棋!
- Redis开发和运维相关shell命令总结
- 当你有一个目标时,就请朝着它努力,你一定会成功的--世界杯进球记录第一射手克劳泽...
- 摄影基础教程:第一章:照相机
- 【Go】golang strings包的Trim的使用说明
- Qt编写的项目作品25-硬件综合应用(热敏打印+身份证+短信猫)
- 【帅琪达】IDEA自动导包和自动删包设置
- 单年投资规模超往年总和 Web3.0:风口炒作还是互联网的未来?
- 使用openpyxl库,遇到批量合并单元格问题