大佬教程收集整理的这篇文章主要介绍了Postgresql数据库autovacuum进程启动失败,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
最近线上PostgreSql数据库中其中几台服务器更新时变得非常慢,经过排查和对比,发现时因为autoVACUUM未启动导致的。
1、使用表pg_stat_all_tables查看autoVACUUM执行记录
SELEctschemaname,relname,last_autovacuum,last_autoanalyzefrompg_stat_all_tables;
s.width=650;" src="http://img.code.cc/vcimg/static/loading.png" src="http://s3.51cto.com/wyfs02/M02/47/61/wKioL1P5_8qwmN2gAAEZ9Q0KloA474.jpg">
如上图,发现所有的对象对应的analyze及VACUUM执行记录均为空。
2、使用ps -ef | grep POSTGRes发现POSTGRes对应的analyze及VACUUM进程均未启动
3、查看POSTGRes.conf文件及show all查看autoVACUUM选项设置正常
autoVACUUM=on
4、查看文档autoVACUUM启动的三个条件如下:
a)设置 autoVACUUM = on
b)设置 track_counts = on
C)设置 /etc/hosts #能 Ping通 localhost(该条件之前不满足)
原来是这个原因导致的,最开始的时候因为项目特殊原因/etc/hosts文件中未设置localhost。
后来添加localhosts以后未重启POSTGResql,导致track_counts在没有设置localhosts的情况下默认为off状态,而analyze及VACUUM也无法启动,从而数据库对应表的统计信息及VACUUM均未能成功执行。
5、找到原因以后,安排维护时间重启数据库以后,数据库恢复正常
s.width=650;" src="http://img.code.cc/vcimg/static/loading.png" src="http://s3.51cto.com/wyfs02/M02/47/6E/wKiom1P6yV6RzWrzAAG9qdB-fa4502.jpg">
可以看到进程autoVACUUM launcher process及stats collector process均启动成功
以上是大佬教程为你收集整理的Postgresql数据库autovacuum进程启动失败全部内容,希望文章能够帮你解决Postgresql数据库autovacuum进程启动失败所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。