

Alexander
15.08.2018
15:00:23
ку два раза! народ, ктониб сталкивался с подобными проблемами на ПГ базах 9.6, может и более ранних, но точно проявляется на 9.6.9
2018-06-03 04:15:52 MSK [21646] 192.168.226.246 [unknown] zabbix@zabbix WARNING: database "zabbix" must be vacuumed within 1117302 transactions
2018-06-03 04:15:52 MSK [21646] 192.168.226.246 [unknown] zabbix@zabbix HINT: To avoid a database shutdown, execute a database-wide VACUUM in that database.
You might also need to commit or roll back old prepared transactions.
......
2018-06-03 03:39:24 MSK [27351] ERROR: found xmin 4167401932 from before relfrozenxid 1137752771
2018-06-03 03:39:24 MSK [27351] CONTEXT: automatic vacuum of table "zabbix.pg_catalog.pg_authid"
2018-06-03 03:39:24 MSK [27351] ERROR: found xmin 4167159866 from before relfrozenxid 1137752774
2018-06-03 03:39:24 MSK [27351] CONTEXT: automatic vacuum of table "zabbix.pg_catalog.pg_auth_members"
ну и как печальный итог - база прикрывается:
2018-06-03 04:17:02 MSK [24609] 192.168.226.249 [unknown] zabbix@zabbix LOG: connection authorized: user=zabbix database=zabbix
2018-06-03 04:17:02 MSK [24607] 192.168.226.249 [unknown] zabbix@zabbix LOG: disconnection: session time: 0:00:00.044 user=zabbix database=zabbix host=192.168.226.249 port=38760
2018-06-03 04:17:02 MSK [17247] 192.168.226.240 [unknown] zabbix@zabbix ERROR: database is not accepting commands to avoid wraparound data loss in database "zabbix"
2018-06-03 04:17:02 MSK [17247] 192.168.226.240 [unknown] zabbix@zabbix HINT: Stop the postmaster and vacuum that database in single-user mode.
проблема назревала несколько дней до этого
[postgres@ ~]$ grep "ERROR: found xmin" main/log/postgresql-2018-06-01.log| awk '{print $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $12 " " $13}'| sort| uniq -c
8674 ERROR: found xmin 4167159866 from before 1137752774
8673 ERROR: found xmin 4167401932 from before 1137752771
[postgres@ ~]$ grep "ERROR: found xmin" main/log/postgresql-2018-06-02.log| awk '{print $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $12 " " $13}'| sort| uniq -c
8132 ERROR: found xmin 4167159866 from before 1137752774
8133 ERROR: found xmin 4167401932 from before 1137752771
[postgres@ ~]$ grep "ERROR: found xmin" main/log/postgresql-2018-06-03.log| awk '{print $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $12 " " $13}'| sort| uniq -c
2161 ERROR: found xmin 4167159866 from before 1137752774
2162 ERROR: found xmin 4167401932 from before 1137752771
Сегодня проблема повторилась уже на другой базе и с теми же системными таблицами - pg_authid и pg_auth_members, проблема на них с продвижением relfrozenxid, в логике работы с relfrozenxid какая то, а не с врапараундом, счетчик транзакций идет вверх, а relfrozenxid остается без изменений, и в какой то момент начинает ругатся, что у записей xminы выше
решается поиском проблемных записей
[local]:5432 postgres@postgres=# select rolname, oid, ctid, xmin, xmax, cmin, cmax from pg_authid where xmin::text::bigint > (select relfrozenxid::text::bigint from pg_class where relname='pg_authid');
rolname | oid | ctid | xmin | xmax | cmin | cmax
---------------+---------+--------+------------+------+------+------
postgres | 10 | (0,14) | 4167401932 | 0 | 0 | 0
***** | 3728593 | (0,15) | 4167444275 | 0 | 0 | 0
(2 rows)
Time: 0.876 ms
[local]:5432 postgres@postgres=# select roleid, ctid, xmin, xmax, cmin, cmax from pg_auth_members where xmin::text::bigint > (select relfrozenxid::text::bigint from pg_class where relname='pg_auth_members');
roleid | ctid | xmin | xmax | cmin | cmax
--------+-------+------------+------+------+------
19551 | (0,9) | 4167159866 | 0 | 0 | 0
(1 row)
и alter role\пересозданием проблемных + vacuum full по этим таблицам
проверка через pageinspect, консистентность индексов проверял через amcheck_next не показывала проблем
тут обсуждается такая же проблема, явно довольно свежая, там Макс Богук на неё тоже напоролся

