powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Autovacuum блокирует сейчас выполнение partman.run_maintenance()
8 сообщений из 8, страница 1 из 1
Autovacuum блокирует сейчас выполнение partman.run_maintenance()
    #39252685
reddaemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, сейчас проблема такая, не создаются новые партиции через partman.run_maintenance(). В PgAdmin если смотреть в ServerStatus видно, что блокируется процессом автовакуума.
...
Рейтинг: 0 / 0
Autovacuum блокирует сейчас выполнение partman.run_maintenance()
    #39252689
reddaemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите пожалуйста, что с этим делать, есть таблица большая, примерно 350 млн. записей.
...
Рейтинг: 0 / 0
Autovacuum блокирует сейчас выполнение partman.run_maintenance()
    #39252719
li_malina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
reddaemon,

Дождаться пока закончится процесс avtovacuum
от (to prevent wraparound) autovacuum вы никуда не уйдете даже если отключите autovacuum на таблице целиком. Это обязательная процедура которую можно конечно заменить ручным vacuum freeze
Можно снять процесс avtovacuum -но он опять запустится автоматически на эту таблицу
...
Рейтинг: 0 / 0
Autovacuum блокирует сейчас выполнение partman.run_maintenance()
    #39252730
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reddaemon,

почти наверняка вы использовали не пустую таблицу в качестве родоначальника иерархии

лавров смотрит на вас с одобрением

но не вы первые -- я тоже эмпирически открыл, что таки наследоваться от набитой записями таблицы небезопасно для динамического партицирования. хотя и поделками типа партмана не пользовался.
...
Рейтинг: 0 / 0
Autovacuum блокирует сейчас выполнение partman.run_maintenance()
    #39253102
reddaemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

да, не в пустую, так получилось, а что сейчас с этим делать можете подсказать?
...
Рейтинг: 0 / 0
Autovacuum блокирует сейчас выполнение partman.run_maintenance()
    #39253117
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reddaemon,

создать пустую копию предка лайком, и переназначить предка (ALTER TABLE ... NO INHERIT | ALTER TABLE ... INHERIT ) , возможно -- разыменовав по пути старую табличку во что--то. а новую -- в старое имя

хотя вы там по рукам и ногам связаны чужой свистоперделкой -- пг_партманом -- вряд ли вам удастся не разбираясь в его кишках поступить сообразно его ограничниям и логике


а стратегически -- избегать использования "решений" будь то что--то от партмана, "постгрес-про", или других клепателей наколенных свистоперделок. пользоваться технологиями, но не "решениями". "решения" писать самостоятельно.
...
Рейтинг: 0 / 0
Autovacuum блокирует сейчас выполнение partman.run_maintenance()
    #39253131
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
partman -- не рекомендовал бы
...
Рейтинг: 0 / 0
Autovacuum блокирует сейчас выполнение partman.run_maintenance()
    #39253345
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurinpartman -- не рекомендовал бы

вообще-то наш любимый скайтулс содержит не менее забавный говнокод от рукожопов, который чуть не целиком попал и в партман. как это место зовется в партмане не помню -- но оно там тоже есть:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE OR REPLACE FUNCTION londiste.create_partition(
    i_table text,
    i_part text,
    i_pkeys text,
    i_part_field text,
    i_part_time timestamp with time zone,
    i_part_period text)
  RETURNS integer AS
$BODY$
.....................
.....................
.....................

    -- parent table schema and name + quoted name
    pos := position('.' in i_table);
    if pos > 0 then
        parent_schema := substring(i_table for pos - 1);
        parent_name := substring(i_table from pos + 1);
    else
        parent_schema := 'public';
        parent_name := i_table;
    end if;
.....................



открываем тестовую базёнку и делаем:

Код: sql
1.
2.
3.
4.
CREATE SCHEMA "s.1"
  AUTHORIZATION postgres;

CREATE TABLE "s.1"."t.1" ("f.1" text);



немного медитируем -- хотя и так всё с этими донами педрами ясно.

т.е. чуть более чем все "решения" , даже от грандов, -- заведомое попадалово. надо просто читать коды, поверхностно, чтобы понимать, на что подписываешься.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Autovacuum блокирует сейчас выполнение partman.run_maintenance()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]