Size: a a a

pgsql – PostgreSQL

2021 January 28

YS

Yaroslav Schekin in pgsql – PostgreSQL
LeiDruid
Добрый день!
Подскажите, пожалуйста, можно ли на реплике создавать объекты (fdw)? Это законно? Чем может быть чревато ?
Нет. На "физической" реплике вообще ничего нельзя создать.
источник

t

trane254 in pgsql – PostgreSQL
Дмитрий
StateID у вас типа serial
Имеете ввиду, что это не nullable тип?
источник

Д

Дмитрий in pgsql – PostgreSQL
trane254
Все еще не понимаю, что не так. Типа, в foreign key ставлю нуллы, которые должны поддерживаться, но падает сразу на первом же StateId.
Если тут что-то очень простое, то палкой сильно не бейте, ооочень давно не работал с базами
источник

Д

Дмитрий in pgsql – PostgreSQL
trane254
Имеете ввиду, что это не nullable тип?
На значения типа SERIAL накладывается ограничение — они не могут быть NULL.
источник

t

trane254 in pgsql – PostgreSQL
Дмитрий
На значения типа SERIAL накладывается ограничение — они не могут быть NULL.
Понял, спасибо. Что тогда можно использовать для Id'шников? Bigint?
источник

Д

Дмитрий in pgsql – PostgreSQL
Установите int8 и в триггер логику например вынесите.
источник

L

LeiDruid in pgsql – PostgreSQL
Yaroslav Schekin
Нет. На "физической" реплике вообще ничего нельзя создать.
спасибо
источник

Д

Дмитрий in pgsql – PostgreSQL
trane254
Понял, спасибо. Что тогда можно использовать для Id'шников? Bigint?
Да Bigint - это int8.
источник

Д

Дмитрий in pgsql – PostgreSQL
trane254
Понял, спасибо. Что тогда можно использовать для Id'шников? Bigint?
источник

t

trane254 in pgsql – PostgreSQL
Большое спасибо, будем раскуривать
источник

P

Protey in pgsql – PostgreSQL
Sergey Evseev
Добрый день. Подскажите, ваши скрипты с какой мажорной версий PostgreSQL работают? В Readme указано только что протестировано на 12 и 13 версиях. Поддерживаются ли 9.6/10/11 ?
Приветствую! Простые скрипты управления БД работать будут. В pg_database_activity.sh и pg_database_information.sh, при показе прогресса операций, есть условия на версию PostgreSQL (c 9.6 и выше). А так проще попробовать, там одни выборки данных, но не все системные столбцы есть в старых версиях PostgreSQL.
источник

Д

Дмитрий in pgsql – PostgreSQL
'ALTER TABLE accounts ALTER COLUMN working_time TYPE bigint USING(trim(working_time)::bigint)'

Как можно поставить еще SET DEFAULT 0 ?
источник

SE

Sergey Evseev in pgsql – PostgreSQL
Protey
Приветствую! Простые скрипты управления БД работать будут. В pg_database_activity.sh и pg_database_information.sh, при показе прогресса операций, есть условия на версию PostgreSQL (c 9.6 и выше). А так проще попробовать, там одни выборки данных, но не все системные столбцы есть в старых версиях PostgreSQL.
Понял, спасибо. Меня в первую очередь как раз скрипты собирающие информацию интересуют, для первичного анализа коллегам будет полезно. Попробуем)
источник

P

Protey in pgsql – PostgreSQL
Sergey Evseev
Понял, спасибо. Меня в первую очередь как раз скрипты собирающие информацию интересуют, для первичного анализа коллегам будет полезно. Попробуем)
Пользуйтесь на здоровье :)
источник

Д

Дмитрий in pgsql – PostgreSQL
Дмитрий
'ALTER TABLE accounts ALTER COLUMN working_time TYPE bigint USING(trim(working_time)::bigint)'

Как можно поставить еще SET DEFAULT 0 ?
Чтобы не писать вот так)
ALTER TABLE accounts ALTER COLUMN working_time DROP DEFAULT
ALTER TABLE accounts ALTER COLUMN working_time TYPE bigint USING(trim(working_time)::bigint)
ALTER TABLE accounts ALTER COLUMN working_time SET DEFAULT 0
источник