Google

Alexander
15.08.2018
15:03:05
https://postgrespro.com/list/thread-id/2377804

Андрей
15.08.2018
15:12:40
есть таблица agents_daily_route с колонкой outlet_id и таблица order_doc с колонкой outlet_id.
нужно получить все outlet_id с таблицы order_doc которые есть в agents_daily_route
хелп

Terminator
15.08.2018
15:13:21
@alexander_samoylov будет жить. Поприветствуем!
@Murovan будет жить. Поприветствуем!

Yaroslav
15.08.2018
15:23:19

Alexander
15.08.2018
15:29:30
ну или иннер джоин

Alexander
15.08.2018
16:32:29
похоже тут есть и WA:
"Yea, that's this bug. I'd remove global/pg_internal.init, reconnect, and manually vacuum."
и решение ...
Момжан написал, что багу пофиксили и дает ссылку на релиз
попробуем поставить 9.6.10

Egor
15.08.2018
18:07:34

Alexandr
15.08.2018
18:23:31
Лучше тут @ru_mysql

Google

Dan
15.08.2018
18:28:21
Спасибо, уже подсказали по тому что искал

nietzschebrod
15.08.2018
19:35:43
https://www.packtpub.com/packt/offers/free-learning
Сегодня "PostgreSQL 9 High Availability Cookbook"

TEH3OP
15.08.2018
22:56:27

Alexandr
16.08.2018
05:14:26

om
16.08.2018
05:58:45
Да можно прямо сюда

Alexandr
16.08.2018
06:06:19
Спасибо

Eugeny
16.08.2018
06:47:50
Привет народ, подскажите где посмотреть весь список оконных функций в ПГ, в документации их только 4

Darafei
16.08.2018
06:48:48
все агрегатные ещё и оконные

elfiki
16.08.2018
06:49:41

Eugeny
16.08.2018
06:50:28

elfiki
16.08.2018
06:51:13

Eugeny
16.08.2018
06:51:29

Nikita
16.08.2018
06:51:32
Всем привет. Есть ли еще какие-то утилиты помимо pgbench для бенчмаркинга постгреса?

Konstantin
16.08.2018
07:22:21
tpc-h (OLAP), ycsb (Web),...
Самый адекватный тест - это родное приложение или некий прототип его эмулирующий

Yaroslav
16.08.2018
07:50:48

Darafei
16.08.2018
07:51:36

zotrix262
16.08.2018
08:15:30
а wal_keep_segments при использовании слотов репликации учитвается?

Yaroslav
16.08.2018
08:16:23

zotrix262
16.08.2018
08:17:51
а в каком ключе? если его поставить в 10 по идее количество волов будет столько сколько нужно реплике?

Konstantin
16.08.2018
08:18:55
учитывается, в том смысле, что число сохранённых сегментов не можут быть меньше wal_keep_segments. Но может быть и больше, если слот держит WAL

Google

zotrix262
16.08.2018
08:20:24
значит будем уменьшать, спасибо :)

Nikita
16.08.2018
08:28:16

Yaroslav
16.08.2018
08:34:29

Nikita
16.08.2018
08:36:10

Darafei
16.08.2018
08:37:59
а нельзя просто собрать симулятор конкретно вашей нагрузки на чём угодно?
я на psql -f и make делал, когда надо было

Nikita
16.08.2018
08:39:39

Yaroslav
16.08.2018
08:39:48
посмотреть до/после pgpool'а
Ясно. Тогда Вам нужен тест, близкий к Вашей настоящей нагрузке.
Можно и на pgbench что-то собрать, ещё есть hammerDB (но я не пользовался).
Даже на psql можно, в крайнем случае...

Darafei
16.08.2018
08:40:03
make?
https://www.gnu.org/software/make/

Nikita
16.08.2018
08:40:50

Darafei
16.08.2018
08:41:41
make - самый простой способ писать параллельные программы

Yaroslav
16.08.2018
08:44:55

