@pgsql

Страница 160 из 1062
Anton
15.11.2016
07:29:48
Fwd_oracle искали?
foreign data wrapper вроде не дает вызвать функцию

только таблички, емнип

Добрый день. Можно ли организовать вызов оракловой функции средствами postgres? Т.е. установить связь с ораклом со стороны постгреса и вызвать функцию?
Наверное можно попробовать вызвать хранимку через ODBC вот тут мануал был - как подключать http://raghavt.blogspot.ru/2016/05/ways-to-access-oracle-database-in.html

Aleksandr
15.11.2016
07:46:37
Срочно в эфир: https://www.postgresql.org/about/news/1717/

Google
Aleksandr
15.11.2016
07:46:47
Amazon RDS now supports PostgreSQL 9.6.1

AbiGeuS
15.11.2016
07:55:40
только таблички, емнип
Все верно. oracle_fdw использую для доступа к таблица/обзорам. Функцию там не вызвать.

Darafei
15.11.2016
07:57:12
а нельзя сделать такое view, которое дёрнет функцию?

Евгений
15.11.2016
07:57:28
Amazon RDS now supports PostgreSQL 9.6.1
Ага, DBA больше не нужны ? Спокойно, уже ухожу ??

Darafei
15.11.2016
07:57:58
да ладно, на RDS по умолчанию work_mem в 4 mb

умеешь крутить work_mem на rds и знаешь, что это надо делать - нужный dba

AbiGeuS
15.11.2016
08:02:15
а нельзя сделать такое view, которое дёрнет функцию?
Нужно параметры уметь передать таким образом.

Darafei
15.11.2016
08:02:38
insert into таблица, select from view

всё в транзакции, таблицу договориться держать пустой вне транзакций

Николай
15.11.2016
08:24:53
Всем привет. Решил тут познакомится с постгресом и сделать на нем не большой проектик для себя любимого. Но вот расстройство. Постаивл я значит postgresql 9.6 + pgadmin 4 Создал в нем базу, таблицу, столбцы. Патюсь через query tool отправить пару insert. А вместо результата получаю "Not connected to the server or the connection to the server has been closed." При этом тут же делаю селект к таблице - и все нормльно. пробовал гуглить - и ничего путного не нашел. Подскажите в чем может быть проблема?

Alex
15.11.2016
08:25:31
В пгадмин4

Николай
15.11.2016
08:26:05
пичаль. а как починить?

Google
AbiGeuS
15.11.2016
08:27:25
всё в транзакции, таблицу договориться держать пустой вне транзакций
Это конечно мог бы быть вариант, но такой сервис может использовать одновременно много людей. Можно конечно поизвращаться с разбиением данных в таблице по пользователям. Но может есть более нативный вариант. Сильно сложные вещи городить не хотелось бы по двум причинам: вызываться это все должно встроенными мезанизмами 1с(а там уже можно словить кучу ограничений); не хотелось бы быть сильно прикладываться к реализации оракловой. Там другие люди за это отвечают и хотелось бы просто использовать их функцию как черный ящик. Без дополнительных телодвижений.

Vadim
15.11.2016
08:32:00
пичаль. а как починить?
Поставить пгадмин3 :)

Николай
15.11.2016
08:32:31
так все плохо?

Vadim
15.11.2016
08:32:59
Пока что да

Николай
15.11.2016
08:33:22
ок. пойду качать третий.

а внешне такой симпотичный был...

Darafei
15.11.2016
08:34:08
а багу в трекер завели?

а то вот это "оно нехорошее, пользуйтесь другим" без попытки пропатчить / сообщить о проблеме, обычно приводит к загниванию экосистемы

Vadim
15.11.2016
08:36:25
https://www.bigsql.org/pgadmin3

Николай
15.11.2016
08:36:55
а багу в трекер завели?
багу -то я заведу. Но согласитесь странная такая бага.

