@pgsql

Страница 295 из 1062
Denis
09.04.2017
06:18:27
Спасибо!

Darafei
10.04.2017
06:10:11


Google
Pavel
10.04.2017
07:48:08
Огонь

Lev
10.04.2017
08:07:18
ещё один слоник в тему http://www.redbubble.com/people/Georube/shop?asc=u

Айтуар
10.04.2017
08:09:10
Alex
10.04.2017
10:10:19
Кто-нибудь использовал mix вариант потоковой репликации? Интересует вот эта часть. PostgreSQL allows the application developer to specify the durability level required via replication. This can be specified for the system overall, though it can also be specified for specific users or connections, or even individual transactions. For example, an application workload might consist of: 10% of changes are important customer details, while 90% of changes are less important data that the business can more easily survive if it is lost, such as chat messages between users. На сколько я понял на 1 slave можно использовать и синхронную и асинхронную ?

Игорь
10.04.2017
10:22:09
Имеется ввиду, что при синхронной реплике можно выбирать между значениями synchronous_commit, если не ошибаюсь можно сказать в транзакции synchronous_commit off и для этой транзакции будет асинхронное поведение

Igor
10.04.2017
14:44:27
Коллеги, у меня есть кластер pg на patroni, подскажите, пожалуйста, какое лучше использовать решение в качестве прокси на клиентах, которое умеет определять мастера и держать пул коннектов. Спасибо.

Ascandar
10.04.2017
14:49:16
никто не сталкивался с раздудым toast в постгресе?

у меня 1С медленно работает из-за этого и lost connection появляются

Sergey
10.04.2017
14:53:31
А что такого 1C хочет хранить в TOAST в Postgres'е? По моему опыту 1C старается избегать любого использования TOAST

Ascandar
10.04.2017
14:56:37
таблица config раздулась до 512 мб

там есть бинарная колонка

Sergey
10.04.2017
14:58:40
Там действительно есть столько данных?

Ascandar
10.04.2017
14:59:19
там всего 20 тыс строк

Google
Ascandar
10.04.2017
14:59:30
вот бы найти эту колонку. которая жрет стока

точнее строку

Denis
10.04.2017
15:03:09
А если не секрет, что у вас ща конфигурация 1С? Я тоже сильно удивлён использованием Toast у неё

Ascandar
10.04.2017
15:08:28
Управление торговлей, редакция 11.2 (11.2.3.185)

платформа 8.3

Sergey
10.04.2017
15:13:14
вот бы найти эту колонку. которая жрет стока
select ctid, length(varlena_column) , varlena_column from config order by length(varlena_column) desc;

Вопрос что с этим потом делать

Denis
10.04.2017
15:15:02
А вы нам покажите, какой запрос болеет на этой таблице и ее схему.

Ascandar
10.04.2017
15:15:45
2017-04-10 15:26:09 MSK FATAL: connection to client lost 2017-04-10 15:26:09 MSK STATEMENT: SELECT Creation,Modified,Attributes,DataSize,BinaryData FROM Config WHERE FileName = $1 ORDER BY PartNo

вот в логах

Игорь
10.04.2017
15:16:08
Коллеги, у меня есть кластер pg на patroni, подскажите, пожалуйста, какое лучше использовать решение в качестве прокси на клиентах, которое умеет определять мастера и держать пул коннектов. Спасибо.
У меня pgbouncer и к базе там два URL: db_master host=127.0.0.1:5000 и db_slave host=127.0.0.1:5001. На этих портах слушает HAproxy backend которые чекают db.server:8008/master и db.server:8008/replica соответственно.

Denis
10.04.2017
15:16:25
Можно еще \d config

Ascandar
10.04.2017
15:17:11
filename | mvarchar(128) | NOT NULL creation | timestamp without time zone | NOT NULL modified | timestamp without time zone | NOT NULL attributes | integer | NOT NULL datasize | bigint | NOT NULL binarydata | bytea | NOT NULL partno | integer | NOT NULL ╚эфхъё√: "config_pkey" PRIMARY KEY, btree (filename, partno)

Igor
10.04.2017
15:18:14
У меня pgbouncer и к базе там два URL: db_master host=127.0.0.1:5000 и db_slave host=127.0.0.1:5001. На этих портах слушает HAproxy backend которые чекают db.server:8008/master и db.server:8008/replica соответственно.
И соответственно: 127.0.0.1:5000 - на этом порту haproxy шлёт запросы только на мастер с проверкой code 200 по http 127.0.0.1:5001 - на этом порту haproxy шлёт запросы только на slave, с проверкой code 503 по http, так?

Игорь
10.04.2017
15:18:27
да. С проверкой тоже 200

Denis
10.04.2017
15:19:02
а можно еще eplain analyze SELECT Creation,Modified,Attributes,DataSize,BinaryData FROM Config WHERE FileName = $1 ORDER BY PartNo, где вместо $1 - значени из лога (оно должно быть)

Igor
10.04.2017
15:19:05
а как проверяется слейв горячий стандбай или тёплый стандбай?

