
Tim
23.08.2018
17:45:48
а на какого масштаба базе?

Айтуар
23.08.2018
17:46:30

Tim
23.08.2018
17:46:51
ну у нас что-то типа того же ожидается
максимум 500

Google

Tim
23.08.2018
17:47:11
вот, и самое главное - вы его используете на slave же?
и base backup оттуда делается?

Айтуар
23.08.2018
17:49:10

Tim
23.08.2018
17:49:39
понятно, спасибо

Andrey
23.08.2018
18:42:28
Подскажите можно ли настроить постгрес базу чтобы она не убивалась?поясню. Есть несколько серверов телеметрии которые шлют данные в постгрес базу. Есть около 5 серверов которые читают данные из базы. Периодически наблюдаю картину что память выедается процессами постгреса. Затем начинает писать в своп 16гб. Потом убивается оом киллером.

Andrei
23.08.2018
18:44:21
Сколько открытых коннектов?
Нет ли сессий простаивающих в транзак
*транзакции?

Andrey
23.08.2018
18:56:43

Yaroslav
23.08.2018
19:07:37

Andrey
23.08.2018
19:09:01
pg_stat_activity
Я так понял это таблица для анализа что творится сейчас. Придется заводить в мониторинг через скрипт чтобы анализировать. Проблема плавающая

Yaroslav
23.08.2018
20:29:05

Google

Dmitry
24.08.2018
08:41:37
подскажи плиз, есть ли параметр, которым можно регулировать extend size у relation (pg_toast точнее)?

Sergey
24.08.2018
08:47:41

Dmitry
24.08.2018
08:48:02
нет. у меня овердохера exclusivelocks на extend pg_toast
как увеличить pg_toast большими блоками

Sergey
24.08.2018
08:48:33
Понял

Dmitry
24.08.2018
08:56:53
Понял
https://github.com/postgres/postgres/blob/322548a8abe225f2cfd6a48e07b99e2711d28ef7/src/backend/access/heap/hio.c#L529
где-то здесь судя по всему

Sergey
24.08.2018
09:08:54
Интересно каково соотношение вызовов просто ReadBufferBI к RelationAddExtraBlocks

Dmitry
24.08.2018
09:11:01

Sergey
24.08.2018
09:11:08
Кажется что одиночный аллоцированный блок может удовлетворить большую пачку ожидающих расширения relation воркеров. А уж как это соотнесётся с toast, где всё бьётся на chunk'и
Коэффициент расширения хороший - extraBlocks = Min(512, lockWaiters * 20); https://doxygen.postgresql.org/hio_8c.html#ab5c16550c2b170cd03a1c87756066b8e

Alexey
24.08.2018
10:02:59
Всем привет.
Подскажите пожалуйста, почему при исполнении этой команды
CMD ["postgres", "-c" , "pg_restore -h 127.0.0.1 -U postgres -F t -d nseec /tmp/nseec_dump.tar"]
В докере, мне выдает ошибку :
2018-08-24 08:31:57.247 GMT [1] FATAL: -c pg_restore -h 127.0.0.1 -U postgres -F t -d nseec /tmp/nseec_dump.tar requires a value
Хотя я следую инструкции с офф сайта :
CMD ["executable","param1","param2"]
Может я не так это понимаю?)

Maks
24.08.2018
10:07:48
а не пробовали? CMD ["postgres", "-c" , "'pg_restore -h 127.0.0.1 -U postgres -F t -d nseec /tmp/nseec_dump.tar'"]
второй параметр в одинакрые кавычки

Dmitry
24.08.2018
10:11:53
"postgres", "-c" ,
наверное имеется ввиду что надо запустить под пользователем postgres команду pg_restore. а у вас написано что выполнить команду postgres.

Alexey
24.08.2018
10:21:38

Dmitry
24.08.2018
10:23:07
ну вы обратились не по адресу. не в тот чатик. разберитись с docker. команда для востановления - pg_restore -h 127.0.0.1 -U postgres -F t -d nseec /tmp/nseec_dump.tar правильная.

Alexey
24.08.2018
10:30:55

Anton
24.08.2018
11:06:18

Google

Anton
24.08.2018
11:06:39
В контейнере не надо директорию кластера хранить

Alexey
24.08.2018
11:11:15

Nikita
24.08.2018
11:11:41
чтобы ресторе делать

Alexey
24.08.2018
11:12:11

Anton
24.08.2018
11:12:58

Alexey
24.08.2018
11:14:04

Nikita
24.08.2018
11:14:33
@AlexeyMozgo сдается мне, что нужно еще указать порт -p при pg_restore

Alexey
24.08.2018
11:15:36