a

antuan in pgsql – PostgreSQL
приветствую. не могу разгадать загадку, буду благодарен за помощь
итак, есть два запроса к одной и той же таблице, оба запроса делают select ... order by id asc for update. в результате одновременного выполнения запросов получаю дэдлок.
отличаются эти запросы условием. в одном where id in (...), во втором where user_id in (...)
explain выдает на первый запрос вот что
QUERY PLAN
LockRows  (cost=0.42..25.35 rows=3 width=26) (actual time=4.446..5.036 rows=3 loops=1)
 ->  Index Scan using availability_availabilityqueue_pkey on availability_availabilityqueue  (cost=0.42..25.32 rows=3 width=26) (actual time=4.401..4.974 rows=3 loops=1)
       Index Cond: (id = ANY ('{fffff3e0-0c09-40cb-9cc0-29d79f557fa4,ffffb9f7-d2f9-4695-b448-dfee8b904bd7,ffffb151-a171-4803-a08d-fe618c9f9b26}'::uuid[]))
Planning Time: 0.128 ms
Execution Time: 5.057 ms

кусок эксплейна второго запроса
QUERY PLAN
LockRows  (cost=5638.39..5666.69 rows=2264 width=26) (actual time=5.034..5.036 rows=0 loops=1)
 ->  Sort  (cost=5638.39..5644.05 rows=2264 width=26) (actual time=5.033..5.035 rows=0 loops=1)
       Sort Key: id
       Sort Method: quicksort  Memory: 25kB
...

в обычной ситуации причиной дедлока является отсутствие сортировки (ну или различные сортировки). тут же сортировка указана. но у одного из запросов отсутствует в explain. это несколько смущает...
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
Коллеги, вспомнил о том, что вроде бы надо было запускать переиндексацию после апгрейда с 11 на 12 версии читаю документацию:
In new btree indexes, the maximum index entry length is reduced by eight bytes, to improve handling of duplicate entries (Peter Geoghegan)
This means that a REINDEX operation on an index pg_upgrade'd from a previous release could potentially fail.
Вроде бы не противоречит.
Читаю про pg_upgrade
All failure, rebuild, and reindex cases will be reported by pg_upgrade if they affect your installation; post-upgrade scripts to rebuild tables and indexes will be generated automatically.
Но после обновления не вижу скриптов по пересозданию индексов, да и не видел никогда, сбор статистики - да, удаление старых данных - тоже, но про пересоздание ничего нет.
Получается, что после апгрейда хорошо бы прогнать reindex system concurrently?
источник

VP

Vladimir Pankin in pgsql – PostgreSQL
шалом ребят, а чем нынче модно экспортить метрики постгреса? пгвотч или что-то интересней есть?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexander Nikitin
Коллеги, вспомнил о том, что вроде бы надо было запускать переиндексацию после апгрейда с 11 на 12 версии читаю документацию:
In new btree indexes, the maximum index entry length is reduced by eight bytes, to improve handling of duplicate entries (Peter Geoghegan)
This means that a REINDEX operation on an index pg_upgrade'd from a previous release could potentially fail.
Вроде бы не противоречит.
Читаю про pg_upgrade
All failure, rebuild, and reindex cases will be reported by pg_upgrade if they affect your installation; post-upgrade scripts to rebuild tables and indexes will be generated automatically.
Но после обновления не вижу скриптов по пересозданию индексов, да и не видел никогда, сбор статистики - да, удаление старых данных - тоже, но про пересоздание ничего нет.
Получается, что после апгрейда хорошо бы прогнать reindex system concurrently?
Имеется в виду, что они будут сгенерированы, если необходимы для корректного upgrade, насколько я помню.
Т.е. обычно это не нужно.
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
У меня были остаточные воспоминания о том, что в 12 и в 13 версии индексы стали какие-то более поджарые и вроде бы как где-то слышал, что чтобы эти новые алгоритмы начали действовать индексы надо пересоздать...
источник