@pgsql

Страница 179 из 1062
Евгений
05.12.2016
12:46:22
А можно ли в PG для запроса INSERT сделать несколько conflict_actions? То есть: INSERT ... ON CONFLICT (constr1) DO UPDATE .. ON CONFLICT (constr2) DO NOTHING ON CONFLGICT (constr3) ... а по constr4 просто упасть? Понятно, что официальная дока говорит, что "нет", но это можно как-то обойти?

Или только порождать чудовище-хранимку?

Vadim
05.12.2016
12:51:32
Попробуйте триггеры + exception

Евгений
05.12.2016
12:52:13
а в один запрос это можно запихнуть? т.е. сделать что-то вроде EXECUTE 'тут километр plpgsql' ?

Google
Евгений
05.12.2016
12:53:12
очень не хочется исльно усложнять базу, пусть это сидит в приложении

Darafei
05.12.2016
12:54:01
конечно, можно, он же тьюринг-полон

Sergey
05.12.2016
12:59:08
Особенно если идет вставка в больших объемах

По-моему надо в архитектуре приложения что-то пересмотреть. Поправьте меня, если это не так

Darafei
05.12.2016
13:16:41
эх, заслал ещё один ишью в датагрип https://youtrack.jetbrains.com/issue/DBE-3580

Gonchik
05.12.2016
16:21:38
@blkmrkt Есть новости? Мне кажется подобное предстоит, поэтому интересуюсь

Igor
05.12.2016
19:31:50
если я буду настраивать postgres по книжке "postgreSQL High Perfomance" от 2010г, где рассказывают про 8.3, это сильный выстрел в ногу?

Igor
05.12.2016
19:38:02
последнее обновление - 2014г.

хотя получше, да

Аггей
05.12.2016
19:38:50
2014 - 9.2 или 9.3 была

Google
Айтуар
05.12.2016
19:41:22
Ну первый шаг это pgtune, а дальше уже читать и пробовать.

Igor
05.12.2016
19:46:38
>Установка shared_buffers больше 8 ГБ не даёт никакого хорошего эффекта

это все ещё правда?

Alex
05.12.2016
19:49:12
в теории правда, на практике не очень )

Evgeniy
05.12.2016
20:01:49
в 9.5 были сделаны хорошие вещи чтобы было получше но лру говно и устройство хеша не особо помогает андрейс фрейнд вроде делает шаред буферс лучше

но патча в 10.0 пока нет

в общем с чекпоинтами и шаред буферами геморроя еще предостаточно

до мускуля далеко

Igor
05.12.2016
20:18:37
после 9.3 уже не надо настраивать kernel.shmmax/shmall?

Марк ☢
05.12.2016
20:19:48
Последнее всегда читал как "шмаль"

Айтуар
05.12.2016
20:20:33
Шмакс и шмаль я тоже так читаю))

Igor
05.12.2016
20:22:35
# cat /proc/sys/kernel/shmall 18446744073692774399 # cat /proc/sys/kernel/shmmax 18446744073692774399

Э... это теперь норма?

на двух серверах с последним дебианом

почему они у него одинаковые?

Айтуар
05.12.2016
20:24:54
почему они у него одинаковые?
Почему они такие огромные?

Igor
05.12.2016
20:27:02
32гб оперативной

Айтуар
05.12.2016
20:29:53
kernel.shmmax=17179869184 kernel.shmall=4194304 В http://pgtune.leopard.in.ua

Igor
05.12.2016
20:31:17
я читал. На старых дебианах и постгресах так и делал. Но тут говорят что после 9.3 уже пофиг, и дебиан 8 ставит какие-то конские дефолтные значения, вдруг ему виднее

Марк ☢
05.12.2016
20:47:41
Google
Igor
05.12.2016
20:48:21
какая проблема? такое приехало в свежем дебиане, я не трогал

Марк ☢
05.12.2016
20:48:50
Посмотри в хексе

Если реверснуть не получится ли нормальное число ?

Darafei
05.12.2016
20:50:15
почему вдруг баг и зачем материться?

