Postgresql数据库autovacuum进程启动失败

最近线上Postgresql数据库中其中几台服务器更新时变得非常慢,经过排查和对比,发现时因为autovacuum未启动导致的。

1、使用表pg_stat_all_tables查看autovacuum执行记录

select schemaname,relname,last_autovacuum,last_autoanalyze from pg_stat_all_tables;

如上图,发现所有的对象对应的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、找到原因以后,安排维护时间重启数据库以后,数据库恢复正常

时间: 2024-11-08 11:08:22

Postgresql数据库autovacuum进程启动失败的相关文章

进程启动失败:安全问题 Xcode process launch failed: Security Xcode

Xcode 进程启动失败:安全问题,模拟器中没有问题,实体机器上不行 花了大约一周到两周的时间开发了一块app,昨天把 iPhone 5S 升级到了 iOS 8 GM 系统,升级没什么问题,测试app也没有什么问题,当我从 iPhone 5S 上删除掉我的app,并且重新构建的时候,出现了如下的错误. 1 2 Could not launch "My App" process launch failed: Security 于是我紧接着使用模拟器测试了一遍,没有问题,初步原因是 iPh

安装PostgreSQL数据库 ,Database Cluster 失败!

在安装PG数据库的过程中,会选择安装目录以及数据存放目录和端口,并需要选择Local,如果全部使用默认,并且设置好自己的密码后开始安装,前期进展还比较顺利,到了安装Database Cluster时,提示需要花费几分钟,没想到之后出现一个警告框,如下图. 点击OK,倒是可以安装到最后,一开始也没有管那么多.但是打开PG数据库登录的时候,出现错误"PostgreSql服务器未监听!",导致无法连接到PG数据库服务器.完了,服务器登不上,这下啥也干不成. 于是网上找办法,有的说是需要关闭防

Mongodb分片配置服务器不同步导致mongos进程启动失败

生产环境中,使用的mongodb分片,由于突然断电,服务再起来的时候发现三个mongos进程中有一个启动失败,多次尝试仍不能启动.查看日志,内容如下: 大概意思是配置服务器configserver数据不同步. 解决办法: 杀死所有mongos进程 连接到每个分片的configserver,运行命令db.runCommand('dbhash') 找到MD5值,这时两个能正常运行的MD5值是一样的,不能正常运行的MD5和上面俩都不一样 删除不能正常运行的dbpath,将能正常运行的dbpath下的数

问题1:Oracle数据库监听启动失败(重启监听,提示The listener supports no services)

编辑监听文件:/home/DB/oracle/11gR2/db/network/admin/listener.ora 在文件内添加静态监听实例,如下内容: SID_LIST_LISTENER =(SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (SID_NAME = ora11g) )) 要注意的是,全局名和实例名要完全正确,此处区分大小写,比如之前试过,实际SID实例名是:ORA11g,但是我写成了ora11g,结果发现还是启动不了,把实例名改成OR

gluster brick进程启动失败处理方法

环境说明: 复制卷,centos 7下,gluster版本3.6.7 故障现象: # gluster v status tank Status of volume: tank Gluster processPortOnlinePid ------------------------------------------------------------------------------ Brick w-ostack03.sys.bjdt.net:/data/tank49152Y30371 Br

安装PostgreSQL数据库(Linux篇) [转]

from marsprj 0.编译环境 Linux: CentOS 5.5 gcc: 4.1.2 1. 安装PostgreSQL 1) 解压postgresql-9.1.7.tar.bz2 #tar jxvf postgresql-9.1.7.tar.bz2 2) 进入解压后的postgresql-9.1.7目录 #cd postgresql-9.1.7 3) 编译postgresql源码 #./configure --prefix=/opt/pgsql-9.1.7 #make #make in

【转】PostgreSQL 数据库在 Windows Server 2008 上安装注意事项

Windows Server 2008 与普通 windows 版本最大的不同,在于其文件/目录控制权限更严.而 PostgreSQL 数据库也是一个按 "Unix/Linux 服务"程序设计的,也有自己的权限规则,因此,PostgreSQL 在 Windows Server 2008 上安装有些讲究. Windows Server 2008 相对于普通的 Windows XP 来说,有些差别:对于普通用户,除了敏感的系统文件/目录是不可读写,其它目录,默认是只读.不能写.即使当前登录

db_recovery_file_dest_size 满导致数据库启动失败

启动数据库时: [email protected]>startup ORACLE instance started. Total System Global Area 417546240 bytes Fixed Size 2213936 bytes Variable Size 327157712 bytes Database Buffers 83886080 bytes Redo Buffers 4288512 bytes Database mounted. ORA-03113: end-of-

SPFILE导致数据库启动失败

服务器断电重启后,报数据库服务无法启动,在服务器上使用AS SYSDBA 登录后连接到空实例, 使用startup启动时报'ORA-24324: 未初始化服务句柄,ORA-01041: 内部错误, hostdef 扩展名不存在'错误. 分步启动startup nomount ,依然报以上错误,判断为spfile文件损坏造成.但本机没有使用pfile备份过spfile,而修改spfile要启动修改. 解决办法,手工创建pfile 文件INITSID.ORA,打开alert日志,找到数据库启动信息,