@pgsql

Страница 690 из 1062
Maks
26.02.2018
09:53:15
Добрый день. После апгрейда кластера с 9.3 до 9.6 таблицы пустые, но при этом размер базы прежний. В чем может быть дело?

des1roer
26.02.2018
09:54:30
https://ru.stackoverflow.com/questions/790355/postgres-%D0%92%D1%81%D0%B5-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8-%D0%B2-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B5-%D0%BD%D0%B0-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D0%B5%D1%86

Mike Chuguniy
26.02.2018
10:13:15
народ, прошу хелпу. Чегой-то туплю, однако. Что за чем ставится, и почему: haproxy за pgbouncer-ом, или наоборот? Нагрузка - в основном OLTP

* вспоминая, что доводилось видеть: как-то вот haproxy за pgbouncer-ом, но вот почему?

Google
Айтуар
26.02.2018
10:17:40
народ, прошу хелпу. Чегой-то туплю, однако. Что за чем ставится, и почему: haproxy за pgbouncer-ом, или наоборот? Нагрузка - в основном OLTP
Неправильно вопрос поставлен. Нужно спросить - что ставить перед приложением, pgbouncer или haproxy? И ответ найдёшь в инструкции pgbouncer.

Artem
26.02.2018
10:17:40
* вспоминая, что доводилось видеть: как-то вот haproxy за pgbouncer-ом, но вот почему?
https://dba.stackexchange.com/questions/56559/postgresql-high-availability-scalability-using-haproxy-and-pgbouncer

