Size: a a a

pgsql – PostgreSQL

2020 August 21

EZ

Egor Zagorskiy in pgsql – PostgreSQL
Yaroslav Schekin
А покажите вывод запроса по pg_stat_activity.
potok   | 13:07:03.517394 | 22392 | idle                |               SELECT a.attname, format_type(a.atttypid, a.atttypmod),                                         (следующие строки не нужны, наверное)
источник

EZ

Egor Zagorskiy in pgsql – PostgreSQL
может это открытая транзакция, потребитель которой уже давно умер, и некому получить эти данные?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Egor Zagorskiy
potok   | 13:07:03.517394 | 22392 | idle                |               SELECT a.attname, format_type(a.atttypid, a.atttypmod),                                         (следующие строки не нужны, наверное)
Здесь вообще ничего не висит. Эта сессия — idle, отображается последний выполненный в ней запрос, см. документацию.
https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW (про поле query).
источник

EZ

Egor Zagorskiy in pgsql – PostgreSQL
Yaroslav Schekin
Здесь вообще ничего не висит. Эта сессия — idle, отображается последний выполненный в ней запрос, см. документацию.
https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW (про поле query).
т.е. приложение не закрыло коннект, и поэтому так отображается?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Egor Zagorskiy
т.е. приложение не закрыло коннект, и поэтому так отображается?
Да. Для connection poolers (вроде pgbouncer) это вообще нормально.
источник

EZ

Egor Zagorskiy in pgsql – PostgreSQL
спасибо. бороться с этим можно с idle_in_transaction_session_timeout ?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Egor Zagorskiy
спасибо. бороться с этим можно с idle_in_transaction_session_timeout ?
Нет. Там нет никакой открытой транзакции, "бороться" просто не с чем.
источник

EZ

Egor Zagorskiy in pgsql – PostgreSQL
Yaroslav Schekin
Нет. Там нет никакой открытой транзакции, "бороться" просто не с чем.
оно мешает при просмотре pg_stat_activity. или добавить условие !=idle ?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Egor Zagorskiy
оно мешает при просмотре pg_stat_activity. или добавить условие !=idle ?
Да, можете добавить.
Вообще, если это в самом деле соединения от connection pooler (встроенного в приложение/я или внешнего), то так и должно быть. Если же это приложение без pooling просто "забывает" закрывать соединения, то это нехорошо, конечно (они висят и занимают слоты соединений), лучше бы исправить в нём эту ошибку.
источник

SS

Sergey Smirnov in pgsql – PostgreSQL
Всем привет.
После обновления ОС и перезагрузки сервера, в postgresql (postgrespro-11.5) БД наблюдаю картину:
select по некоторым таблицам (в частности, некоторым партициям, созданным ранее через pathman) выдает 0 строк.
pg_dump отдельно этих таблиц также выгружает таблицы с нулем строк.
При этом файлы этих таблиц (партиций) на диске, возвращенные функцией pg_relation_filepath имеют значительный размер (несколько Gb), как будто данные в них присутствуют.
Подскажите, есть ли возможность вытащить данные из файлов таблиц и если есть, то какими инструментами? Или же реальных данных в этих файлах таблиц уже нет? Как это можно точно проверить?
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
а vacuum пробовали делать этих партиций?
источник

SS

Sergey Smirnov in pgsql – PostgreSQL
да, reindex и vacuum никаких изменений не дали
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
WITH my_const (tbl_name) as (values ('boarding_passes'))
select pg_size_pretty(pg_table_size(tbl_name)) as tbl, pg_size_pretty(pg_indexes_size(tbl_name)) as idx, pg_size_pretty(pg_total_relation_size(tbl_name)) as total from my_const; а если так?
источник

SS

Stanislav Samboretsk... in pgsql – PostgreSQL
Stanislav Samboretskiy
Коллеги, добрый день. Подскажите такую вещь: есть задача - завести роль, чтобы она не могла работать с данными в таблицах (ни читать, ни писать), но при этом имела доступ к данным о других ролях и (в идеале) видеть логи изменений прав. Как можно это сделать проще всего? Делать Revoke для каждой таблицы во всех БД на сервере - не вариант, сами понимаете.
😁
источник

P

Plus in pgsql – PostgreSQL
Grigory Smolkin
это было предположение
в pgsql_tmp  пусто
источник

GS

Grigory Smolkin in pgsql – PostgreSQL
Plus
в pgsql_tmp  пусто
значит дело в чем-то другом
источник

P

Plus in pgsql – PostgreSQL
логично )
источник

SS

Sergey Smirnov in pgsql – PostgreSQL
Alexander Nikitin
WITH my_const (tbl_name) as (values ('boarding_passes'))
select pg_size_pretty(pg_table_size(tbl_name)) as tbl, pg_size_pretty(pg_indexes_size(tbl_name)) as idx, pg_size_pretty(pg_total_relation_size(tbl_name)) as total from my_const; а если так?
размер таблиц смотрел через  \dt+ *
и запросом
SELECT nspname || '.' || relname AS "relation",
 pg_size_pretty(pg_relation_size(C.oid)) AS "size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema');
источник

NB

Nick Belous in pgsql – PostgreSQL
Как можно заменить один символ на другой во всей таблице? Пытался через
select replace((select * from table_name), ',', '.') from table_name
Выдает ошибку.
источник

GS

Grigory Smolkin in pgsql – PostgreSQL
Plus
логично )
если таки пришлете backup_content.control, то можно будет даже попробовать выяснить в чем дело =)
источник