Evgeniy
05.12.2016
20:50:21
shmmax Defines the maximum size (in bytes) of a single shared memory segment allowed by the kernel. Starting with Red Hat Enterprise Linux 7.1, the default value for shmmax set by the kernel at boot time is 18446744073692774399 bytes. In Red Hat Enterprise Linux 7.1, this value was overwritten by the kernel.shmmax sysctl parameter set in the /usr/lib/sysctl.d/00-system.conf file. In Red Hat Enterprise Linux 7.2 and later, parameters overriding the kernel default have been removed, so the system-wide default value is set to 18446744073692774399 bytes. To change the system-wide default value, set kernel.shmmax in /etc/sysctl.d/01-shm.conf to the intended value.

не знаю чего вам не так

лимиты вообще должны в прошлое уйти

Марк ☢
05.12.2016
20:50:47
почему вдруг баг и зачем материться?
Сорри. С другого чата занесло

почему вдруг баг и зачем материться?
Часто кода непонятные большие числа то это может быть признаком проблем с эндианностью

blkmrkt
06.12.2016
05:23:56
неа, пока еще бекап делаю
такс, преустановил дебиан, сейчас поставлю такую версию постгреса и попробую запустить со старым датафолдером

Петр
06.12.2016
06:35:46
kernel.shmmax=17179869184 kernel.shmall=4194304 В http://pgtune.leopard.in.ua
это для 16 гб для разделяемой памяти

Айтуар
06.12.2016
06:36:35
Петр
06.12.2016
06:38:00
не понял

если памяти 32, то я бы увеличил размеры shmmax, shmall да еще включил бы большие страницы

Айтуар
06.12.2016
06:41:56
Но при 32 большие страницы не нужны особо

Алексей
06.12.2016
06:42:19
или надо что то крутить ?

Айтуар
06.12.2016
06:42:42
а постгрес автоматом начнет юзать большие страницы?
Если в ОС настроить предварительно

Петр
06.12.2016
06:42:44
у вас 9.5? он должен быть вклбючен по умолчанию

Google
Петр
06.12.2016
06:45:14
да посмотрите в /proc/meminfo, пользуются большие страницы или нет

Айтуар
06.12.2016
06:46:10
Есть хорошая статья по настройке больших страниц на хабре.

Аггей
06.12.2016
06:47:19
Про большие страницы - в pg настройка по дефолту - использовать, если есть возможность - то есть если включены в ос

Петр
06.12.2016
06:49:02
Айтуар
06.12.2016
06:50:13
Есть хорошая статья по настройке больших страниц на хабре.
Ну это для тех кому нужно просто настроить не вдаваясь в детали.

Admin
ERROR: S client not available

Евгений
06.12.2016
09:45:50
Вообще вставлять конфликтные данные в базу без предварительной валидации - плохо.
По идее - да. С другой стороны обеспечить их бесконфликтность надежно нельзя. Те же ORM работают по принципу "есть id у записи или нет". И все равно никто не застрахован, что данные не появятся. Как понимаю, для надежного решения проблемы и был придуман Merge | Upsert. Кстати. оа он дает оверхед? Как скаежм, если я буду делать вставку в транзацкции, и поом ее откатывать? Или там идет проверка раньше?

Vadim
06.12.2016
11:48:13
а postgresql -> oracle как можно данные смигрировать? в обратную сторону так сказать

Vadim
06.12.2016
11:50:06
мало, пару гигов

сам sql дамп постгресовый можно на оракле как-то выполнить подредактировав