*sm1Ly
26.02.2018
10:19:28
подскажет кто?(

Айтуар
26.02.2018
10:22:21
А чо там в инструкции-то?
По сути то что написано в ссылке которую выше скинули. То для чего используется pgbouncer, т.е. poller.

Alex
26.02.2018
10:22:59
Айтуар
26.02.2018
10:26:16
В выше ссылке один пишет одно, другой другое. Правда где?
Зависит от того что ты хочешь получить? От твоего приложения. Может ли оно восстанавливать коннект к БД?

Айтуар
26.02.2018
10:36:36
Восстанавливать на какой момент времени?
Ну вот был у тебя коннект через haproxy-pgbouncer-PGmaster1 и вдруг происходит переключение на второй сервак БД, т.е. мастером стал второй сервак и haproxy перекидывает коннекты на другой pgbouncer. Что в этом случае будет делать приложение?

Игорь
26.02.2018
10:54:17
народ, прошу хелпу. Чегой-то туплю, однако. Что за чем ставится, и почему: haproxy за pgbouncer-ом, или наоборот? Нагрузка - в основном OLTP
Одна из причин, если соединение будет принимать haproxy,то у pgbouncer будет IP haproxy а не клиента. Это может быть ограничением для использования pg_hba.conf в pgbouncer

Yaroslav
26.02.2018
10:58:41
подскажет кто?(
А Вы отдельно этот SELECT проверяли / тестировали?

*sm1Ly
26.02.2018
11:02:56
А Вы отдельно этот SELECT проверяли / тестировали?
я его уже несколько раз переписал. у меня оно криво работает, не так как я хочу(

Google
Yaroslav
26.02.2018
11:04:09
я его уже несколько раз переписал. у меня оно криво работает, не так как я хочу(
Так показали бы его отдельно от прочего, раз в нём проблема...

*sm1Ly
26.02.2018
11:04:47
там где case

я специально дал целиком чтобы было понятно о чем речь

Yaroslav
26.02.2018
11:06:24
я специально дал целиком чтобы было понятно о чем речь
А что не так работает, конкретно? Вы добились, чтобы этот SELECT работал на том сервере так, как Вам нужно?

*sm1Ly
26.02.2018
11:06:53
А что не так работает, конкретно? Вы добились, чтобы этот SELECT работал на том сервере так, как Вам нужно?
дилемма в том что у меня case срабатывает криво. проблема именно в case...

но возможно и целиком в запросе, вероятно я где-то непонимаю

Yaroslav
26.02.2018
11:07:13
Что такое "криво", конкретно?

*sm1Ly
26.02.2018
11:10:02
если я делаю такой селект: https://pastebin.com/b4XfVGMq то у меня выходит так:

если я уберу t1.time < time2

то будет вообще бред



Yaroslav
26.02.2018
11:14:32
но возможно и целиком в запросе, вероятно я где-то непонимаю
Отклоняясь от исходного вопроса... а почему Вы уверены, что id у Вас идут по порядку time? А к вопросу: "CASE WHEN t1.time IS NULL THEN" —- у Вас time NULLable?

Игорь
26.02.2018
11:15:06
Вы с банусером уже берете авторизацию на себя, какой там hba
например, если нужно авторизовывать только для определенных сетей: https://pgbouncer.github.io/config.html#auth_type

*sm1Ly
26.02.2018
11:18:52
Отклоняясь от исходного вопроса... а почему Вы уверены, что id у Вас идут по порядку time? А к вопросу: "CASE WHEN t1.time IS NULL THEN" —- у Вас time NULLable?
ну потому что они так в базу пишутся. ну т.е. это факт. так софт написан. эм... у меня time может просто вообще не быть. ну т.е. строки может следующей не быть

*sm1Ly
26.02.2018
11:30:33
А разве это следующая строка, а не текущая?
дык у меня преобразование. следующая строка становится time-to

может я что-то не понимаю?(

Google
Yaroslav
26.02.2018
11:33:11
дык у меня преобразование. следующая строка становится time-to
Что? Я ничего не понял. :( Еще раз: t1 —- это текущая строка, t2 —- следующая, верно? Тогда зачем проверка: WHEN t1.time IS NULL ?

Yaroslav
26.02.2018
11:38:08
а если следующей строки нет?
А причём тут это? Ещё раз: поле "time" NULL-able или нет?

*sm1Ly
26.02.2018
11:38:10
ну вот смотри у меня 3 строки. 14.09, 15.07, 19.27; они преообразуются в time_from - time_to: 14.09 - 15.07 15.07 - 19.27 19.27 - 23.59.55

А причём тут это? Ещё раз: поле "time" NULL-able или нет?
честно - я незнаю((( оно просто timestamp.

Yaroslav
26.02.2018
11:40:24
честно - я незнаю((( оно просто timestamp.
Ну а в psql "\d settings_2s_qt" (на том сервере) что по этому поводу говорит?

Yaroslav
26.02.2018
11:47:43
time | timestamp without time zone
Т.е. столбец NULL-able пуст... И что значит, если там NULL? И что толку от этого: t1.time::timestamp::date + time ''23:59:55'' ? Всё равно же NULL получится...

*sm1Ly
26.02.2018
11:49:04
Т.е. столбец NULL-able пуст... И что значит, если там NULL? И что толку от этого: t1.time::timestamp::date + time ''23:59:55'' ? Всё равно же NULL получится...
я видимо некорректно изъяснился. там вообще всей строки может не быть. за что отвечает COALESCE.

в общем мне надо как-то соблюсти 2 условия, я непонимаю как. COALESCE и если следующая строка не из этого дня...

Yaroslav
26.02.2018
11:53:10
я видимо некорректно изъяснился. там вообще всей строки может не быть. за что отвечает COALESCE.
По-моему, Вы путаетесь. :( И в очередной раз: t1 —- это текущая строка, t2 —- следующая, верно?

Yaroslav
26.02.2018
11:55:11
Так зачем Вы при вычислении time_to ориентируетесь на, фактически, time_from? (Где t1.time —- time_from, t2.time —- time_to.)

*sm1Ly
26.02.2018
11:56:03
Так зачем Вы при вычислении time_to ориентируетесь на, фактически, time_from? (Где t1.time —- time_from, t2.time —- time_to.)
дык я потому и пришел с вопросами что запутался) в sql запросах я не очень пока шарю

Mike Chuguniy
26.02.2018
13:07:57
народ, прошу хелпу. Чегой-то туплю, однако. Что за чем ставится, и почему: haproxy за pgbouncer-ом, или наоборот? Нагрузка - в основном OLTP
Вот, нашёл, что в авито забубенили: https://www.slideshare.net/AvitoTech/standby-postgresql-haproxy-pgbouncer-avito Но это, конечно, треш и угар: на аппликейшнах pgbouncer->haproxy, на db: pgbouncer->postgres. Т.е. схема: pgbouncer->haproxy->pgbouncer->postgres мать, мать, мать, привычно отозвалось эхо.

Игорь
26.02.2018
13:17:02
Вот, нашёл, что в авито забубенили: https://www.slideshare.net/AvitoTech/standby-postgresql-haproxy-pgbouncer-avito Но это, конечно, треш и угар: на аппликейшнах pgbouncer->haproxy, на db: pgbouncer->postgres. Т.е. схема: pgbouncer->haproxy->pgbouncer->postgres мать, мать, мать, привычно отозвалось эхо.
Миша, это наш бывший коллега, кстати ? Идея ставить на app pgbouncer, довольно разумная. Спасает от взорвавшегося приложения. Но это их кастомное решение, которое в гетерогенной среде не подходит

Mike Chuguniy
26.02.2018
13:27:00
Насчёт разумности баунсера на аппликеёшнах - не знаю, не знаю. Я сейчас твой доклад на пгконф2018 смотрю по тому, что и как в Рамблере творится. У тебя приложения лезут в баунсер, а уже баунсер - в хапрокси.

Грубо утрируя.

Игорь
26.02.2018
13:45:32
Ну да, у меня это уровень абстракции. Так как мы предоставляем PostgreSQL as a Service. А в Avito своя, сильно заточенная инфраструктура сама в себе.

*sm1Ly
26.02.2018
14:22:00
фух... я разобрался...

Google
Mikhail
26.02.2018
14:32:46
Авитовское решении крайне удачное

Andrew
26.02.2018
14:36:44
Добрый день господа подскажите пожалуйста есть проблема была связка master -> slave бинарной репликацией после чего я из slave сделал master (удалив recovery.conf) и одна из баз на кластере слейва сломалась и не захотела работать по причиние Could not open file "pg_clog/0CF2": No such file or directory почему? что может быть не так? что нужно делать в таких случаях? что нужно делать чтоб не повторилось

Stanislav
26.02.2018
14:37:52
а зачем бинарную репликацию юзаете то?

Andrew
26.02.2018
14:39:08
ну потому-что она в софте и ненадо прикручивать всякие скрипты чтоб поддерживать логическую репликацию

Ilia
26.02.2018
14:42:09
Йо, как страшно -то было !

Anton [Mgn, az09@osm]
26.02.2018
14:42:50
/me едва успел пополнить блеклист

Сергей
26.02.2018
14:42:50
А я открыл чатик во время совещания ухххх

Mike Chuguniy
26.02.2018
14:48:31
Где вы такой "замечательный" совет увидели?

ЗЫ. Версия ПГ какая?

Mike Chuguniy
26.02.2018
14:49:20
Дайте ссылку.

Andrew
26.02.2018
14:49:31
скинул в лс

Mike Chuguniy
26.02.2018
14:59:40
Давайте уж сюда. Вам здесь более популярно объяснят, почему так нельзя делать. Кстати, насчёт перезаливки - в рековери.конф есть такой параметр recovery_target_timeline - им есть резон поиграться для того, чтобы не зависеть от эпохи WAL-а: https://www.postgresql.org/docs/9.4/static/continuous-archiving.html#BACKUP-TIMELINES

Pavel
26.02.2018
16:40:30
Всем привет. Подскажите, в pl/pqsql оракловый тип type mt is table of integer index by varchar2(100); только через временную таблицу можно реализовать? /* Дальше по коду оракловых процедур объявляется переменная типа mt, например, mv mt; и используется так mv('строка'):= 42; ... if mv.exists('строка') ... */

Konstantin
26.02.2018
16:47:18
Можно попытаться использовать массив. Зависит от того, как именно он используется в запросах и сколько данных туда предполагаетсчя запихать.

Pavel
26.02.2018
16:52:31
Не особо много. Как можно массив использовать, если может быть что mv('строка') = mv('строка1'); ?

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