VACUUM to prevent wraparound

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)lists(dot)postgresql(dot)org
Subject: VACUUM to prevent wraparound
Date: 2018-04-16 12:31:53
Message-ID: 20180416123153.rgqdaixeivck4aod@vdsl.uvw.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

Одна БД (9.5) пришла в положение: автовакуум постоянно запускает запрос:

autovacuum: VACUUM public.orders (to prevent wraparound)

и тот всегда висит "to prevent wraparound"

любые попытки ALTER TABLE зависают навсегда. Попытки завершаются
успехом при остановке pg_cancel_backend этого "to prevent wraparound".

В доке пишут подымите мол autovacuum_freeze_max_age, но я что-то не
пойму как его правильно поднять.

psql
psql (9.5.11)
Введите "help", чтобы получить справку.

unera=# show autovacuum_freeze_max_age;
autovacuum_freeze_max_age
---------------------------
200000000
(1 строка)

unera=# ALTER SYSTEM SET autovacuum_freeze_max_age = 1000000000;
ALTER SYSTEM
unera=# show autovacuum_freeze_max_age;
autovacuum_freeze_max_age
---------------------------
200000000
(1 строка)

unera=# SELECT pg_reload_conf();
pg_reload_conf
----------------
t
(1 строка)

unera=# show autovacuum_freeze_max_age;
autovacuum_freeze_max_age
---------------------------
200000000
(1 строка)

unera=# show autovacuum;
autovacuum
------------
off
(1 строка)

Остановка autovacuum тоже не помогла. Как только киляешь этот запрос -
он сразу запускает новый. И новый в этом состоянии `prevent` и все. Дальше
с БД сделать ничего нельзя.
Не хочется ее выключать. Можно что-то сделать без простоя?

--

. ''`. Dmitry E. Oboukhov <unera(at)debian(dot)org>
: :’ :
`. `~’ GPG key: 4096R/08EEA756 2014-08-30
`- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Sergei Kornilov 2018-04-16 12:48:11 Re: VACUUM to prevent wraparound
Previous Message Nikolay Samokhvalov 2018-04-13 15:19:46 Re: SELECT FOR UPDATE без транзакции