@pgsql

Страница 939 из 1062
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 будет жить. Поприветствуем!

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

Alexander
15.08.2018
16:32:29
https://postgrespro.com/list/thread-id/2377804
есть еще одна ветка по этой проблеме, где уже её разбирают core developers - начинается словами "Moving discussion to -hackers"

похоже тут есть и 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
Подскажите как запрос mysql перевести для postgre
Вот здесь - t.me/mysql_db можешь спросить

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"

Alexandr
16.08.2018
05:14:26
https://www.packtpub.com/packt/offers/free-learning Сегодня "PostgreSQL 9 High Availability Cookbook"
Эх опоздал, кто скачал - киньте в личку плиз

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
все агрегатные ещё и оконные

Eugeny
16.08.2018
06:50:28
Eugeny
16.08.2018
06:51:29
https://www.postgresql.org/docs/10/static/functions-window.html
ай, точно, я тутор смотрел )

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

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

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

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
tps и кол-во select'ов в секунду
Зачем? Что вы с ними делать собираетесь?

Nikita
16.08.2018
08:36:10
Darafei
16.08.2018
08:37:59
а нельзя просто собрать симулятор конкретно вашей нагрузки на чём угодно?

я на psql -f и make делал, когда надо было

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
https://www.gnu.org/software/make/
это понятно, как он соотносится к эмуляции нагрузки?

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

Yaroslav
16.08.2018
08:44:55
конечно можно вытащить запросы из логов базы, но не очень понятно их распределение
Может быть, что-то из https://wiki.postgresql.org/wiki/Statement_Playback посмотреть?

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 и прочие? И при каких случаях их использование имеет смысл?

stixlink
16.08.2018
09:36:38
distinct on
можно линк или подробнее?)

Google
elfiki
16.08.2018
09:36:41
distinct on
сортировку нужную

можно линк или подробнее?)
https://www.postgresql.org/docs/10/static/sql-select.html

можно линк или подробнее?)
https://www.postgresql.org/docs/10/static/sql-select.html#SQL-DISTINCT вот так даже

Игорь
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
Всем привет! Такой вопрос: часто ли используются при разработке процедурные языки, отличающиеся от pl/pgsql? Например, pl/v8, pl/python и прочие? И при каких случаях их использование имеет смысл?
Например для прототипирвания, вот сейчас хотим перенести определённую часть логики в БД, для ресерча будем юзать pl/python. Один раз юзали для тригеров и работы с сетью, но это довольно костальное решение, есть уже готовые решения

elfiki
16.08.2018
09:39:29
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
короче типа такого SELECT DISTINCT ON (vh.offset) 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) ORDER BY vh.time DESC, vr.rate DESC

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

Maksim
16.08.2018
09:44:35
@maksm90 Прошу Вашу помощь
Навскидку не скажу. Оформите issue на гитхабе пжста с описанием схемы таблицы

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

stixlink
16.08.2018
09:53:07
ORDER BY vh.offset,vh.time
да, спасибо!)

Куча способов, но чаще всего DISTNICT ON или LATERAL.
про LATERAL почитаю сейчас, спасибо1)

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

Игорь
16.08.2018
10:19:38
Навскидку не скажу. Оформите issue на гитхабе пжста с описанием схемы таблицы
Все в порядке. Это мы об уникальный индекс споткнулись

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?

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: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
энтрипоинт создаёт из переменных окружения POSTGRES_USER POSTGRES_DB
Точно, спасибо. Но если БД и СХЕМа еще не созданы, как можно указывать их в переменных окружения. Прокатит?

Страница 939 из 1062