实例周期性的IO升高,是因为数据库周期性执行autovacuum所致。
这种情况通常是因为频繁的更新、修改,引起年龄的增长、或脏数据的产生,从而触发autovacuum进行回收。
1. 查询库的年龄
SELECT   $$nos_db$$ AS env_name , 
Current_database(), 
nspname, 
CASE relkind 
WHEN $$r$$ THEN $$ordinary table$$ 
WHEN $$t$$ THEN $$toast table$$ 
END AS relkind, 
relname, 
age(relfrozenxid), 
CASE 
WHEN ( 
substring(reloptions::text,$$autovacuum_freeze_max_age=(\d+)$$)::int8) IS NOT NULL THEN (substring(reloptions::text,$$autovacuum_freeze_max_age=(\d+)$$)::int8)-age(relfrozenxid) 
ELSE 
SELECT setting 
FROM   pg_settings 
WHERE  name=$$autovacuum_freeze_max_age$$)::int8 - age(relfrozenxid) 
END AS age_remain 
FROM     pg_class t2 
join     pg_namespace t3 
ON       t2.relnamespace=t3.oid 
WHERE    t2.relkind IN ($$t$$, 
$$r$$) 
AND      t2.relname LIKE 't_%' 
ORDER BY age(relfrozenxid) DESC;
根据vacuum_freeze_min_age、autovacuum_freeze_max_age、vacuum_freeze_table_age等参数,判断是否是因为年龄触发的。 该文档中有说明 http://xmarker.blog.163.com/blog/static/2264840572014524112214193/
2. 如果年龄比较高,则执行vacuum freeze
vacuum freeze 的锁粒度较小,且执行较快。  参考中的vacuum freeze相关的介绍  http://www.postgres.cn/docs/9.3/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND
此时,可以解决由年龄触发的autovacuum。
3. 脏数据
经常更新,很容易造成脏数据,导致表的膨胀,请参考文档中的2.2部分 http://gitbook.cn/books/58db93b8f59193805502b491/index.html
可以先做下vacuum,然后看下表的空间占用是否会下降。必要的话,请做下vacuum full。
4. 业务维护
vacuum full可以解决当前频繁触发autovacuum的问题。正常情况下,autovacuum工作的很好,但鉴于当前业务更新量超大的情况,建议做好年龄和脏数据的监控,并及时处理。 或者在了解autovacuum的原理后,调整参数来适应业务,这个参考  http://www.postgres.cn/docs/9.3/runtime-config-autovacuum.html  
参考:

1. 具体autovacuum的机制可以参考  http://www.postgres.cn/docs/9.3/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND
2. autovacuum相关参数 http://www.postgres.cn/docs/9.3/runtime-config-autovacuum.html  
3. MVCC:
http://www.jasongj.com/sql/mvcc/
https://mp.weixin.qq.com/s?__biz=MzI5MTQ3ODU4Nw==&mid=2247483739&idx=1&sn=06e4ea74b2a94c277c89c0fa0aa58a0e
https://mp.weixin.qq.com/s/so-MaqrUtncT8pbRngUcDA
https://my.oschina.net/liuyuanyuangogo/blog/497929
http://www.jianshu.com/p/f73b9f36e555
4. checkpoint:
https://yq.aliyun.com/articles/72500
http://mysql.taobao.org/monthly/2017/04/04/
http://www.jianshu.com/p/a37ceed648a8
https://kb.cnblogs.com/page/76601/   
5. 关于数据库中的年龄:
http://francs3.blog.163.com/blog/static/405767272012469589239
http://xmarker.blog.163.com/blog/static/2264840572014524112214193/
https://yq.aliyun.com/articles/50411
6. 可以参考的官方文档:
http://www.postgres.cn/docs/9.3/

