
Александр
22.09.2016
12:51:43
я про виртуализацию и постгрю :-\

AbiGeuS
22.09.2016
12:52:39
Какая у вас ос, фс и гипервизор?

Dmitry
22.09.2016
12:54:19

AbiGeuS
22.09.2016
12:54:19

Google

Dmitry
22.09.2016
12:55:13
для ваниллы - да

AbiGeuS
22.09.2016
12:56:48
для ваниллы - да
Мне ваш коллега уже посоветовал отказаться от виртуализации и lvm. Перейти на голое железо чтобы избегать таких проблем.

Yury
22.09.2016
12:57:35
для ваниллы - да
Мне кажется в данном случае, что то ещё. Так как делается востановление из логического бекапа.

James
22.09.2016
13:00:57
народ можете подсказать группу по мускулю
?
или помочь с мускулем

AbiGeuS
22.09.2016
13:03:38
Потому и пытаюсь понять в чем дело. Может проблема в конкретной сборке.

Andrey
22.09.2016
13:04:54
А проблема воспроизводится, если развернуть базу из plain sql дампа на другом хосте?

Maxim
22.09.2016
13:12:41
коллеги, извините, я по-быстрому с тупым вопросом
у меня есть pgbouncer с собственными юзерами

Google

Maxim
22.09.2016
13:13:10
они могут логиниться и коннектиться к базам
но не могут запросы делать
как им награнтовать-то?

Yury
22.09.2016
13:13:52
ещё очень желательно восстанавливаться на свежий инстанс постгреса

AbiGeuS
22.09.2016
13:17:29

Yury
22.09.2016
13:19:30
А в какой момент это возникает? Когда клиенты селекты начинают слать или сразу после рестора?

AbiGeuS
22.09.2016
13:23:32
Я выше описал как все происходит по моим наблюдениям. Возникает примерно после одних и тех же действий. Возникает не всегда. Может несколько дней работать, потом рецедив. Но всегда после остановки/запуска сервиса пг. На этом инстансе работаем полторы недели всего.

Paul
22.09.2016
13:42:53

Yury
22.09.2016
13:46:08


AbiGeuS
22.09.2016
13:51:18
очень похоже что у вас умирает диск или виртуалка глючит...
Вот как это диагностировать и доказать человеку который занимается гипервизором? Ибо на нем же работают другие виртуалки(в основной массе win машины) вполне успешно.по крайней мере я о проблемах не слышал. Сыпалась фс только на одной машин машинке с почтовиком(но больше рецедива не было). Да и на эту виртуалку я перешел одновременно с переходом на новую версию постгреса.

Yury
22.09.2016
13:52:04
и всё же, что значит "после"?

AbiGeuS
22.09.2016
14:07:32
Значит service postgresql stop, чистка вал архива / start , basebackup, старт службы 1с. 1с начинает крутить свои задания на базах и появляются ошибки в логе.

Yury
22.09.2016
14:10:29
а почему после востановления это происходит - потом оно скорее всего всё в буффер кладётся и с диска чтения нету.
ЗЫ моё мнения как разработчика тут может сильно отличаться от мнения и практик DBA
ЗЫ2 тестируйте мой pg_arman: https://github.com/postgrespro/pg_arman

Maxim
22.09.2016
14:12:23
гранты на юзера коннетка в баунсере?
ну у меня userlist.txt, в котором описаны юзеры
и в pgbouncer.ini базы с параметрами
юзеры приходят в баунсер с креденшлами из userlist.txt
попадают к базам
но не могут запросы делать

AbiGeuS
22.09.2016
14:17:44

Google

Paul
22.09.2016
15:00:41

Maxim
22.09.2016
15:01:13
там "настоящий" прописан
с которым баунсер к постгресу идет

Paul
22.09.2016
15:03:31
Ну вот в постгре гранты прийдется отдавать именно на него. Или отказываться от users.txt

Maxim
22.09.2016
15:10:11
блин, да
чот я затупил
спасибо большое

blkmrkt
22.09.2016
15:20:35
хороший наброс кала на Оракл. В принципе, все ж так и есть: https://stratechery.com/2016/oracles-cloudy-future/
https://www.citusdata.com/blog/2016/09/22/announcing-citus-mx/

Anton
23.09.2016
05:44:33
перед тем как набрасывать, сами бы сделали что нибудь уровнем не хуже

Yury
23.09.2016
08:44:04

Anton
23.09.2016
08:49:48
сам EDB рассылает отчет гартнера по базам со следующим слайдом где ТСО у комерческих продуктов не ниже чем у проприетарных

Anton
23.09.2016
08:51:50
хотя не ) тут наоборот
чем больше тем лучше
то-то мысль закралась что это они антирекламу себе делают :)))

Gonchik
23.09.2016
09:25:21
Добрый день. ребята! можете подсказать как мне оптимизировать БД, чтобы запросы поступающие на сервер быстрее отрабатывались? select i.pkey, ci.oldvalue, ci.oldstring from changeitem ci,changegroup cg, jiraissue i, project p, issuelinktype ilt
where ci.oldvalue is not null and ci.newvalue is null and ci.field='Link' and ci.fieldtype='jira' and ci.groupid=cg.id and cg.issueid = i.id and i.project=p.id and p.pkey in ('ENG', 'SERV') and cg.created>'2016-09-23 11:04:00.818' order by cg.created
БАЗА используется для jira. размеры таблиц jiraissue - 1GB,
changeitem = 2.1 GB
changegroup = 800 MB
project - 35 KB

