
Nick
25.01.2018
15:34:13

Vyacheslav
25.01.2018
15:34:44
а что to_number(null) дает?

Nick
25.01.2018
15:37:12
а у тебя оракла нет? )
SQL> select to_number(null) from dual;
TO_NUMBER(NULL)
---------------
Elapsed: 00:00:00.00
вроде как все что угодно от null выдаст понятно что

Google

Vyacheslav
25.01.2018
15:40:28
ага, понял, спасибо
просто имеется книга "Секреты Oracle SQL", пытаюсь переделать исходники на pg/mysql

Nick
25.01.2018
15:41:20
поставь oracle XE - как без системы-то

Vyacheslav
25.01.2018
15:41:49
да, кстати, нужно поставить, спасибо

Alexander
25.01.2018
19:53:13

Айтуар
26.01.2018
09:26:17
Привет всем.
Кто работал с patroni ? Можно ли там добавить withness ноду и имеет ли смысл?

Pawel
26.01.2018
09:27:26
Господа, помогите нубу написать грамотный SQL. Есть два связных тэйбла
CREATE TABLE teams (
team_id SERIAL PRIMARY KEY,
team_name TEXT
);
CREATE TABLE events (
event_id SERIAL PRIMARY KEY,
home_id INT,
away_id INT,
FOREIGN KEY (home_id) REFERENCES teams (team_id),
FOREIGN KEY (away_id) REFERENCES teams (team_id)
);
Надо сделать SELECT на названия команд
то что у меня получилось сейчас:
WITH QUERY1 AS (
SELECT event_id, open_date, team_name as home, away_id FROM events e
INNER JOIN teams t ON e.home_id = t.team_id
)
SELECT event_id, home, team_name as away FROM QUERY1 INNER JOIN teams t ON away_id = t.team_id;
хотелось бы как то в один присест, без вложенного запроса

Anton [Mgn, az09@osm]
26.01.2018
09:30:45
развернуть в два джоина команд

Pawel
26.01.2018
09:31:09
это как?

Google

Denis
26.01.2018
09:31:12
база не запрещает тебе написать два джойна на одну и ту же таблицу

Anton [Mgn, az09@osm]
26.01.2018
09:31:13
with это же синтаксический сахар )
(за некоторым исключением)

Александр
26.01.2018
09:31:57
А это не то, что нужно?
SELECT
e.event_id,
e.home,
t.team_name as away
FROM events e
INNER JOIN teams t ON e.away_id = t.team_id

Pawel
26.01.2018
09:33:38

Anton [Mgn, az09@osm]
26.01.2018
09:34:30
SELECT e.event_id, e.home_id
, th.team_name as home
, ta.team_name as away
FROM events e
INNER JOIN teams th ON e.home_id = th.team_id
INNER JOIN teams ta ON e.away_id = ta.team_id;

Александр
26.01.2018
09:35:16
SELECT
e.event_id,
h.home,
t.team_name as away
FROM events e
INNER JOIN teams t ON e.away_id = t.team_id
INNER JOIN teams h ON e.home_id = t.team_id
возможно, нужно left join, зависит от того, что там выбрать нужно

Pawel
26.01.2018
09:36:30

Anton [Mgn, az09@osm]
26.01.2018
09:36:32
бублик там нужен той команде которая НЕ окажется справа))

Pawel
26.01.2018
09:36:54
Спасибо всем за помощь

Vadim
26.01.2018
10:01:29

Mike Chuguniy
26.01.2018
10:05:53
Пусть делится тайнами. :)