PostgreSQL年龄的处理相关推荐

  1. postgresql年龄xid维护防止数据库只读

    select * from (SELECT c.oid::regclass as table_name, greatest(age(c.relfrozenxid),age(t.relfrozenxid ...

  2. postgresql是如何求年龄的_Postgresql 通过出生日期获取年龄的操作

    三个基础的时间表示函数 current_date/current_time/now() select current_date ; 返回当前日期以 年-月-日(yyyy-mm-dd)的形式: 2019 ...

  3. postgresQL通过出生日期获取年龄

    三个基础的时间表示函数 CURRENT_DATE/CURRENT_TIME/NOW() SELECT CURRENT_DATE ; 1 返回当前日期以 年-月-日(yyyy-MM-dd)的形式: 20 ...

  4. Postgresql 通过出生日期获取年龄

    三个基础的时间表示函数 CURRENT_DATE/CURRENT_TIME/NOW() SELECT CURRENT_DATE ; 返回当前日期以 年-月-日(yyyy-MM-dd)的形式: 2019 ...

  5. Postgresql 通过身份证获取周岁年龄(精确到周岁)

    --sfzh为18位的身份证号码,从第七位起,取8位数字,如19980101 select cast (data_part('year', age(to_date(substr(sfzh, 7, 8) ...

  6. PostgreSQL:给定生日获取年龄

    SELECT date_part('year',age(CAST('1999-01-01' as date)))

  7. 在MySQL和PostgreSQL之外,为什么阿里要研发HybridDB数据库?

    编者按 \\ 在大数据火遍IT界之前,大家对数据信息的挖掘通常聚焦在BI(Business Intelligence)之上.BI具有着明确的分析需求,清晰地知道需要处理哪些信息,并且如何最终获得多维度 ...

  8. 数据库服务器 之 PostgreSQL数据库的日常维护工作

    来自:LinuxSir.Org 摘要:为了保持所安装的 PostgreSQL 服务器平稳运行, 我们必须做一些日常性的维护工作.我们在这里讨论的这些工作都是经常重复的事情, 可以很容易地使用标准的 U ...

  9. Spring Boot中使用PostgreSQL数据库

    在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ...

最新文章

  1. HTML中GET与POST的区别
  2. 红黑树(一)之 原理和算法详细介绍---转帖
  3. 在Linux中查看所有正在运行的进程
  4. Android_高清加载巨图方案 拒绝压缩图片
  5. mysql安装提示language错误_MySQL 安装 CMake Error CMAKE_CXX_COMPILER not set
  6. 使用Eclipse进行Makefile项目
  7. 中国地质大学网络计算机考试试题,2017年中国地质大学(武汉)计算机学院830计算机软件综合之计算机网络考研题库...
  8. 数字图像处理与python实现 pdf_python数字图像处理的学习路线?
  9. js 难点之原型理解
  10. 基于STM32F103ZET6 HC_SR501人体红外感应
  11. FRR -- CLI简要分析
  12. kodi树莓派_树莓派投屏秒变家庭影院(安装 kodi
  13. 算术平均值c语言函数名称,求算术平均数和集合平均数的源代码
  14. HR模块-组织信息类型创建-PP01
  15. 蓝桥杯计算机软件大赛什么时间,“蓝桥杯”全国软件设计大赛
  16. 文字转语音软件哪个好?快把这些软件收好
  17. [mysql] ERROR 2002 (HY000): Can‘t connect to local MySQL server...问题解决
  18. 为什么usb计算机连接无法识别,无法识别usb设备,教您电脑出现无法识别usb设备怎么办...
  19. 5g消息服务器,三大运营商发布“5G消息” 短消息服务全新升级 微信的对手来了...
  20. backlight设备树分析

热门文章

  1. 滴滴历经7年打磨,终于开源的Kafka云管控平台!Github Star 1.8k+!!
  2. php无法访问_php突然不能访问的原因
  3. Ubuntu18.04图标显示实时网速
  4. TextView 字体中间加 横划线
  5. uni-app H5+ 连接蓝牙打印机打印文字及二维码
  6. 手机不能打电话没有信号无服务器,手机没信号也能拨打电话?不知道了吧!
  7. java写netcdf_[转]netcdf入门
  8. Maven子模块pom文件灰色下划线
  9. 从零开始学习SEO的基础概念
  10. Linux系统程序包管理工具-RPM