9404
Чат русскоязычного сообщества PostgreSQL, здесь мы обсуждаем технические вопросы, для поиска работы и предложения вакансий есть группа https://t.me/pgsqljobs For English discussion visit https://t.me/pg_sql
Благодарю.
ПРосто требуется минимальное влияние реплики на мастер.
со слотом могут начать копиться wal
а вообще советую при случае рассмотреть возможность перехода с archive_command на архивацию с помощью pg_receivewal через слот физической репликации.
не говорю что прямо обязательно перейти на этот механизм, но по крайней мере оценить, подходит ли он вам. мне вот например зашло.
У вас вместо $2b$ (как у меня в вопросе) написано $2a$.
Хз что это значит, но я написал такой запрос, и у меня теперь тоже даёт полный хеш bcrypt
Долго рассказывать. Сервер, раздаёт кое-какие данные на фронтенды. Для аутентификации ходит на бекенды фронтендов (целый список бекендов). Тогда все писали хранимки, а пара внутренних проектов была реализована просто как база данных без бекенда.
Я собираюсь в будущем переписать эту штуку, добавить функций. Но не сейчас.
Не важно, с какой скоростью работает команда или библиотека архивирования, если только она не ниже средней скорости, с которой сервер генерирует записи WAL. Обычно работа продолжается, даже если процесс архивирования немного отстаёт. Если же архивирование отстаёт значительно, это приводит к увеличению объёма данных, которые могут быть потеряны в случае аварии. При этом каталог pg_wal/ будет содержать большое количество ещё не заархивированных файлов-сегментов, которые в конце концов могут занять всё доступное дисковое пространство. Поэтому рекомендуется контролировать процесс архивации и следить за тем, чтобы он выполнялся как задуманоЧитать полностью…
Что за программа и откуда такие требования взялись?
Читать полностью…
Я создал экземпляр PSQL через initdb в определённый папке. Создалось успешно, сказало сразу команду для запуска. Но UNIX-сокет почему-то остался в папке установки PSQL. Я поменял его путь postgresql.conf н одну из вложенных папок в директории создания экземпляра. Или есть определённый стандарт, и я что-то неправильно создал?
Да вот как раз этот Index Scan Backward ожидает на два порядка больше строк.
Собственно удивляет что когда используешь только большую таблицу логов - оптимайзер не ошибается. Стоит приджойнить мелкую таблицу-справочник - сразу такой затык.
у ИБ и спросите
но если нужны предположения, то вот такое: с темповым табличным пространством (схемой) не хотят возиться
А вообще — explain analyze у вас в руках.
Вы и сами можэте посчитать и диеамику оцэнки (взяв несколько точек скана по дате и несколько точек скана по праыильному индэксу) и реальное время и какой узел там кардинально неправильно посчитан.
ЗЫ Да, стандартная проблема с ожыданием early abort и коррелированными данными.
Тоже хороший аргумент, спасибо.
Дискуссии с ИБ идут, они нормальные у нас, просто слегка параноики, если я правильно понял.
Если можно темп таблицы делать выполняя требования безы, то это, конечно, правильней
О как, оно отдельно на временные даётся? Тогда да, проще тупо запретить.
Читать полностью…
А, там же схема специальная. Прямо даже любопытно стало!
Читать полностью…
Хочешь сказать, pgcrypto поддерживает 2a, но не поддерживает 2b?
Читать полностью…
В смысле что я сделал? Ничего не сделал, просто вызвал bcrypt в питоне и постгресе с одинаковыми параметрами
Читать полностью…
Нормально bcrypt работает в постгресе
>>> salt = bcrypt.gensalt(prefix=b'2a')
>>> print(salt)
b'$2a$12$YfSI5GGNt/ZQdj4Su2GWV.'
>>> bcrypt.hashpw(b'password', salt)
b'$2a$12$YfSI5GGNt/ZQdj4Su2GWV.sLTWtjvnz8FldZmkx51Z/Pmzz4SfXwO'
postgres=# SELECT crypt('password', '$2a$12$YfSI5GGNt/ZQdj4Su2GWV.');
crypt
--------------------------------------------------------------
$2a$12$YfSI5GGNt/ZQdj4Su2GWV.sLTWtjvnz8FldZmkx51Z/Pmzz4SfXwO
(1 row)
Читать полностью…
Добрый день.
Вопрос по
archive_command
В целом это дистрибутивозависимо. Тут главное чтоб psql или какой другой клиент мог теперь этот сокет обнаружить (если конечно используется несетевое соединение)
Читать полностью…
Доброе утро. Столкнулся со странным поведением, при восстановлении дампа через psql -f dumpname у меня может намертво повиснуть минут на 40 процесс на refresh materialized view. Но, может и не повиснуть и отработать за ожидаемые 1-2 минуты.
Иссякли идеи, что может быть не так, может кто-то сталкивался?
Реальный пример: в компании имелось условно два сервера A и B (рядом стоящие и соединённые жирным таким кабелем), связь между ними запрещена по соображениям ИБ. Но имеется необходимость в обмене данными между А и В в достаточно большом объеме. Доступ к А и В имеется только с сервера С или по vpn для удаленщиков.
В результате люди просто выгружали данные на С и проводили необходимый обмен или превращали необходимые данные в параметры в виде json. Последствия как несложно догадаться весьма плачевные😊
я предположил, что выражение с cte1 и c подзапросом может привести к выполнению count() для каждой строки из cte1
так и будет, если подзапрос (select count(*) from cte1) зависит от основного запроса. В этом случае не зависит и считает один раз.
а запросы с сте лучше не писать, если число строк в сте большое предполагается. СТЕ скан может очень долго работать.
в вашем случае select id, name from user
и select count(*) from user
практически эквивалентно
with cte1 as (select id, name from user )Читать полностью…
select a, (select count(*) from cte1) from cte1;
Не то, чтобы плохом распределенит... Неожыданном для оптимизатора постгреса.
Читать полностью…
Правильнее узнать что именно они хотят таким образом добиться. Предложение по запрету temp таблиц изначально не является чем-то хорошим и может у иб другая задача, которую они решают кривым способом.
Читать полностью…
GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }
ON DATABASE имя_БД [, ...]
А чем старый добрый запрет на создание таблиц вообще плох?
Читать полностью…
Эта проблема не решается формальным запретом временных таблиц, т.к. если злоумышленник получит доступ к бд, ему эти запреты ни по чём.
Так что если есть желание защититься от данного вектора атаки - нужен event trigger, который реально не даст их создавать (при этом не вижу проблемы в том, чтобы сделать исключения в том же триггере).