标签: autovacuum

如何判断PostgreSQL的Autovacuum是否在UNIX上运行?

如何判断Postgres 9.x中的autovacuum守护进程是否正在运行并维护数据库集群?

unix postgresql autovacuum

43
推荐指数
2
解决办法
3万
查看次数

postgres pg_toast在autovacuum中 - 哪个表?

我在pg_toast上运行了一个autovacuum进程:

select query, from pg_stat_activity where query like '%autov%';
"autovacuum: VACUUM pg_toast.pg_toast_15404513 "
Run Code Online (Sandbox Code Playgroud)

我如何找出这个pg_toast所属的表/索引/什么?或者autovacuum正在处理其他事情?

postgresql autovacuum

16
推荐指数
2
解决办法
9372
查看次数

如何判断autovacuum是否在Windows Server 2003上为我的PGSQL数据库运行?

在8.x之前的日子里,我在Linux上运行了大量的PGSQL数据库,并通过维护脚本显式清除了数据库.

当8.x出现时,我没有移动到那些系统上的autovacuum,因为它工作正常,所以不需要改变任何东西.所以我不是autovacuum专家.

现在在8.x之后的时代,我发现自己在Windows Server 2003或更新版本上运行了一些PGSQL数据库.

看起来autovacuum 应该正在运行,因为我们已按照说明操作并将其保留在.conf文件中.

但是,将PGAdmin连接到数据库会提示我们应该运行VACUUM.

如何判断autovacuum守护程序是否正在运行并负责数据库并正确吸尘?

postgresql autovacuum

10
推荐指数
1
解决办法
3944
查看次数

杀死autovacuum的危险:VACUUM查询(以防止环绕)

有一个autovacuum查询需要很长时间才能运行,并阻止alter query运行.

在完成之前杀死这个autovacuum进程有什么危险?

PID      QUERY
16967 | autovacuum: VACUUM public.articles (to prevent wraparound)

以下是我如何杀死它:

select pg_terminate_backend(16967) from pg_stat_activity;
Run Code Online (Sandbox Code Playgroud)

database postgresql autovacuum

9
推荐指数
1
解决办法
1万
查看次数

虽然进程正在运行,但postgresql autovacuum无法正常工作

我在Ubuntu上运行PostgreSQL 9.2.autovacuum进程正在服务器上运行.

数据库负载很重,1000次添加和100次删除每天,但似乎autovacuum没有启动.

原木中没有任何与真空有关的东西.

ps -ef | grep -i vacuum

生产: postgres 1406 1130 0 Oct13 00:00:14 postgres: autovacuum launcher process

运行查询SELECT last_autovacuum , last_autoanalyze FROM pg_stat_user_tables; 在最后一个autovacuum列中不生成任何记录,并且2在suto_analyze列中输入.

postgresql.conf的相关部分是:

#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = on         # Enable autovacuum subprocess?  'on'
                    # requires track_counts to also be on.
log_autovacuum_min_duration = 250   # -1 disables, 0 logs all actions and
                    # their durations, > 0 logs only
                    # actions running at least this number
                    # of milliseconds.
autovacuum_max_workers …
Run Code Online (Sandbox Code Playgroud)

database postgresql ubuntu autovacuum

8
推荐指数
1
解决办法
7867
查看次数

为什么真空分析改变查询计划而分析没有?

我想在Postgres中利用仅索引扫描的强大功能,并尝试使用一个表:

CREATE TABLE dest.contexts
(
  id integer NOT NULL,
  phrase_id integer NOT NULL,
  lang character varying(5) NOT NULL,
  ranking_value double precision,
  index_min integer,
  index_max integer,
  case_sensitive boolean,
  is_enabled boolean,
  is_to_sync boolean NOT NULL DEFAULT true
);

insert into dest.contexts select * from source.contexts;