Какие запросы проходят, а какие-то нет

причем ни какой магии написать-то не успел.

Darafei
15.11.2016
08:37:23
странная, да

Николай
15.11.2016
08:37:26
обычный инсуерт в одну табличку.

поэтому и грешил больше на свои кривые руки, чем на тулзу.

Поставить пгадмин3 :)
таки помогло. спасибо.

Vadim
15.11.2016
09:43:53
Bob
15.11.2016
10:21:36
Коллеги, помогите найти виновника торжества. Есть таблица, в которой 9432 строки. Обычный размер с индексами около 7Мб. Таблица распухает на глазах. Раньше помогал vacuum full, но сейчас (возможно изза нового релиза) vacuum full ее не может почистить и не могу найти кто держит строки: postgres=# SELECT relation::regclass, * FROM pg_locks where relation::regclass::text like '%mobileitm%'; relation | locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath ----------+----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-----+------+---------+---------- (0 rows)   postgres=# vacuum full verbose mobileitm; INFO:  vacuuming "gkmobile.as_itm" INFO:  "mobileitm": found 0 removable, 914904 nonremovable row versions in 62482 pages DETAIL:  905472 dead row versions cannot be removed yet. CPU 1.70s/10.58u sec elapsed 25.11 sec. VACUUM postgres=#  select pg_size_pretty( pg_total_relation_size('mobileitm') ); pg_size_pretty ---------------- 686 MB (1 row) Как найти кто держит?

Vadim
15.11.2016
10:22:20
Репликация есть?

Bob
15.11.2016
10:22:50
Нет

Google
Darafei
15.11.2016
10:23:00
сделай ей cluster по какому-нибудь индексу, если её можно полочить на некоторое время

Bob
15.11.2016
10:29:34
Сделаю, но т.к. ее размер вырос почти в 100 раз придётся ночью. Есть ли способ понять/узнать кто держит?? В pg_locks ничего нет. Чекпоинты каждые 10 минут , не думаю что это из-за wal.. При этом рестарт приложения без рестарта субд помогает и vacuum full проходит.

Айтуар
15.11.2016
10:30:34
Idle connect

Bob
15.11.2016
10:33:09
Idle in transaction есть (появились с последним релизом), но коннекции к другой схеме(той же бд). Разве в pg_locks их быть не должно?

Айтуар
15.11.2016
10:36:03
Нет

Bob
15.11.2016
10:42:46
Т.e. все idle соединения держат какие то строк в таблице? Какой корректный способ поведения для пула, чтобы предотвратить разбухание таблиц и иметь возможность выполнять vacuum full? Каждый раз полностью закрывать соединение?

Sergey
15.11.2016
10:46:53
Закрывать транзакции

Держат только idle in transaction

Bob
15.11.2016
10:49:20
Так, но те запросы которые висят в idle in transaction они к другой схеме и то что они лочат таблицы видно в pg_locks. Этой же таблицы нет.

Bob
15.11.2016
10:51:26
Нет, 2 java приложения. Какой фреймвор для пула используется с ходу не скажу...

Sergey
15.11.2016
10:51:39
А это не механизм явных локов, а MVCC

Bob
15.11.2016
10:54:16
Я понимаю что это mvcc, но для него же все равно нужен наверное лок... иначе как vacuum понимает, что эти строки еще нужны.

dmitriy
15.11.2016
10:54:27
Так, но те запросы которые висят в idle in transaction они к другой схеме и то что они лочат таблицы видно в pg_locks. Этой же таблицы нет.
у вас залип xmin, это происходит по нескольким причинам: 1) залип xmin в каком-либо слоте репликации (pg_replication_slots), 2) есть какая(ие)-то незавершенные транзакции, которые еще выполняются со снапшотом, в котором этот xmin, т.е. они с их снапшотом еще могут видеть те строки, которые вакуум хочет вычистить. Смотреть в pg_stat_activity WHERE state <> 'idle' order by xact_start ну и автовакуум не считать, или есть prepared xacts select * from pg_prepared_xacts