blkmrkt
06.12.2016
12:21:17
@blkmrkt Есть новости? Мне кажется подобное предстоит, поэтому интересуюсь
все окей! просто заменил данные директории, запустил сервер, он ругался на permission denied. Сделал chown -R postgres /var/lib/postgresql/9.5/main, снова запустил и все ок: 2016-12-06 14:19:22 EET [4464-2] LOG: database system was not properly shut down; automatic recovery in progress 2016-12-06 14:19:22 EET [4464-3] LOG: redo starts at 1560/D5CE78F0 2016-12-06 14:19:22 EET [4474-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:22 EET [4477-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:23 EET [4480-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:23 EET [4464-4] LOG: invalid magic number 0000 in log segment 0000000100001560000000E7, offset 0 2016-12-06 14:19:23 EET [4464-5] LOG: redo done at 1560/E6FFF960 2016-12-06 14:19:23 EET [4464-6] LOG: last completed transaction was at log time 2016-11-23 01:09:47.40058+02 2016-12-06 14:19:23 EET [4483-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:24 EET [4486-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:24 EET [4489-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:25 EET [4492-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:25 EET [4495-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:26 EET [4498-1] postgres@postgres FATAL: the database system is starting up 2016-12-06 14:19:26 EET [4499-1] [unknown]@[unknown] LOG: incomplete startup packet 2016-12-06 14:19:27 EET [4464-7] LOG: MultiXact member wraparound protections are now enabled 2016-12-06 14:19:27 EET [4463-1] LOG: database system is ready to accept connections 2016-12-06 14:19:27 EET [4506-1] LOG: autovacuum launcher started

чудо что данные не похерились, я это из 3,9/5 дисков RAID5 собрал

Alexey
06.12.2016
12:22:58
RAID5 не нужен. RAID6.

blkmrkt
06.12.2016
12:23:34
RAID5 не нужен. RAID6.
ага, мне дисков не хватало для RAID6

т.е. данные как раз на RAID5 пока еще влезают

Alexey
06.12.2016
12:24:13
А, у меня два года назад был отказ одного, потом второго диска с пятым рейдом, после успеха на неделю в лес уехал водку пить и песни орать.

blkmrkt
06.12.2016
12:24:32
я тоже сегодня отмечу ?

Google
Alexey
06.12.2016
12:25:28
Я бы не стал называть это „отмечанием”, это больше похоже на психическую реабилитацию и депривацию стрессовых паттернов сознания. По-моему достаточно мудрёно получилось сказать, чтобы отразить всю глубину седины волос. :D

Айтуар
06.12.2016
12:28:34
сделай дапм или full vacuum

Alexey
06.12.2016
12:29:53
Да, в начале прежде чем бухать — проверь. А то будет очень больно с похмелья осознавать, что головняк никуда не уходил.

blkmrkt
06.12.2016
12:30:19
сделай дапм или full vacuum
кстати да, сделаю сначала дамп, а то для vacuum full места нет

и восстановлю его

Айтуар
06.12.2016
12:31:30
и восстановлю его
если данные похерились и дамп не получится сделать ))

blkmrkt
06.12.2016
12:32:07
если данные похерились и дамп не получится сделать ))
ну там навряд ли много похерилось - fsck не нашел ошибок, а потеря даже 10% данных не страшна

blkmrkt
06.12.2016
12:33:07
fsck и дапм разные вещи
угу, я уже встречался с out of sync индексами и дубликатами pkeys, это подозреваю самое страшное

Dmitriy
06.12.2016
12:34:29
Ребята, а как же 10 raid, пара реплик? как вообще жить то так можно спокойно с одним сервером БД и без бэкапов? Мне бы кошмары каждую ночь снились

Alexey
06.12.2016
12:35:47
Ребята, а как же 10 raid, пара реплик? как вообще жить то так можно спокойно с одним сервером БД и без бэкапов? Мне бы кошмары каждую ночь снились
Для стартапчиков своей компании (людей) городить такую кухню мне лично лень. :) Сейчас просто дампим в облако ежесуточно. Чай не продакшн.

Dmitriy
06.12.2016
12:36:29
Тогда хотя бы дампы, на другой диск

серьезно, а если бы не восстановилось?

blkmrkt
06.12.2016
12:37:17
я вот Дебиан переустанавливал, почитал немного про LVM. Если без mdadm разметить одну группу lvm поверх 5 дисков и создать на ней логический том, получится что-то вроде простого RAID0?

Айтуар
06.12.2016
12:37:33
Тогда хотя бы дампы, на другой диск
ну так и делаем, дамп с сервера БД на сервер приложения

blkmrkt
06.12.2016
12:41:09
Тогда хотя бы дампы, на другой диск
я медленный 8ТБ диск поставил, буду сначала на него писать еженедельный дамп, а с него раз в месяц в google nearline. только как бы делать это инкрементально, чтоб не выгружать все каждый раз

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