
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

Artem
26.02.2018
10:17:40

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

Alex
26.02.2018
10:20:58

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

Alex
26.02.2018
10:22:59

Айтуар
26.02.2018
10:26:16

Alex
26.02.2018
10:28:40

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

Игорь
26.02.2018
10:54:17

Yaroslav
26.02.2018
10:58:41

*sm1Ly
26.02.2018
11:02:56

Google

Yaroslav
26.02.2018
11:04:09

*sm1Ly
26.02.2018
11:04:47
там где case
я специально дал целиком чтобы было понятно о чем речь

Yaroslav
26.02.2018
11:06:24

*sm1Ly
26.02.2018
11:06:53
но возможно и целиком в запросе, вероятно я где-то непонимаю

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

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

Dmitry
26.02.2018
11:14:30

Yaroslav
26.02.2018
11:14:32

Игорь
26.02.2018
11:15:06

*sm1Ly
26.02.2018
11:18:52

Yaroslav
26.02.2018
11:19:59

*sm1Ly
26.02.2018
11:30:33
может я что-то не понимаю?(

Google

Yaroslav
26.02.2018
11:33:11

*sm1Ly
26.02.2018
11:36:51

Yaroslav
26.02.2018
11:38:08

*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

Yaroslav
26.02.2018
11:40:24

*sm1Ly
26.02.2018
11:42:58

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
в общем мне надо как-то соблюсти 2 условия, я непонимаю как. COALESCE и если следующая строка не из этого дня...

Yaroslav
26.02.2018
11:53:10

*sm1Ly
26.02.2018
11:53:23

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

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
А я открыл чатик во время совещания ухххх

Andrew
26.02.2018
14:44:34

Mike Chuguniy
26.02.2018
14:46:39

Andrew
26.02.2018
14:47:41

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

Andrew
26.02.2018
14:49:02

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'); ?