Size: a a a

pgsql – PostgreSQL

2020 August 18

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Newman
Привет всем.  Кто может, подсказать по траблшутингу Postgres. Бывает периоды когда, отваливается соеденения от БД, и также бывает когда Postgres нагружает CPU. Логи читаю, но конечно разные ошибки с кюрями мне особо ничего не говорят т.к. я не БД админ/дев . С чего начать анализ производительности узких мест, может тулзы есть какие?
Попробуйте подключить okmeter. Для Вас это будет проще всего.
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
И подумайте, а может нужен DBA. Или договор на поддержку.
источник

N

Newman in pgsql – PostgreSQL
Виталий Кухарик
Попробуйте подключить okmeter. Для Вас это будет проще всего.
Спасибо, пока они думают держать ли меня, а про DBA уж тем более))
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Беги)
источник

N

Newman in pgsql – PostgreSQL
😁  как ноги вырастут, так и побежим)
источник

EZ

Evgenii Zhuravlev in pgsql – PostgreSQL
Newman
Привет всем.  Кто может, подсказать по траблшутингу Postgres. Бывает периоды когда, отваливается соеденения от БД, и также бывает когда Postgres нагружает CPU. Логи читаю, но конечно разные ошибки с кюрями мне особо ничего не говорят т.к. я не БД админ/дев . С чего начать анализ производительности узких мест, может тулзы есть какие?
в top на момент, когда Постгря грузит CPU есть что интересное, необычное?
Я так текущий php сокет-вебсервер нашел) всю постгрю излазил, а заметил на рестарте сервера, что полностью одно ядро отъедено php сокетом с этой приложенькой.
источник

N

Newman in pgsql – PostgreSQL
Evgenii Zhuravlev
в top на момент, когда Постгря грузит CPU есть что интересное, необычное?
Я так текущий php сокет-вебсервер нашел) всю постгрю излазил, а заметил на рестарте сервера, что полностью одно ядро отъедено php сокетом с этой приложенькой.
Дело в том что, мне уже сообщают о проблеме спустя. Если был бы мониторинг , тогда я смог бы поглядеть что происходит...
источник

EZ

Evgenii Zhuravlev in pgsql – PostgreSQL
Newman
Дело в том что, мне уже сообщают о проблеме спустя. Если был бы мониторинг , тогда я смог бы поглядеть что происходит...
самый бомж-вариант при отсутствии мониторинга пописать дамп atop, и по времени примерно прикинуть - но это далеко не бест-практис, по хорошему надо хоть чем-то что-то собрать, конечно (я про мониторинг)
источник

a

antuan in pgsql – PostgreSQL
добрейшего денечка
задача: в рамках одного запроса нужно вставить данные в таблицу, затем через select... for update получить все вставленные строки.
такой вариант не работает (возвращает пустой результат):
drop table if exists test;
create table test (id serial primary key , value text unique );
with inserted as (
   insert into test (value)
   select ser::text from generate_series(0, 10) as ser
   on conflict (value) do update
   set value=excluded.value
   returning *
)
select * from test
   inner join inserted using (id) for update;

наблюдения: если убрать for update, то:
* если в таблице не было строк, ничего не возвращает
* если в таблице были строки - возвращает норм

как можно добиться желаемого?
заранее благодарен за помощь
источник

A

Andrey in pgsql – PostgreSQL
Victor Yegorov
ALTER SCHEMA public OWNER TO user_db;
REVOKE ALL ON SCHEMA public FROM public;
что-то я попробовал на тесте так сделать и не помогло, все равно пользователь может создавать таблицы, делал такие действия
ALTER SCHEMA public OWNER TO postgres;
REVOKE ALL ON SCHEMA public FROM public;
GRANT CONNECT ON DATABASE stage_test TO andrey;
\c stage_test
GRANT USAGE ON SCHEMA public TO andrey;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO andrey;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO andrey;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON SEQUENCES TO andrey;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO andrey;


\dn+ после этого такой
public | postgres | postgres=UC/postgres | standard public schema
источник

N

Newman in pgsql – PostgreSQL
Evgenii Zhuravlev
самый бомж-вариант при отсутствии мониторинга пописать дамп atop, и по времени примерно прикинуть - но это далеко не бест-практис, по хорошему надо хоть чем-то что-то собрать, конечно (я про мониторинг)
Да, у нас как раз девы что-то на питоне собирают, я еще до конца не вник в их решения. А так да буду думать про мониторинг, желательно опенсорсный. Спасиб.
источник

SG

Sergey Gr in pgsql – PostgreSQL
Evgenii Zhuravlev
самый бомж-вариант при отсутствии мониторинга пописать дамп atop, и по времени примерно прикинуть - но это далеко не бест-практис, по хорошему надо хоть чем-то что-то собрать, конечно (я про мониторинг)
atop вполне себе вариант для не очень быстрых процессов. Он собирает куда больше данных чем средний мониторинг
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
pgcenter рекомендую
источник

NB

Nick Belous in pgsql – PostgreSQL
Есть задача: необходимо объединить 3 таблицы в одно представление. Соответственно объединяю через union all.
Возникает проблема: в разных таблицах разные типы данных. Mapping по склеиванию записан в excel, но вручную просматривать все 600+ столбцов в каждой таблицы очень долго. Если присутствует такая возможность, то не могли бы подсказать, как можно оптимизировать процесс или только ручками?
источник

R

RTM in pgsql – PostgreSQL
пример покажите маппинга
источник

R

RTM in pgsql – PostgreSQL
в каком виде он в экселе
источник

NB

Nick Belous in pgsql – PostgreSQL
Одну секунду. Постараюсь выделить кусок.
источник

NB

Nick Belous in pgsql – PostgreSQL
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Andrey
что-то я попробовал на тесте так сделать и не помогло, все равно пользователь может создавать таблицы, делал такие действия
ALTER SCHEMA public OWNER TO postgres;
REVOKE ALL ON SCHEMA public FROM public;
GRANT CONNECT ON DATABASE stage_test TO andrey;
\c stage_test
GRANT USAGE ON SCHEMA public TO andrey;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO andrey;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO andrey;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON SEQUENCES TO andrey;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO andrey;


\dn+ после этого такой
public | postgres | postgres=UC/postgres | standard public schema
а ваш andrey не superuser случаем? \du andrey что говорит?
источник

NB

Nick Belous in pgsql – PostgreSQL
RTM
пример покажите маппинга
Первая таблица это наименование столбцов и есть ли столбцы с похожей функцией в другой. Вторая таблица: совпадают ли типы в таблицах 1 и 2, 1 и 3, 2 и 3.
источник