Задать вопрос
  • Enum что не так?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Я не знаю java, но где вы вообще передаёте 4 параметр в запрос?

    Ошибка говорит о том, что java по extended протоколу заявляет, что передаёт данные типа varchar, вместо типа gender. Да, для extended протокола это разные вещи и автоматически менять тип не будем.

    Попробуйте так:
    VALUES (?,?,?,cast(? as gender))
    Ответ написан
    1 комментарий
  • Код рабочий только когда имя не содержит пробелов. Имя находится в бд MySQL в чем проблема?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Начните проверять свой код.
    Где именно что-то идёт не так?
    Запрос в базу формируется корректный? Выведите его. Посмотрите на него. Подумайте, почему он получился неверен.
    Посмотрите, где потеряли часть данных. В вызываемом php скрипте? В ajax запросе? В js его формировавшем? Может быть в php скрипте, который выводит список? Или же сам HTML некорректен?
    Ответ написан
    7 комментариев
  • Как обеспечить отказоустойчивость БД Postgres?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    как правильно обеспечить надежность и безотказность ее работы?

    Использовать адекватное железо и не мешать базе работать шаловливыми ручками.

    доступен 24 часа 7 дней в неделю.

    бекап

    Объясните, пожалуйста, как это по вашему мнению между собой связано?
    Бекапы необходимы, но как они связаны с высокой доступностью?

    в случае проблем с доступностью, перезапускать/запускать саму СУБД.

    Простой вопрос: зачем?
    Если база сложилась и даже не смогла подняться самостоятельно - значит проблема капительная и разбираться надо детально. Рестартом по кругу вы можете скорее сделать совсем плохо, чем что-либо починить.
    При том обычно проблемы начинаются от того что разработчики выкатили новую версию приложения и та начинает делать что-то странное. Например, забыли сделать индекс на 50гб табличку и засунули запрос с поиском по ней на главную сайта. Рестартом базы это, разумеется, не исправляется. А делает только больнее.

    Многолетней давности pg_postmaster_start_time() впечатлять не буду - мы периодически ставим минорные апдейты на свои базы. И вам тоже весьма рекомендую обновиться до 10.7 или лучше уже на следующих выходных сразу до 10.8.

    А так, если не трогать - то годами будет работать. Мониторинг и алерты от него, разумеется, нужны. Какая-то автоматика при наступлении алерта - обычно приносит куда больше головной боли, чем помогает.

    какие операции, запросы или их комбинации нежелательны для БД и могут привести к проблемам.

    Большая часть инцидентов с недоступностью сервиса с точки зрения приложения - про уровни блокировок. Кто-нибудь попробует сделать create index вместо create index concurrently и привет ожидание блокировки на всю запись в таблицу. Большинство форм alter table сюда же, но они и чтение заблокируют.
    Ответ написан
    Комментировать
  • В чем причины ошибки "Out of shared memory: You might need to increase max_locks_per_transaction"?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    https://www.postgresql.org/docs/current/runtime-co...
    This parameter controls the average number of object locks allocated for each transaction; individual transactions can lock more objects as long as the locks of all transactions fit in the lock table. This is not the number of rows that can be locked; that value is unlimited. The default, 64, has historically proven sufficient, but you might need to raise this value if you have queries that touch many different tables in a single transaction, e.g. query of a parent table with many children.


    Не имеет отношения к размерам таблиц. Имеет отношение к размеру внутренней таблицы локов и количеству затронутых объектов (например, таблиц) в транзакции. Строго говоря: максимальное число локов объектов одновременно всеми активными транзакциями.
    Не имеет никакого отношения к shared_buffers (не вычитается из него, а прибавляется сверху. shared_buffers - строго буфер страниц, даже без учёта структур данных по управлению этим буфером. Сегмент разделяемой памяти всегда больше shared_buffers) или work_mem или чему-то ещё (кроме как max_connections + max_prepared_transactions). Тем более не имеет никакого отношения к дедлокам.

    Дефолтного значения обычно более чем достаточно. Может быть злоупотребляете партицированием.
    Ответ написан
    Комментировать
  • Может ли ClickHouse заменить Mysql?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Колоночная и реляционная базы. У них банально разные области применения
    Ответ написан
    Комментировать
  • Как записать образ карты пямяти с двумя разделами?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Если вам нужен образ всей флешки, то зачем вам копировать отдельно разделы? Копируйте всю флешку целиком.
    sudo dd if=/dev/mmcblk0 of=/media/root/Rasp_1.img bs=1M


    А если надо разделы в отдельности - то и копируйте их каждый в отдельности.
    Ответ написан
    Комментировать
  • Какой IT специалист занимается проработкой разделов Terms and Conditions и Privacy policy?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Юрист.
    Ответ написан
    Комментировать
  • Возможно ли делать ALTER на PG10?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Ибо эат команда, разумеется, уже не работает.

    Почему "разумеется"?
    pglogical никуда не делся. Как был сторонним модулем, так и остался. Релиз с поддержкой PG11 тоже уже был.

    А логическая репликация которая штатная в pg10 - DDL не обрабатывает. Это опять же обязанность сопровождающего систему админа корректно вносить DDL.
    Ответ написан
  • Как задать условие выборки более старых записей по времени?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    и проверяет работоспособность IP выбирая только 25 штук

    Ну и где эта часть запроса?
    Поправьте свой order by на сортировку по дате проверки. И будете получать записи проверенные наибольшее время назад.
    Ответ написан
    Комментировать
  • Защита от mysql инъекций без средств pdo?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    mysqli_query (сам удивлён как он до сих пор живой)

    А в чём проблема? mysqli жив и поддерживается, у них даже частично кодовая база с pdo_mysql пересекается - если с mysqlnd собирать.

    mysqli предоставляет интерфейс prepared statements. Ну экспорт escape тоже есть.
    Ответ написан
    Комментировать
  • Что значит "--" флаг во многих git операциях?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Многие консольные команды разбирают переданные им параметры используя вызов getopt

    getopt отдельно выделяет аргумент "--" как маркер окончания списка параметров:
    The special argument "--" forces an end of option-scanning regardless of the scanning mode.


    То есть после найденного -- будет прекращена обработка строки вызова, все последующие параметры будут оставлены как есть, даже если там будет что-то похожее на другие поддерживаемые программой параметры.

    В частности, git reset использует это поведение для однозначного отделения имён файлов: всё после -- будет восприниматься как имена файлов вместо чего-то вот такого:
    $ git reset file
    fatal: ambiguous argument 'file': unknown revision or path not in the working tree.
    Use '--' to separate paths from revisions, like this:
    'git [...] -- [...]'
    Ответ написан
    Комментировать
  • Как востановить базу из файлов?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Если в директории C:\Program Files\PostgreSQL\9.1\data (далее буду называть $PGDATA) лежат директории base, global, pg_xlog и всякое прочее преимущественно с префиксом pg_* - то надежда есть. Если в pg_xlog лежат куча странных файлов, а pg_tblspc пусто либо ссылки из него живые. Сделайте бекап $PGDATA и содержимого pg_tblspc (если там были ссылки).

    Затем ставите сервер версии 9.1.24. Настраиваете data_directory смотреть в ваш $PGDATA. Пробуете запустить СУБД и смотрите в лог базы что происходит.

    pg_upgrade требует заведомо работающих и корректно остановленных кластеров и старой версии и новой. Откажется работать даже если база была выключена аварийно.
    Ответ написан
    Комментировать
  • Как проверять поля на то, чтобы только одно из них было не пусто?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Вам нужен check constraint.

    XOR в postgresql вроде нет, так что показывать на пальцах:
    alter table tablename add constraint tablename_p1_xor_p2 check((p1 is null and p2 is not null) or (p2 is null and p1 is not null));
    Ответ написан
    Комментировать
  • RAID-1, почему не видно все разделы?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    В /proc/mdstat только дисковые массивы, активные сейчас. И, опять же, только тома входящие в этот массив. Если вы делали странное (а вы делали странное) - то ядро вполне резонно решило, что желает пообщаться с оператором.

    Вам необходимо взять тот диск, версию которого вы хотите оставить (поскольку вы с них загружались независимо друг от друга - у вас теперь два разных массива. md2, как видно, не модифицировался и пережил издевательства) и добавить необходимые разделы в массив. -r (remove) вполне ожидаемо отвечает что не может удалить том, которого в массиве нет.
    Ответ написан
  • О чем говорит эта ошибка?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Вас прямым текстом спрашивают и куда смотреть и что делать:
    Is the server running on host "180.20.10.1" and accepting
    TCP/IP connections on port 45433?


    На указанном адресе СУБД запущена? На этом порту?
    Ответ написан
    2 комментария
  • Можно ли организовать доступ к сайту про IPv6?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Да, настроить доступ по ipv6 можно.
    Если вы дадите только ipv6 записи и откажитесь от ipv4 - то сайт будет открываться примерно у 2% пользователей России, согласно статистики google.
    Ответ написан
  • Как правильно прописать конфиг для Hibernate?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Java - это такой специальный язык для генерации километровых backtrace...

    Почему получив null value in column violates not-null constraint вы решили, что у вас проблема с подключением к СУБД? Вы пытаетесь вставить NULL в поле отмеченное как NOT NULL. Судя по тексту запроса - у вас не указано default значение для этого поля.
    Ответ написан
    4 комментария
  • Есть ли официальные правила выделения портов Postgresql в зависимости от версии?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Нет, гарантии нет. Менять привычный 5432 порт у сообщества причин нет. Теоретически поменять дефолтный порт можем, это не так сложно технически - но зачем? Мы не гарантируем совместимость с последующими версиями и вполне можем решить что-нибудь сломать нужное, если сообщество согласится что оно того стоит. Гарантий не дадим, но вполне можно рассчитывать что будет 5432 ещё очень долго использоваться по умолчанию, нет причин его менять и есть веские причины его не менять.

    Ну и стоит упомянуть, что дефолтный порт может быть указан в конфигах, параметром запуска, и в том числе на этапе компиляции базы:
    --with-pgport=PORTNUM set default port number [5432]


    Пока он как-то сам выбирает порт

    PostgreSQL не занимается таким. Просто откажется стартовать если не удастся открыть сокет. Номер порта не менялся очень давно, если менялся вообще хоть когда-нибудь от самого основания ещё post-ingres в 198х годах.

    Вот сторонние скрипты - те могут иметь какую-нибудь такую логику. Например, пакеты debian/ubuntu при вызове pg_createcluster попробует прописать в конфиге ближайший свободный порт начиная с 5432. Никакой зависимости от версии СУБД нет. Нужен новый кластер? Ок, возьмём ближайший свободный порт и настроим на использование его.
    Ответ написан
    3 комментария
  • Какие могут быть обоснования для ограничения штрафов по договору?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Напрягает - значит просите изменить. Например, ограничить сверху суммой договора. Зачем вам обоснование? Вас не устраивает такое положение в договоре, вы вольны не подписывать договор. Договорные отношения потому и договорные.
    Ответ написан
    Комментировать
  • Как настроить строку соединения к базе данных?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Схемы - дополнительный уровень упорядочивания сущностей.
    Варианты на выбор: указывать схему в именах объектов в запросах (обычно) либо менять search_path на необходимый.

    Именно поэтому имя схемы - это атрибут в аннотации самой таблицы, а не строки подключения.
    https://www.doctrine-project.org/projects/doctrine...
    Ответ написан