Size: a a a

pgsql – PostgreSQL

2020 July 06

GS

Grigory Smolkin in pgsql – PostgreSQL
нужно взять за правило использовать -v ON_ERROR_STOP=1
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexander Nikitin
про начиная с создания базы - наверное нет, только это
А вдруг там уже что-то было? Ошибок при восстановлении раньше точно не было, это первая (можно добавить "-v ON_ERROR_STOP=1" к вызову pg_restore)?

> PostgreSQL 9.6.11 OS Linux
> После чего этот дамп пытались развернуть на другой сервер на Windows (PostgreSQL 9.6.16

Кстати, почему pg_dump v11 используете? Он вообще не обязан так работать (только если повезёт... может Вам как раз и не везёт).
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
ок, спасибо, я пропишу это себ
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
там очень путанная ситуация, на этом сервере нет места даже для того, чтобы снять дамп одной бд, поэтому снимали удалённо с того сервера, на котором было место. И я так понимаю, что потом на другой сервер с этого места и заливали.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexander Nikitin
сейчас заглянул в логи на тот момент, когда происходил импорт. 2020-06-27 10:17:13 MSK ОШИБКА:  нет прав на создание расширения "uuid-ossp"
2020-06-27 10:17:13 MSK ПОДСКАЗКА:  Для создания этого расширения нужно быть суперпользователем.
2020-06-27 10:17:13 MSK ОПЕРАТОР:  CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA extensions;
 
 
 
2020-06-27 10:17:13 MSK ОШИБКА:  расширение "uuid-ossp" не существует
2020-06-27 10:17:13 MSK ОПЕРАТОР:  COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
 
 
 
2020-06-27 10:17:16 MSK ПРЕДУПРЕЖДЕНИЕ:  атрибут оператора "function" не распознан
2020-06-27 10:17:16 MSK ОШИБКА:  должна быть указана процедура оператора
2020-06-27 10:17:16 MSK ОПЕРАТОР:  CREATE OPERATOR orafunc.<> (
     FUNCTION = orafunc.boolean_not_equals_integer,
     LEFTARG = boolean,
     RIGHTARG = integer
 );
Ну так с первых ошибок всегда нужно начинать в таких ситуациях, да.
Потому что по умолчанию pg_restore будет заливать, пока это хоть как-то возможно. ;)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexander Nikitin
там очень путанная ситуация, на этом сервере нет места даже для того, чтобы снять дамп одной бд, поэтому снимали удалённо с того сервера, на котором было место. И я так понимаю, что потом на другой сервер с этого места и заливали.
Не в этом дело, а в версиях. Т.е. если у Вас серверы v9.6, а pg_dump v11, это вообще не обязано работать (и официально не поддерживается).
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
ага, я буду иметь это в виду.
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
Grigory Smolkin
нужно взять за правило использовать -v ON_ERROR_STOP=1
Я правильно понимаю, что в моём случае конечная команда должна выглядеть вот так: pg_restore -h 192.168.228.146 -p 5433 -d bp_release -U bp -Fd -j 8 -vO ON_ERROR_STOP=1 E:\Downloads\250620_bp_release.backup ? Спрашиваю потому что упоминание об ON_ERROR_STOP в документации нашёл только на странице посвящённой psql, на pg_dump и на pg_restore не увидел этой опции.
источник

GS

Grigory Smolkin in pgsql – PostgreSQL
Alexander Nikitin
Я правильно понимаю, что в моём случае конечная команда должна выглядеть вот так: pg_restore -h 192.168.228.146 -p 5433 -d bp_release -U bp -Fd -j 8 -vO ON_ERROR_STOP=1 E:\Downloads\250620_bp_release.backup ? Спрашиваю потому что упоминание об ON_ERROR_STOP в документации нашёл только на странице посвящённой psql, на pg_dump и на pg_restore не увидел этой опции.
по идее должно быть:
-vO -v ON_ERROR_STOP=1
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
Ок, спасибо
источник

R

Roman in pgsql – PostgreSQL
Подскажите, пожалуйста.

Нужно хранить в колонке много (20млн) строк, символов по ~40.
А затем искать есть-ли уже такая строка (целиком) или нет.

Вопрос - имеет-ли смысл сделать дополнительную колонку hash(от хранимой строки), поставить индекс на неё и искать по ней, или смысла нет и просто делаем индекс на всю строку?
Смысл - в размере индекса. В моем понимании, индекс на всю строку а) не нужен, т.к. не полнотекстовый поиск и даже не поиск по вхождениям подстрок, б) он будет больше, чем индекс по хэшу.
источник

DP

Darafei Praliaskousk... in pgsql – PostgreSQL
Roman
Подскажите, пожалуйста.

Нужно хранить в колонке много (20млн) строк, символов по ~40.
А затем искать есть-ли уже такая строка (целиком) или нет.

Вопрос - имеет-ли смысл сделать дополнительную колонку hash(от хранимой строки), поставить индекс на неё и искать по ней, или смысла нет и просто делаем индекс на всю строку?
Смысл - в размере индекса. В моем понимании, индекс на всю строку а) не нужен, т.к. не полнотекстовый поиск и даже не поиск по вхождениям подстрок, б) он будет больше, чем индекс по хэшу.
Ты изобрел create index using hash
источник

V

Valery in pgsql – PostgreSQL
А уникальных строк сколько?
источник

R

Roman in pgsql – PostgreSQL
Все уникальные
источник

R

Roman in pgsql – PostgreSQL
Darafei Praliaskouski
Ты изобрел create index using hash
Спасибо, посмотрю
источник

V

Valery in pgsql – PostgreSQL
Радужные таблицы строите?😀
источник

DP

Darafei Praliaskousk... in pgsql – PostgreSQL
Valery
Радужные таблицы строите?😀
В россии их ещё не запретили?
источник

TS

Tagil Steel in pgsql – PostgreSQL
Коллеги, есть вопрос.
использую политику row level security.
При попытке сделать так:
CREATE POLICY client_policy ON client
   USING (access_descriptors @> (SELECT access_descriptors FROM "user" WHERE id=
10);
производительность сильно (в 15 раз) падает.
Очевидно, потому что не кешируется результат подзапроса.
Есть ли способ его кешировать или городить кеширование самому?
источник

4

4g in pgsql – PostgreSQL
Darafei Praliaskouski
В россии их ещё не запретили?
😂👍
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Roman
Подскажите, пожалуйста.

Нужно хранить в колонке много (20млн) строк, символов по ~40.
А затем искать есть-ли уже такая строка (целиком) или нет.

Вопрос - имеет-ли смысл сделать дополнительную колонку hash(от хранимой строки), поставить индекс на неё и искать по ней, или смысла нет и просто делаем индекс на всю строку?
Смысл - в размере индекса. В моем понимании, индекс на всю строку а) не нужен, т.к. не полнотекстовый поиск и даже не поиск по вхождениям подстрок, б) он будет больше, чем индекс по хэшу.
А "поиски" в случайном порядке происходят (обратная ситуация — это когда последовательно ищутся близкие по порядку строки — сначала "add", потом "all", потом "any" и т.п.)?
Если в случайном, и версия PostgreSQL >= 11 — посмотрите на hash index, в самом деле.
источник