Nikita
24.08.2018
11:18:53

Anton
24.08.2018
11:19:10

Nikita
24.08.2018
11:19:12
подключаетесь то через сеть, а не через unix-сокет
если прописать в pg_hba.conf типа host all all 127.0.0.1/32 trust(что я не рекомендую), то может заработать

Alexey
24.08.2018
11:21:05

Dmitry
24.08.2018
11:30:38
Зачем впереди postgres -c ?
Уберите это и должно заработать. 3 раз пишу.

Google

Alexey
24.08.2018
11:49:30
Уберите это и должно заработать. 3 раз пишу.
CMD ["postgres", "'pg_restore -h 127.0.0.1 -p 5432 -U postgres -F t -d nseec /tmp/nseec_dump.tar'"]
Выводит:
postgres: invalid argument: "'pg_restore -h 127.0.0.1 -p 5432 -U postgres -F t -d nseec /tmp/nseec_dump.tar'"
Try "postgres --help" for more information.

Dmitry
24.08.2018
11:50:17

Alexey
24.08.2018
11:51:05

Dmitry
24.08.2018
11:51:05
Вы вызываете команду postgres а не команду pg_restore
postgres впереди не нужен
Это своя команда к восстановлению не имеет отношения
Девупс который мы заслужили!

Alexey
24.08.2018
11:55:44

Maxim
24.08.2018
11:56:28

Alexey
24.08.2018
11:58:39
Это своя команда к восстановлению не имеет отношения
CMD [ "pg_restore", "-h", "127.0.0.1", "-U", "postgres", "-F", "t", "-d", "nseec", "/tmp/nseec_dump.tar"]
Вот так заработало.
Но, так как база не запущена , то выдает ошибку :
pg_test | pg_restore: [archiver (db)] connection to database "nseec" failed: could not connect to server: Connection refused
pg_test | Is the server running on host "127.0.0.1" and accepting
pg_test | TCP/IP connections on port 5432?
Теперь, надо как-то перед restore запустить бд

Mike Chuguniy
24.08.2018
12:09:22
А CMD, судя по докам, д/б одна в докер-файле...
@AlexeyMozgo я скажу вам грустную печальную вещь, но прийдеца потерпеть - изучите, пожалуйста, сначала документацию по докеру, а потом уже задавайте вопросы, когда раза с десятого не получится то, что надо.

Alexey
24.08.2018
12:10:20

Mike Chuguniy
24.08.2018
12:11:10
Изучайте (именно изучайте, а не галопом по Еропам!) доку по докеру - других путей познания нет.
Там ещё какие-то энтрипойнты есть...
В смысле в докере

Slava
24.08.2018
12:18:48
всем привет. Такой вопрос, что будет если с разных машин одновременно открыть два серверных курсора с одинаковым именем?
запрос на обоих одинаковый

Anton
24.08.2018
13:15:51
Это я знаю и если прописапн 2 CMD, то будет выполняться последняя..
Не делайте pg restore таким способом. Подумайте еще раз. Скорее всего можно сделать по другому. Это плохая практика. Запускаете контейнер. У него каталог кластера вынесен биндом на хост. Далее вы с помощью команды для этого контейнера ресторите базу и продолжаете работать дальше. Если вышла новая версия - обновляете образ контейнера и удаляете/создаете новый контейнер, обновляете кластер на новую версию. А тот вариант, что вы хотите сделать - это прям совсем страшно. Вам докер тогда и не нужен, если его так использовать. Я это как то так вижу.

Google

OracleHelp
24.08.2018
14:24:48
OracleHelp
https://t.me/oraclehelp

Сергей
24.08.2018
15:12:25
Ребят, такой вопрос по локам. посгрес 9.6, уровень read commited.
делаю много паралельных запросов
"SELECT 1 FROM table WHERE id IN (locking_ids) FOR UPDATE";
когда locking_ids пересекаются периодически возникают дедлоки. не оч понятно почему так получается, я предполагал, что посгрес атомарно ставит лок на все строки из выборки, но получается что нет. прав ли я? у кого есть идеи как это пофиксить? есть идеи повысить уровень изоляции и сделать с ретрайями, но там очередь может образоваться

S
24.08.2018
15:19:58
конечно НЕ атомарно, а отдельно каждую строку лочит
в случайном порядке в соответствии с планом запроса
Из-за разного порядка взятия блокировки и возникают deadlock

Сергей
24.08.2018
15:21:43
а какие варианты решения проблемы?

S
24.08.2018
15:22:16
брать блокировки в одинаковом порядке, например order by id

Сергей
24.08.2018
15:23:35

S
24.08.2018
15:46:58
:-)