Size: a a a

pgsql – PostgreSQL

2021 February 24

mk

max kosh in pgsql – PostgreSQL
Alexey Lesovsky
посмотреть можно через psql метакоманду \dm (показывает только в той БД к которой сделано подключение)
Did not find any relations.
источник

v

vitaliy in pgsql – PostgreSQL
max kosh
Did not find any relations.
какая версия postgreSQL?
источник

mk

max kosh in pgsql – PostgreSQL
vitaliy
какая версия postgreSQL?
11.4
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
давайте еще попробуем так, для очистки совести
pg_dumpall -s |grep MATERIALIZED

это дамп всей схемы и поиск
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
max kosh
парни кто сталкивался?
2021-02-08 12:03:00.865 MSK [21482] ERROR: could not access status of transaction 355275287
2021-02-08 12:03:00.865 MSK [21482] DETAIL: Could not open file "pg_xact/0152": No such file or directory.
2021-02-08 12:03:00.865 MSK [21482] STATEMENT: SELECT * FROM "transaction" WHERE guid=$1 FOR UPDATE
2021-02-08 12:03:00.866 MSK [21482] ERROR: current transaction is aborted, commands ignored until end of transaction block

с чего то постгря начинает искать записи в файле лога транзакций которого не существует уже очень давно, если судить по названию 0152
пока лечу так dd if=/dev/zero of=pg_xact/0152 bs=256K count=1
хочется понять первопричину
Это битый "кластер". Делайте то, что там у Вас по плану в этом случае (и ищите проблемы с "железом", в первую очередь).

> пока лечу так dd if=/dev/zero of=pg_xact/0152 bs=256K count=1

Не делайте так никогда.

> хочется понять первопричину

Уже не имеет значения — данные надо спасать.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
А это — неграмотное администрирование, кстати. :(
источник

mk

max kosh in pgsql – PostgreSQL
Yaroslav Schekin
Это битый "кластер". Делайте то, что там у Вас по плану в этом случае (и ищите проблемы с "железом", в первую очередь).

> пока лечу так dd if=/dev/zero of=pg_xact/0152 bs=256K count=1

Не делайте так никогда.

> хочется понять первопричину

Уже не имеет значения — данные надо спасать.
встает запись в таблицу, пока другого решения нет
«битый кластер» расплывчито, данные реплицируются в stolon кластре из 3 нод
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
а кластер в кубернетесе или на железных машинах?
источник

mk

max kosh in pgsql – PostgreSQL
сами инстансы постгри вне кубер кластера на vmware виртуалках
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
max kosh
встает запись в таблицу, пока другого решения нет
«битый кластер» расплывчито, данные реплицируются в stolon кластре из 3 нод
Какое "расплывчато"?!
Это точно битый кластер (т.е. там повреждены какие-то внутренние структуры данных, и почти наверняка потеряны или искажены пользовательские данные)!
И "думать" тут совершенно не о чем — эту проблему тут надо решать (раз есть хотя бы реплики, хоть данные спасёте... наверное).
источник

mk

max kosh in pgsql – PostgreSQL
сама проблема повторилась 2 раз вчера, первый 2 недели назад
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Как вариант попробуйте сделать файловер на другую ноду, предварительно проверив что там проблема не воспроизводится. А эту на которой появляются ошибки, вообще вывести из эксплуатации или пересоздать на новой виртуалке.
источник

СК

Саша Козлов... in pgsql – PostgreSQL
что не так с индексом ?
запрос
SELECT * FROM core_zreportcurrencypart WHERE amount_in_byn is null and currency != 'BYN' ;

индекс
CREATE INDEX CONCURRENTLY core_zreportcurrencypart_currency_idx ON public.core_zreportcurrencypart
((amount_in_byn is NULL), ((currency)::text <> 'BYN'::text));

explain
Gather  (cost=1000.00..462360.94 rows=38285 width=475)
 Workers Planned: 2
 ->  Parallel Seq Scan on core_zreportcurrencypart  (cost=0.00..457532.44 rows=15952 width=475)
       Filter: ((amount_in_byn IS NULL) AND ((currency)::text <> 'BYN'::text))
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
если проблема воспроизводится на всех репликах, то как и говорит Ярослав запускать план по восстановлению данных. Обдумайте этот коментарий очень серъезно.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Саша Козлов
что не так с индексом ?
запрос
SELECT * FROM core_zreportcurrencypart WHERE amount_in_byn is null and currency != 'BYN' ;

индекс
CREATE INDEX CONCURRENTLY core_zreportcurrencypart_currency_idx ON public.core_zreportcurrencypart
((amount_in_byn is NULL), ((currency)::text <> 'BYN'::text));

explain
Gather  (cost=1000.00..462360.94 rows=38285 width=475)
 Workers Planned: 2
 ->  Parallel Seq Scan on core_zreportcurrencypart  (cost=0.00..457532.44 rows=15952 width=475)
       Filter: ((amount_in_byn IS NULL) AND ((currency)::text <> 'BYN'::text))
По оценкам дороже его использовать, чем нет, скорее всего.
Проверьте (enable_seqscan = off и т.п.), генерируется ли такой план в принципе. Если да, оценку Вы там увидите.
Если вдруг не генерируется, надо смотреть подробнее.
источник

mk

max kosh in pgsql – PostgreSQL
sudo smartctl -H /dev/sda2
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.1.12-124.22.2.el7uek.x86_64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

вот и как понять что с постгрей что то не так, в логах постгри никаких пролем не видно
источник

VY

Victor Yegorov in pgsql – PostgreSQL
max kosh
sudo smartctl -H /dev/sda2
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.1.12-124.22.2.el7uek.x86_64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

вот и как понять что с постгрей что то не так, в логах постгри никаких пролем не видно
база Postgres называется!
источник

mk

max kosh in pgsql – PostgreSQL
промоут мастера из реплики можно сделать достаточно быстро
источник

АЕ

Александр Еременчук... in pgsql – PostgreSQL
Здравствуйте, как можно удалить такие временные таблицы? Для них нет схемы...
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
max kosh
sudo smartctl -H /dev/sda2
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.1.12-124.22.2.el7uek.x86_64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

вот и как понять что с постгрей что то не так, в логах постгри никаких пролем не видно
> сами инстансы постгри вне кубер кластера на vmware виртуалках

у вас тут несколько слоев абстракций, если искать причины/ошибки, то нужно проверять все 1) ос в виртуальной машине, 2) гипервизор 3) оборудование на котором запущен гипервизор, 4) хранилище, если оно внешнее

если задача проверить валидность данных в постгресовом инстансе и затем переключиться на него, то тут разные варианты - самый простой это сделать дамп (см. pg_dump) и рестор (см. pg_restore) из полученного дампа на какой-то отдельной временной машине. Если ошибок в обоих процессах не будет, то с высокой вероятностью с данными все порядке.
источник