Bob
15.11.2016
10:55:20
Спасибо, забыл про prepared, а это может быть...

Jonh
15.11.2016
11:57:53
Круто, в арч завезли 9.6, а постгис для него - нет

Darafei
15.11.2016
12:06:16
ну вы бы ещё более странный дистр нашли

честно говоря, не видел опций "сервер на арче" нигде

Alex
15.11.2016
12:09:59
ну есть любители

всё апдейтить и патчить

Google
Darafei
15.11.2016
12:12:15
апдейтить и патчить - арч не нужен

Andrey
15.11.2016
12:51:13
ну вы бы ещё более странный дистр нашли
На самом деле для десктопа - очень даже хороший дистр. Пробовал использовать на сервере - не то. Слишком часто пакеты обновляются и ядро. Даже в LTS )

Alex
15.11.2016
12:54:46
Для дома тоже так себе... бывает что приходиться ручками после обновления допинывать, нафиг такое счастье.

Arsen
15.11.2016
13:01:02
@cantrell а 2.3 не совместимо с 9.6?

Darafei
15.11.2016
13:01:17
бинарно? :)

Admin
ERROR: S client not available

Darafei
15.11.2016
13:01:31
2.3 от 2.5 - вряд ли :)

Jonh
15.11.2016
13:11:42
почему арч?
На десктопе его гоняю, разрабатываю в нем же

Slava
15.11.2016
14:03:11
Ребят, у кого-нибудь был случай с загрузкой логов в pg

некоторых полей иногда может не быть

и он не ковертирует их в null почему-то

не консистентно получается

Sergey
15.11.2016
14:09:23
Конвертирует в zero-length string?

Darafei
15.11.2016
14:10:16
null '' указан?

Maxim
15.11.2016
16:59:37
коллеги, а каких тут привилегий не хватает: staging=> alter database staging set logidze.disabled TO off; ERROR: permission denied to set parameter "logidze.disabled"

?

пользователь, от которого запускается, является овнером базы staging

Evgeniy
15.11.2016
17:05:54
Only the database owner or a superuser can change the session defaults for a database. Certain variables cannot be set this way, or can only be set by a superuser.

Google
Evgeniy
15.11.2016
17:06:07
ну видимо твой параметр овнер не может

Maxim
15.11.2016
17:44:47
да, пришлось-таки делать суперюзером, гнать миграцию, отнимать суперюзера

Azat
16.11.2016
14:53:25
Ребят , вопрос. Для materialized view, основанной на большой таблице. Во время выполнения команды refresh - старые данные доступны во время обновления или они стразу удаляются?

Azat
16.11.2016
14:55:16
спасибо!

Vadim
16.11.2016
14:57:24
спасибо!
не за что. Не забудьте только добавить индекс UNIQUE

Azat
16.11.2016
14:57:54
на ключ который транслируется в MV?

Vadim
16.11.2016
14:58:37
в самой MV должен быть создан уникальный индекс

Azat
16.11.2016
15:01:04
правильно понимаю, что если в оригинальной таблице есть PK, то мы в MV должны создать unique index по этому полю (полям)?

Evgeniy
16.11.2016
15:04:05
в mv у тебя может быть любой PK или не быть

просто для concurently нужен ключик чтобы понимать уникальность

Azat
16.11.2016
15:05:50
понял

Доступны. И лучше делайте CONCURRENTLY
Вадим, во время тестов с refresh materialized view получилось что во время обновления данные блокируются до конца обновления

Azat
17.11.2016
07:00:18
Мой недосмотр. Без него.

Vadim
17.11.2016
07:01:08
с ним будет работать. Запрос должен иметь вид REFRESH MATERIALIZED VIEW CONCURRENTLY my_view.

Vadim
17.11.2016
07:02:52
не за что

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