Игорь
10.04.2017
15:19:16
никак. Лучше цель скажи

Sergey
10.04.2017
15:19:28
Можно еще \d config
Вроде кроме binarydata там раздуваться нечему. Отсортируйте по длинне binarydata

Igor
10.04.2017
15:21:37
никак. Лучше цель скажи
Допустим, я хочу чтобы писалось в мастер, а читаться могло с hot standby, но не читать с реплики, которая не является горячим стандбаем

Google
Denis
10.04.2017
15:21:39
Вроде кроме binarydata там раздуваться нечему. Отсортируйте по длинне binarydata
там может просто выбираться из индекса куча значений, а потом, когда оно идет в таблицу за дополнительными полями, все становится плохо. я хочу понять, в этом ли проблема, или что-то более экзотическое

Anatoliy
10.04.2017
15:22:07
Это о синхронности репликации, я так понимаю

Igor
10.04.2017
15:22:17
Допустим, я хочу чтобы писалось в мастер, а читаться могло с hot standby, но не читать с реплики, которая не является горячим стандбаем
при этом, при падении какой-то ноды и переконфигурировании кластера, я всегда мог проверкой определить является стандбай горячим, и слать только на горячий селекты

Igor
10.04.2017
15:24:20
Сделать свою чекалку. А так странная конфигурация у тебя. Зачем тебе теплый standby?
ну как, т.к. это кластер patroni, то у меня: 1. master 2. горячий стандбай 3. реплика

Sergey
10.04.2017
15:24:23
это в логах БД? я чего то там не увидел
Это посмотреть реальный план запроса.

Igor
10.04.2017
15:24:36
читать с реплики не хочется, т.к. вдруг там данных не окажется и она отстанет

а горячий стандбай имеет все данные как на мастере

Игорь
10.04.2017
15:25:03
ну как, т.к. это кластер patroni, то у меня: 1. master 2. горячий стандбай 3. реплика
Похоже я тебя узнал. Ты тут недавно вопрос задавал про master slave и sync slave?

Anatoliy
10.04.2017
15:25:28
SELECT pg_is_in_recovery(); это поможет узнать про реплику. А про хот стендбай это надо снимать метрики таймлага, скорее всего.

Игорь
10.04.2017
15:25:54
а горячий стандбай имеет все данные как на мастере
Ты в терминах запутался... Это уже делается в приложении

Игорь
10.04.2017
15:27:02
я спрашивал про wal_segment и слоты)
В конфигурации Patroni у тебя не может быть холодного ("теплого") standby. Там только физическая репликация. Может ты путаешь с синхронным типом репликации. Тогда да, синхронная реплика у тебя одна

Denis
10.04.2017
15:27:46
это в логах БД? я чего то там не увидел
то есть в логах postgresql у вас просто $1, а значение не фигурирует? попробуйте в postgresql.conf выставить #log_min_duration_statement = 100, сделать service postgresql reload и попробовать повторно выполнить запрос, который роняет все

Ascandar
10.04.2017
15:28:41
попробую

наверно завтра сделаю

Denis
10.04.2017
15:29:45
наверно завтра сделаю
Если сделаете, пишите)

Google
Admin
ERROR: S client not available

Igor
10.04.2017
15:29:48
вот мне хочется определять синхронную реплику и слать селекты только на неё )

Игорь
10.04.2017
15:35:22
В patroni есть опция: wal_level: hot_standby, и одна из реплик синхронная, да
Это не то. Почитай документацию по wal_level. Если селекты слыть только на sync replica, то я вижу решением сделать свою чекалку

Anton
10.04.2017
16:37:04
У stolon такое же поведение, но и там нет адекватного master-slave разделения. Прокси родной прикидывается только до мастера. R/o реплику не прокидывает

Alexander
10.04.2017
18:35:23
как селектом из такого значения '[{"foo":1,"bar":[{"buzz":11},{"buzz":12}]},{"foo":2,"bar":[{"buzz":21},{"buzz":22}]}]'::jsonb получить '[{"buzz":11},{"buzz":12},{"buzz":21},{"buzz":22}]'::jsonb ?

Max
10.04.2017
19:35:15
with t as( select '[{"foo":1,"bar":[{"buzz":11},{"buzz":12}]},{"foo":2,"bar":[{"buzz":21},{"buzz":22}]}]'::jsonb as js ) select (js->0->'bar') || (js->1->'bar') from t

Alexander
10.04.2017
19:41:14
а при переменном количестве элементов в массиве? и во внешнем и во внутренних. В таблице есть колонка с такого рода данными. Нужно сделать выборку всех строк из таблицы с таким преобразованием.

Max
10.04.2017
19:43:44
как одним запросом не знаю, да и с json не часто работаю. Первое что в голову приходит - процедура на psql с использованием таких функций как json_array_length и т.п. Если кто знает как иначе то сам рад буду узнать.

а так там много инетерсных функций есть json_to_record и т.п. надо время подумать ) которого нет сейчас

Darafei
10.04.2017
19:46:46
не нужно писать процедуры на табличные преобразования

