Autovacuum未在Openshift Online Postgres墨盒上运行

时间:2014-04-22 09:20:50

标签: postgresql openshift autovacuum

我的Openshift在线墨盒上有Postgres 9.2。使用Pgadmin3,我已经启用(通过勾选方框)postgresql.conf的autovuum设置。但是,autovacuum似乎没有运行。

这就是我所拥有的:

  1. ps -ef | grep -i vacuum 没有显示自动真空过程。

  2. 使用psql控制台show autovacuum表示其值为ON

  3. 使用psql控制台,SELECT schemaname, relname, last_vacuum, last_autovacuum from FROM pg_stat_user_tables;在last_vacuum和last_autovacuum列中没有给出任何值,即使我使用pgadmin3进行了手动真空维护功能。

  4. pgAdminIII中db的属性选项卡显示&AUTHACUUM值未运行'

  5. 我想念什么?

    EDIT
    当我试图在服务器上找到文件时,我也无法访问Openshift Online上的postgresql.conf - 希望手动编辑文件而不是使用pgAdminIII。
    - 发现这个https://www.openshift.com/forums/openshift/how-do-i-set-maxpreparedtransactions-on-my-postgresql-cartridge我现在能够查看/编辑我的postgresql.conf。显然,autovacuum已经打开,因此conf具有正确的设置。

    问题pg_ctl restart -m fast时我得到了

    LOG:  could not bind socket for statistics collector: Permission denied 
    LOG:  trying another address for the statistics collector 
    LOG:  could not bind socket for statistics collector: Permission denied 
    LOG: trying another address for the statistics collector 
    LOG:  could not bind socket for statistics collector: Cannot assign requested address LOG:  trying another address for the statistics collector 
    LOG:  could not bind socket for statistics collector: Cannot assign requested address LOG:  disabling statistics collector for lack of working socket 
    WARNING:  autovacuum not started because of misconfiguration 
    HINT:  Enable the "track_counts" option. 
    LOG:  database system was shut down at 2014-04-22 09:58:19 GMT 
    LOG:  database system is ready to accept connections
    

    虽然在postgresql.conf中已将track_counts设置为on

    很抱歉这么愚蠢,但是非常感谢任何帮助或指示。 提前谢谢。

2 个答案:

答案 0 :(得分:4)

我遇到了类似的问题,并在this discussion中找到了有用的提示:

  

...对于某些疯狂的原因,openshit禁用了localhost,而autovacuum只连接到localhost,我想它们是不是有意义,他们不想尝试真空远程数据库......但是openhit打破了autovacuum。

我找到的一个解决方案(我可能会使用)是手动添加强制真空的cronjob。 here是一个看起来很有前途的批处理脚本,但要注意强制真空可能涉及的副作用(当然,取决于你的app)。

答案 1 :(得分:0)

修补postgres以使用OPENSHIFT_PG_HOST环境变量而不是localhost似乎可以解决问题:pgstat.patch