Google

Gonchik
23.09.2016
09:29:02
issuelink = 29 MB
у всех btree индексы по первичным ключам

Mike Chuguniy
23.09.2016
09:30:39
Я думаю, что без структур таблиц со ВСЕМИ индексами мало кто чего скажет.

Gonchik
23.09.2016
09:31:00
я сейчас вот собираюсь скинуть

Egor
23.09.2016
09:31:06
для начала стоит explain приложить

Admin
ERROR: S client not available

Айтуар
23.09.2016
09:31:24

Anton
23.09.2016
09:31:26
EXPLAIN (ANALYZE,BUFFERS)

Mike Chuguniy
23.09.2016
09:32:28
с первого взгляда рисуются условные where ci.oldvalue is not null and ci.newvalue is null
насчёт составных - надо более другие запросы смотреть.

Gonchik
23.09.2016
09:33:31
на них нет индексок
это таблица chageitem

Mike Chuguniy
23.09.2016
09:38:00
условный, это вот так: create index ci_fieldtype_idx on changeitem (fieldtype) where changeitem.oldvalue is not null and changeitem.newvalue is null;

Gonchik
23.09.2016
09:38:28
результат explain

Mike Chuguniy
23.09.2016
09:38:44
Но это, опять же - зависит от более других запросов.

Gonchik
23.09.2016
09:39:27

Mike Chuguniy
23.09.2016
09:40:34
С другими запросами - надо их смотреть и думать.
Универсальной кнопки "Сделать все замечательно" в работе с БД нет и не будет в оборзимом будующем

Gonchik
23.09.2016
09:42:24
Спасибо! =) Тогда вопрос следующий как искать мертвые индексы?
В смысле ненужные

Google


Darafei
23.09.2016
09:43:49
у меня в psqlrc такое нашлось
— 4 helpful queries from radek http://radek.cc/2009/08/15/psqlrc-tricks-table-sizes/
\set trashindexes '( select s.schemaname as sch, s.relname as rel, s.indexrelname as idx, s.idx_scan as scans, pg_size_pretty(pg_relation_size(s.relid)) as ts, pg_size_pretty(pg_relation_size(s.indexrelid)) as "is" from pg_stat_user_indexes s join pg_index i on i.indexrelid=s.indexrelid left join pg_constraint c on i.indrelid=c.conrelid and array_to_string(i.indkey, '' '') = array_to_string(c.conkey, '' '') where i.indisunique is false and pg_relation_size(s.relid) > 1000000 and s.idx_scan < 100000 and c.confrelid is null order by s.idx_scan asc, pg_relation_size(s.relid) desc )'
\set missingindexes '( select src_table, dst_table, fk_name, pg_size_pretty(s_size) as s_size, pg_size_pretty(d_size) as d_size, d from ( select distinct on (1,2,3,4,5) textin(regclassout(c.conrelid)) as src_table, textin(regclassout(c.confrelid)) as dst_table, c.conname as fk_name, pg_relation_size(c.conrelid) as s_size, pg_relation_size(c.confrelid) as d_size, array_upper(di.indkey::int[], 1) + 1 - array_upper(c.conkey::int[], 1) as d from pg_constraint c left join pg_index di on di.indrelid = c.conrelid and array_to_string(di.indkey, '' '') ~ (''^'' || array_to_string(c.conkey, '' '') || ''( |$)'') join pg_stat_user_tables st on st.relid = c.conrelid where c.contype = ''f'' order by 1,2,3,4,5,6 asc) mfk where mfk.d is distinct from 0 and mfk.s_size > 1000000 order by mfk.s_size desc, mfk.d desc )'
\set rtsize '(select c.oid, table_schema, table_name, pg_relation_size( quote_ident( table_schema ) || \'.\' || quote_ident( table_name ) ) as size, pg_total_relation_size( quote_ident( table_schema ) || \'.\' || quote_ident( table_name ) ) as total_size from information_schema.tables i join pg_class c on (c.relname = i.table_name) where table_type = \'BASE TABLE\' and table_schema not in (\'information_schema\', \'pg_catalog\') order by pg_relation_size( quote_ident( table_schema ) || \'.\' || quote_ident( table_name ) ) desc, table_schema, table_name)'
\set tsize '(select table_schema, table_name, pg_size_pretty(size) as size, pg_size_pretty(total_size), pg_catalog.obj_description(oid, 'pg_class') as total_size from (:rtsize) x order by x.size desc, x.total_size desc, table_schema, table_name)'


Vadim
23.09.2016
09:45:12
https://wiki.postgresql.org/wiki/Index_Maintenance

Gonchik
23.09.2016
09:46:27
Ооо, спасибо!=)

Darafei
23.09.2016
11:00:39
а есть у кого что рассказать про Citus MX?
https://www.citusdata.com/blog/2016/09/22/announcing-citus-mx/

Alexandr
23.09.2016
18:07:38
шалом
тут помогают по ПГ?)
есть задача вывести ddl всех индексов в БД
как написать скриптик?
или только вариант pg_dump вместе с —schema-only?

Yury
23.09.2016
18:32:48
в смысле ddl? имена всех индексов?
или скрипт создания этих индексов?

Andrey
23.09.2016
19:14:31
pg_get_indexdef()