разверните в табличку в подзапросе, достаньте что надо и сверните обратно

Max
10.04.2017
20:04:30
а задача как звучит. Выбрать все элементы массивов последнего уровня влоеженности?

сформулируйте задачу )

Alexander
10.04.2017
20:15:29
В таблице есть колонка типа jsonb. В которой json-массив. Элементы этого массива объекты, в которых _могут_ быть ключи 'bar' со значениями - массивами однородных объектов. [{"buzz":11},{"buzz",12},...] Нужно сделать выборку из таблицы в которой все эти однородные объекты вытащены в один плоский массив построчно. Пример того что есть, и что надо, дан выше. Буду попробовать сделать с подзапросом в котором разворачивание и сворачивание.

select array_agg(ee) from ( select jsonb_array_elements(e->'bar') as ee from ( select jsonb_array_elements( '[{"foo":1,"bar":[{"buzz":11},{"buzz":12}]},{"foo":2,"bar":[{"buzz":21},{"buzz":22}]}]'::jsonb ) as e ) as t ) as tt;

Anton
10.04.2017
23:30:16
Всем привет! Помогите, пожалуйста, с настройкой sphinx Сейчас переезжаем с mysql на postgresql, в таблице 50 миллионов записей, есть текстовое (varchar) поле, по которому нужно сделать поиск. В обоих базах построил нужные индексы для фуллтекста, ищет примерно за одинаковое время, бывает несколько минут уходит на запрос. А нужно, что бы секунды. Решил потестить Sphinx, создал индекс, все нормально, запустил, но как использовать? 1) по докам первый способ, с помощью утилиты типа, какой? search устарела, пишут 2) с помощью API на языках, делал кто так? 3) нативно с консоли базы, в mysql тут все хорошо, а для postgresql есть pg_sphinx, я его установил, добавил расширение в базу, функции добавились, все норм, но при попытке сделать запрос, выдает ошибку zz7=# select count(*) from sphinx_select('zz7_idx', 'квіти', NULL, '@relevance DESC',0,5,NULL); ERROR: Can't connect to sphinx server. Lost connection to MySQL server at 'reading initial communication packet', system error: 0 настраивал кто успешно, можете пример конфига кинуть или подсказать в чем проблема?

Denis
10.04.2017
23:47:52
Всем привет! Помогите, пожалуйста, с настройкой sphinx Сейчас переезжаем с mysql на postgresql, в таблице 50 миллионов записей, есть текстовое (varchar) поле, по которому нужно сделать поиск. В обоих базах построил нужные индексы для фуллтекста, ищет примерно за одинаковое время, бывает несколько минут уходит на запрос. А нужно, что бы секунды. Решил потестить Sphinx, создал индекс, все нормально, запустил, но как использовать? 1) по докам первый способ, с помощью утилиты типа, какой? search устарела, пишут 2) с помощью API на языках, делал кто так? 3) нативно с консоли базы, в mysql тут все хорошо, а для postgresql есть pg_sphinx, я его установил, добавил расширение в базу, функции добавились, все норм, но при попытке сделать запрос, выдает ошибку zz7=# select count(*) from sphinx_select('zz7_idx', 'квіти', NULL, '@relevance DESC',0,5,NULL); ERROR: Can't connect to sphinx server. Lost connection to MySQL server at 'reading initial communication packet', system error: 0 настраивал кто успешно, можете пример конфига кинуть или подсказать в чем проблема?
Кстати, а вы пробовали rum индекс для полнотекстового поиска? В отличие от gin ему не нужно делать recheck и залазить в таблицу для этого.

Anton
10.04.2017
23:48:49
даже не слышал о таком, сейчас загуглю, но проблема в скорости сейчас только, а не в переиндексации, если об этом речь

Denis
10.04.2017
23:50:54
Нет, это как раз радикально решает скорость запроса. Когда вы выполняете сложный запрос с учётом расстояния между словами, то Gin не имеет таких данных и лезет перепроверять в таблицу найденное в индексе. А rum уже хранит такие данные. Это не ваш случай?

Google
Anton
10.04.2017
23:51:44
прочел насчет этого как раз, но если запрос по одному слову, то тут он выигрыша не имеет же?

Denis
10.04.2017
23:52:09
Нет

Значит, вам нужен сфинкс)) ну или партицировать через pathman

Anton
10.04.2017
23:52:55
несколько слов в поиске возможны, но в основном это одно слово

еще вариант еластик, конечно, но как-то уже хочеться протестить сфинкс, хотя документация у него очень хромает, конечно, в отличии от еластика. спасибо, загуглю насчет pathman'а

еще маленький вопрос, я же правильно понял, что insert не блокирует таблицу для чтения, в отличии от myisam в mysql, например?

Denis
11.04.2017
00:02:19
На чтение не блокирует. Вот, https://postgrespro.ru/docs/postgrespro/9.5/explicit-locking.html , гляньте тип row share

Anton
11.04.2017
00:03:05
да, я там и смотрел, но хотел уточнить

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