Size: a a a

pgsql – PostgreSQL

2020 May 28

A

Andrey in pgsql – PostgreSQL
Alex
можешь взять любой удобный язык программирования. например python.
вопрос был о _простом_ способе. Накодить то всегда можно.
источник

SB

Sergey Bezrukov in pgsql – PostgreSQL
Andrey
вопрос был о _простом_ способе. Накодить то всегда можно.
на баше напиши вызов psql .... & в цикле, чего уж проще
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Konstantin Knizhnik
Постгрес  использует malloc внутри бэкенда для "рабочей" памяти при обработке запроса.
Если malloc  возвращает NULL, то просто репортится ошибка:

src/backend/utils/mmgr/mcxt.c:
 if (unlikely(ret == NULL))
 {
   MemoryContextStats(TopMemoryContext);
   ereport(ERROR,
       (errcode(ERRCODE_OUT_OF_MEMORY),
        errmsg("out of memory"),
        errdetail("Failed on request of size %zu in memory context \"%s\".",
              size, context->name)));
 }


После чего абортируется текущая транзакция. И сам постгрес и даже  бэкенд продолдают работу.
Размер временной памяти задаётся work_mem параметром, но это не жётское ограничение но "пожелание" посгресу не выходить за эту границу.

Но недостаток памяти в системе может сказаться не только на malloc-е.
И для shared memory может не хватить физической памяти (особенно если выключен свап)
Тогда придёт страшный OOM killer и прибьёт первого попавшегося. Это с большой вероятностью приведёт к перезагрузке всего постгреса.

Справиться с этим на уровне посгреса никак нельзя. Можно пытаться ограничить аппетиты бэкендов и других процессов с помощью квот или  cgroups. Ну или иметь достаточный СВАП.
Ну а самое правильное - не запускать такие процессы которые выжрают всю память:)
Для shared buffers ведь разве мы не выделяем заранее кусок с huge paged? В этом случае я пологал что у меня есть чётко зарезервированное количество памяти.
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
huga pages используются далеко не всегда
источник

MM

Max Mokryi in pgsql – PostgreSQL
привет! Подскажите, есть установленый 9.2 на проде и 10.5. Размер базы около 30Гб. Как наиболее быстро мигрировать? Система очень критична к простоям. Через pg_dump/pg_restore уйдет минут 40-50. Нужно как-то побыстрее.... Хотя бы минут в 5-7 уложиться
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
И вы выделяете виртуальную память. А маппирование на физическую осуществляет операционка и не всегда это сделать в состоянии.
источник

T

The in pgsql – PostgreSQL
Что операционка сделать не в состоянии?
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Alexander Nikitin
Было выступление Сальникова на эту тему, про то, что не надо снимать бэкапы с реплик. На мой взгляд, если мониторинг настроен и видно, что реплики не отстают, то пусть снимается бэкап с реплики (я pg_probackup  использовал).
Смотря каким способом, и проверяются ли эти бэкапы потом. У меня с реплики, и я счастлив.
источник

l

lnuynxa in pgsql – PostgreSQL
Max Mokryi
привет! Подскажите, есть установленый 9.2 на проде и 10.5. Размер базы около 30Гб. Как наиболее быстро мигрировать? Система очень критична к простоям. Через pg_dump/pg_restore уйдет минут 40-50. Нужно как-то побыстрее.... Хотя бы минут в 5-7 уложиться
мигрировать куда? на новую версию?
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
lnuynxa
хм, бекап самой базы.
без WAL журналов
Бэкап всех файлов и wal-ы для консистентности это тоже полный бэкап.
источник

MM

Max Mokryi in pgsql – PostgreSQL
lnuynxa
мигрировать куда? на новую версию?
Да. То есть параллельно уже 10.5 крутится.... нужно с минимальными временными потерями сменить версию... А то 9.2 несколько устарела
источник

l

lnuynxa in pgsql – PostgreSQL
Max Mokryi
Да. То есть параллельно уже 10.5 крутится.... нужно с минимальными временными потерями сменить версию... А то 9.2 несколько устарела
https://www.percona.com/blog/2019/04/04/replication-between-postgresql-versions-using-logical-replication/
возможно  получится через логическую репликацию
источник

T

The in pgsql – PostgreSQL
Лоджик репликейшн — это просто!
источник

l

lnuynxa in pgsql – PostgreSQL
Виталий Кухарик
Бэкап всех файлов и wal-ы для консистентности это тоже полный бэкап.
Ну я имел в виду. что возможно с реплики нельзя архивить wal логи, но мне сказали что можно.
так что все ок
источник

SG

Sergey Gr in pgsql – PostgreSQL
The
Что операционка сделать не в состоянии?
Выдать приложению столько RSS сколько разрешила аллоцировать в VirtMem
источник

MM

Max Mokryi in pgsql – PostgreSQL
Хм... Там есть про 9.4, а у меня 9.2..... нужно смотреть
источник

l

lnuynxa in pgsql – PostgreSQL
Max Mokryi
Хм... Там есть про 9.4, а у меня 9.2..... нужно смотреть
мэх, можно попробовать сначала легонько сделать pg_upgrade до 9.4
источник

T

The in pgsql – PostgreSQL
Sergey Gr
Выдать приложению столько RSS сколько разрешила аллоцировать в VirtMem
Ну, допустим, есть своп для этого.
А ещё есть настройки оверкоммита, которые как раз защищают от.
источник

MM

Max Mokryi in pgsql – PostgreSQL
lnuynxa
мэх, можно попробовать сначала легонько сделать pg_upgrade до 9.4
Да тут уже пофигу.... что до 9.4, то до 10
источник

l

lnuynxa in pgsql – PostgreSQL
Max Mokryi
Да тут уже пофигу.... что до 9.4, то до 10
ну, апгрейд он быстрый довольно.
А тебе всеравно нужно будет базу мигрировать на другой хост, как я поня
источник