alter table dest.contexts
  add constraint pk_contexts primary key (id, phrase_id, lang);

 CREATE INDEX idx_contexts_
  ON dest.contexts
  USING btree
  (id, is_enabled, lang, phrase_id, ranking_value, index_min, index_max, case_sensitive);
Run Code Online (Sandbox Code Playgroud)

索引涵盖了我想在下一个查询中使用的所有列:

explain analyze
select ranking_value, index_min, index_max, case_sensitive
from dest.contexts
where …
Run Code Online (Sandbox Code Playgroud)

postgresql vacuum sql-execution-plan postgresql-9.4 autovacuum

8
推荐指数
1
解决办法
347
查看次数

PostgreSQL:如何启用autovacuum?

如何在PostgreSQL中启用autovacuum?我理解目的,我找不到关于如何启用它的简单答案.

postgresql database-administration vacuum autovacuum

7
推荐指数
1
解决办法
6980
查看次数

Autovacuum未在Openshift Online Postgres墨盒上运行

我的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的属性选项卡表示'未运行'的AUTOVACUUM值

我错过了什么?

编辑
我也试图在服务器上找到文件时无法访问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 …
Run Code Online (Sandbox Code Playgroud)

postgresql openshift autovacuum

6
推荐指数
1
解决办法
874
查看次数

刷新实例化视图同时导致表膨胀

在PostgreSQL 9.5中,我决定创建一个物化视图“效果”,并计划每小时进行一次并发刷新,因为我希望它始终可用:

REFRESH MATERIALIZED VIEW CONCURRENTLY effects;
Run Code Online (Sandbox Code Playgroud)

在开始的时候,一切都运行良好,我的实例化视图令人耳目一新,磁盘空间使用大致保持不变。


问题

但是,一段时间后,磁盘使用率开始线性增长。

我已经得出结论,这种增长的原因是物化视图,并从答案中运行查询以得到以下结果:

               what                |  bytes/ct   | bytes_pretty | bytes_per_row
-----------------------------------+-------------+--------------+---------------
 core_relation_size                | 32224567296 | 30 GB        |         21140
 visibility_map                    |      991232 | 968 kB       |             0
 free_space_map                    |     7938048 | 7752 kB      |             5
 table_size_incl_toast             | 32233504768 | 30 GB        |         21146
 indexes_size                      | 22975922176 | 21 GB        |         15073
 total_size_incl_toast_and_indexes | 55209426944 | 51 GB        |         36220
 live_rows_in_text_representation  |   316152215 | 302 MB       |           207
 ------------------------------ …
Run Code Online (Sandbox Code Playgroud)

postgresql materialized-views vacuum postgresql-9.5 autovacuum

6
推荐指数
1
解决办法
1202
查看次数

如何防止Postgres中表的autovacuum

我有大表,我只有插入和选择,所以当这个表的autovacuum运行时 - 系统非常慢.我已关闭特定表的autovacuum:

ALTER TABLE ag_event_20141004_20141009  SET (autovacuum_enabled = false, toast.autovacuum_enabled = false);
ALTER TABLE ag_event_20141014_20141019  SET (autovacuum_enabled = false, toast.autovacuum_enabled = false);
Run Code Online (Sandbox Code Playgroud)

在此之后(一段时间之后),我看到:

select pid, waiting, xact_start, query_start,query from pg_stat_activity order by query_start;

 18092 | f       | 2014-11-04 22:21:05.95512+03  | 2014-11-04 22:21:05.95512+03  | autovacuum: VACUUM public.ag_event_20141004_20141009 (to prevent wraparound)
 19877 | f       | 2014-11-04 22:22:05.889182+03 | 2014-11-04 22:22:05.889182+03 | autovacuum: VACUUM public.ag_event_20141014_20141019 (to prevent wraparound)
Run Code Online (Sandbox Code Playgroud)

我做了什么shell来切换这个表的autovacuuming?

postgresql postgresql-9.2 autovacuum

5
推荐指数
1
解决办法
6224
查看次数