Айтуар
26.01.2018
10:07:18
Да ещё таких кластеров будет 1000 (

Vadim
26.01.2018
10:09:28
2 ноды это в принципе не HA. Чем подпирать withness ноду? Это у вас получится что то вроде repmgr. У них такая структура. У pgpool такая же история, только там это называется trusted_servers
Я не силен в патрони, но я думаю что HA с двумя нодами будет с большим количеством "но". Уточните у Игоря Успенского.

Pavel
26.01.2018
10:13:31
в чем это нарисовано?

Александр
26.01.2018
10:13:49
В datagrip

Google

Pawel
26.01.2018
10:13:51
В DataGrip

Pavel
26.01.2018
10:14:04
сенкс

Сергей
26.01.2018
10:16:02
День добрый.
Подскажите для postgres PRO v 10 уже есть расширение plv8 под Linux (Debian и Red hat если важно)?
из исходников собрать не получается.
может кто-то сталкивался.

Игорь
26.01.2018
10:24:56

Vadim
26.01.2018
10:26:11
Да, все верно. Но в stolon вы не можете работать с 2 нодами в синхроном режиме. Только асинхронная репликация и это на свой страх и риск.

Игорь
26.01.2018
10:28:42


Vadim
26.01.2018
10:32:28
Столон изначально ориентирован на букву C из CAP теоремы. Поэтому для него важнее сохранить данные. То есть в случае с 2 нодами и синхронной репликацией при падении primary произойдет переключение на синхронный standby, но новый primary не будет доступен на запись до тех пор пока старый не вернется в строй в роли standby. На время возвращения старого мастера, столон прописывает в syncronouse_standby_names фейковый application_name и таким образом ваш новый primary будет не доступен на запись. Если старый мастер не вернулся в строй кластер не доступен на запись.
мы написали патч, надеемся что в 0.8.0 он будет. На конференции расскажем с коллегой как решали эту проблему
там и про pgpool будет. Наелись с его watchdog -ом
@uspen2018 кстати не подскажете как решает эту проблему патрони?

Evgeniy
26.01.2018
10:51:12
говорят в линуксе THP починили
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=444eb2a449ef36fe115431ed7b71467c4563c7f1

Айтуар
26.01.2018
11:15:54

Игорь
26.01.2018
11:18:19

Vadim
26.01.2018
11:20:17
Наверное все зависит от проекта. Кому то важнее доступность, если это продажи к примеру, простой - это потеря денег. А за потерянные транзакции всегда можно извиниться через support. К тому же, тут нам на помощь может придти бекап

Игорь
26.01.2018
11:29:36
Да, в каждой ситуации свои решения и ограничения. Универсально сделать сложно. В Авито, например, по сути одно большое приложение и большой кластер PG. Следовательно у них все под это и заточено. В частности, у них на каждом app сервере стоит pgbouncer, что здорово спасает от внезапно взорвавшегося приложения.
А когда нужно обслуживать кучу разных проектов, то со всеми не договоришься. Нужно соблюдать баланс downtime, производительности, отказоустойчивости и консистентности.

Vadim
26.01.2018
11:36:20
У нас проблема в том, что у нас больше сотни инсталяций по всему миру и нет возможности оперативно вмешаться в случае проблемы. То есть решение должно быть максимально надежное и работать с минимальным вмешательством извне, так как, в Мексику или Италию, например, не отправишь DBA. А удаленый доступ к БД нам никто не даст. Поэтому если прод инсталяция единственная и команда имеет возможность оперативно вмешиваться, то можно сделать и с 2 нодами HA.

Dmitry
26.01.2018
11:53:10

Vadim
26.01.2018
11:55:34
есть базы по 500 Гб, есть меньше. Есть хорошие диски, есть убитые. То есть мы должны сказать клиентам подождите ребята мы сейчас за пару часов бекап поднимем?) ничего страшного что вы самый крупный телеком мексики, деньги не главное)

Dmitry
26.01.2018
11:56:40

Google

Vadim
26.01.2018
11:57:36
по-моему вы меня неправильно поняли)

Dmitry
26.01.2018
12:19:35

Айтуар
26.01.2018
12:37:21

Alex
26.01.2018
17:08:37

Vadim
26.01.2018
17:10:27

Sheridan
26.01.2018
17:35:47
Мексиканцам хорошо, они обезьян могут из джунглей наловить, да

Pavel
26.01.2018
17:37:57

Sheridan
26.01.2018
17:38:26
Одно другому не мешает )

Konstantin
27.01.2018
09:48:42
Модераторы спят??

Alina
27.01.2018
10:01:41
Сейчас разбудим :)

Darafei
27.01.2018
10:05:06
Кого где зачистить?

Igor
27.01.2018
10:19:22
А правильно ли я понимаю, что в постгре полноценная информация по статистике бд предоставляется через pg_stat_* вьюхи и больше ничего нету?

Maksim
27.01.2018
10:31:19

Yaroslav
27.01.2018
10:38:22

Igor
27.01.2018
11:26:00

Yaroslav
27.01.2018
11:30:56

Igor
27.01.2018
11:31:58

Yaroslav
27.01.2018
11:33:28
И ещё в расширениях:
https://www.postgresql.org/docs/current/static/pgbuffercache.html
https://www.postgresql.org/docs/current/static/pgstatstatements.html
https://www.postgresql.org/docs/current/static/pgrowlocks.html

sanqa
27.01.2018
14:29:37
хай парни

Google

sanqa
27.01.2018
14:29:49
помогите с psql postgres
кидает такую ошибку psql: FATAL: password authentication failed for user "username"
нужно что то с pg_hba.conf сделать, но не до конца понимаю что)