先看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相关参数相关推荐

  1. PostgreSql vacuum

    一. 概述 在 PostgreSQL 中,被删除或者被更新的元组并没有在物理上从它们的表中移除,它们将一直存在,直到一次 VACUUM 被执行.因此有必要周期性地做 VACUUM,特别是在频繁被更新的 ...

  2. Postgresql vacuum最佳实践

    Postgresql作为世界上最先进的HTAP数据库,以其超高在线事务处理及分析性能和强大的功能被广泛应用与各行各业中.但其实它也并不完美,说到postgres,不得不提那个让人一直头疼的问题,也是数 ...

  3. BUG: vacuum freeze 报错 ERROR: found xmin ...... from before relfrozenxid .... 处理方法

    template1=> vacuum freeze template1.pg_catalog.pg_authid; ERROR: found xmin 1988747257 from befor ...

  4. MySQL8常见客户端和启动相关参数

    MySQL8常见客户端和启动相关参数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL常见的客户端 1>.使用MySQL服务自带的mysql连接工具 2>. ...

  5. Linux kernel内存管理之OOM相关参数

    一.OOM概念 OOM是Out Of Memory(内存溢出)的缩写,虽然linux kernel的内存管理有很多机制(从cache中回收.swap out等)可以满足用户空间的各种虚拟内存需求,但是 ...

  6. postgresql vacuum 与 transaction ID wraparound 总结

    2019独角兽企业重金招聘Python工程师标准>>> 1,每次insert ,该行的xmin填充为该次insert的xid,xmax填充为0  2,每次update, 旧行的xmi ...

  7. mysql 中修改对象_在MySQL中,创建一个数据库后,还可以对象其进行修改,不过这里的修改是指可以修改被创建数据库的相关参数,也可以修改数据库名。...

    [多选题]注射时,在(  )情况下,采用较高的注射速率. [单选题]通常,所设置的模具温度是指和制品接触的模腔内表面在(   ). [单选题]反映某一事件发生强度的指标应选用 [判断题]当试样制备之后 ...

  8. linux 内核调整相关参数

    linux 内核调整相关参数 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN***,默认 ...

  9. Data Guard相关参数学习介绍

    LOG_ARCHIVE_DEST_n 参数属性介绍 该参数的n在11g中为1到31,下列为参数的属性值: u  AFFIRM and NOAFFIRM u  ALTERNATE (not suppor ...

最新文章

  1. linux平台下QtCreator中集成Valgrind系列工具
  2. mysql中的触发器
  3. mysql错误消息1_MySQL出错信息: Subquery returns more than 1 row及其解决方法
  4. eclipse安装SVN插件报错Unable to connect
  5. python __builtins__ frozenset类 (27)
  6. 大话存储学习笔记(4)
  7. 线性表—线性表的合并
  8. Visual Studio下的 JS CSS 压缩和编辑插件
  9. 刚入行的测试工程师如何自学软件测试【下篇】-- 软实力
  10. 自己的 「QA票 CheckList 」 KPT
  11. 计算机硬件基本常识面试,硬件工程师面试题集(含答案_很全)要点
  12. 第一次QMK编译记录(11.26)
  13. linux锁屏命令 TM,Linux基本命令的使用(上)
  14. NIUSHOP wap端底部导航设置
  15. PyImport_ImportModule
  16. C++基础---空类型
  17. PS需要用到数位板吗,PS中怎么设置和运用手绘板
  18. R 返回元素在数据框或者向量中的位置?
  19. 如何成为一个优秀的班主任?
  20. IDEA-Translation3.0插件右键无文档翻译解决

热门文章

  1. IDEA 2023激活码及主题设置最新方式
  2. java记事本课程设计_课程设计(部分代码)之java版(记事本)
  3. android 动画菜鸟,android---动画入门(一)
  4. 小米路由R3G Breed 刷Padavan/openWRT固件
  5. 王者荣耀微信和qq服务器,王者荣耀QQ区VS微信区有什么区别?网友:一个天,一个地...
  6. Element Plus介绍
  7. Mac电脑如何查看配置
  8. 介绍一下关于goodnotes,notability的手帐笔记素材的网站,含有A4大量的打印纸,电子手帐,贴图,便签,字体
  9. HTTPS TLS/SSL握手过程
  10. 十年前 十年后 小小感慨一下