Nikita
16.08.2018
08:56:54

stixlink
16.08.2018
09:29:27
Скажиет, пожалуйста, как при группировке по полю одному, получить значение другого поле соответствующее самой последней записи по полю time к примеру?
SELECT vr.rate
FROM statistic.video_rate vr
LEFT JOIN statistic.video_position_history AS vh
ON (vr.language = vh.language
AND vr.country_id = vh.country_id
AND vr.device = vh.device
AND vr.tag_id = vh.tag_id
AND vr.video_id = vh.video_id)
WHERE vh IS NOT NULL
AND vr.language = ?0
AND vr.country_id = ?1
AND vr.device = ?2
AND vr.tag_id = ?3
AND vh.page = ?4
AND vh."limit" = ?5
AND vh."offset" IN (?6)
GROUP BY vh.offset
ORDER BY vh.time DESC, vr.rate DESC
типа такого, ток тут ошибка изза селекта)

Александр
16.08.2018
09:34:49
Всем привет! Такой вопрос: часто ли используются при разработке процедурные языки, отличающиеся от pl/pgsql? Например, pl/v8, pl/python и прочие? И при каких случаях их использование имеет смысл?

elfiki
16.08.2018
09:36:13

stixlink
16.08.2018
09:36:38

Google

elfiki
16.08.2018
09:36:41

Игорь
16.08.2018
09:38:35
Приветствую!
pg_pathman - 1.4.12
Не создалась партиция
Изначально делал так:
SELECT create_range_partitions('relname', 'column', '2017-07-16 00:00:00'::timestamp, '1 month'::interval, NULL, 0::boolean);
Подскажите, пожалуйста:
1) Как исправить?
2) Куда пишутся данные сейчас. Из родительской таблицы новых дат нет!
В логе PG:
NOTICE: merging column "разные колонки" with inherited definition

Antony
16.08.2018
09:38:50

elfiki
16.08.2018
09:39:29

Игорь
16.08.2018
09:41:20

stixlink
16.08.2018
09:41:37

Konstantin
16.08.2018
09:43:09
ORDER BY vh.offset,vh.time

Maksim
16.08.2018
09:44:35

Игорь
16.08.2018
09:44:47
спасибо!

Yaroslav
16.08.2018
09:52:14

stixlink
16.08.2018
09:53:07

Terminator
16.08.2018
10:12:02
@d_golgovsky будет жить. Поприветствуем!

Игорь
16.08.2018
10:19:38

Alexey
16.08.2018
12:28:10
Всем привет.
Подскажите пожалуйста.
Как реализовать данный код(выполняется sql скрипт при запуске docker контейнера)?
CREATE DATABASE db;
CREATE SCHEMA schema;
CREATE TABLE db.schema.table (
id serial ....

Lev
16.08.2018
12:30:14
в энтри поинт записать psql -f code.sql?

Alexander
16.08.2018
12:32:09

Alexey
16.08.2018
12:32:32
в энтри поинт записать psql -f code.sql?
У меня все выполняется.
Вопрос в другом: как при помощи только sql выполнить создание БД , потом переключиьбся к этой БД, после создать схему, переключится к созданной схеме и там выполнить создание таблиц.
Получается так, что БД и СХЕМА создаются, но из-за default_path дальнейшее выполнение скрипта происходит в базе postgres и схеме public.

Google

Alexey
16.08.2018
12:33:43
Конечно можно заранее написать sh в котором будет через psql написано \connect db. Есть ли возможность через sq?

Darafei
16.08.2018
12:34:13
sql существует только после того, как установлено подключение

Alexey
16.08.2018
12:34:52

artb1sh
16.08.2018
12:34:58

Alexey
16.08.2018
12:35:11

Lev
16.08.2018
12:36:04
а ещё от самого контейнера зависит. В докере с pg который я копал база создаётся родительским слоем с названием из переменной окружения
вот! Официальный докер https://github.com/docker-library/postgres/blob/740fb98439e66c7a0e39a67880ee971c6d49e514/10/docker-entrypoint.sh
энтрипоинт создаёт из переменных окружения POSTGRES_USER POSTGRES_DB
потом выполняет все SQL из директории /docker-entrypoint-initdb.d/

Alexey
16.08.2018
12:38:52