Задать вопрос
  • Как посмотреть соотношение каталогов и баз в PgSQL?

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

    Не сможете.
    Ну в смысле скопировать отдельные файлы можете. А вот восстановить потом - нет. Никогда.
    Бекапить можно только целиком весь datadir, со всеми симлинками. Правильно объяснив базе что вы её бекапите и соблюдая ожидания базы по методу её бекапа чтобы из этого потом можно было восстановиться.

    А директории баз называются идентично полю oid в pg_database
    Ответ написан
    3 комментария
  • Почему не используется GIN индекс в Postgresql с установкой веса?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    index (func1, func2) - это в корне не то же самое что func1 || func2
    Выражения для оператора разные, поэтому индекс отбрасывается как неподходящий.

    В общем случае фильтр по выражению может работать по индексу только построенному в точности по такому же выражению.
    Ответ написан
    6 комментариев
  • Как импортировать csv файл в postgresql?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Ответ написан
    Комментировать
  • Что означает индекс в выводе var_dump для объекта?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    А вы про какую версию спрашиваете? Синтаксис var_dump для объекта выглядит как: https://github.com/php/php-src/blob/PHP-7.2/ext/st...
    %sobject(%s)#%d (%d) {

    В самом начале возможен символ & - если это ссылка.
    Второй %s - имя класса.
    следующий %d - идентификатор объекта
    последний %d - число свойств объекта

    Что немного не похоже на object(PDO)[1]. Да и не менялся формат уже давно.
    Ответ написан
    3 комментария
  • Как сочетать type и depth в команде find?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    -depth Process each directory's contents before the directory itself.
    The -delete action also implies -depth.


    Это просто не тот параметр, который вы искали. Уровни вложенности это -maxdepth и -mindepth. То есть

    find -maxdepth 1 -type f
    Ответ написан
    3 комментария
  • Pg_basebackup, зависит ли скорость копирования от типа данных преобладающих в БД и можно ли как-то увеличить скорость копирования средствами postgres?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    basebackup - это буквально копирование почти всего из PGDATA тупо на уровне файликов.
    Строго в один поток. (ну, на самом деле в отдельном потоке walreceiver ещё если wal method выставлен stream)

    Смотрите внимательнее куда упираетесь. Диск на чтение откуда снимаете? Диск куда пишете? Сеть? Одно ядро CPU на базе с которой снимаете? На которую пишете?
    Несколько гигабит занять в общем-то не проблема.
    Ответ написан
  • Где взять полный ликбез и роадмап по серверам nginx apache php-fpm и настройки сети и тд?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    какие настройки имеет как управляется, что от чего зависит

    изучить вопрос от А до Я

    Непонятно почему вам для плана по оптимистичной оценке на 20 лет вперёд чем-то не нравятся ещё актуальные материалы 2014 года. Через 20 лет будет без разницы, изучали вы материалы 2019 или 2014 года, если вы все эти 20 лет не будете параллельно следить по крайней мере за release notes всего перечисленного.

    Начните с прочтения официальной документации. Настройки там должны быть все. Если вычеркнуть туманный пункт "настройки сети и тд" - то читать там уже и так достаточно надолго.
    Ответ написан
    Комментировать
  • Исключение PDO за номером 42601, как исправить?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    СУБД однозначно отвечает, что не согласна с синтаксисом.

    Если не читать списки зарезервированных слов - то да, может быть не совсем очевидно почему этот запрос синтаксически неверен. Но тем не менее слово user всё равно зарезервировано и стандартами SQL и конкретной реализацией в postgresql. А потому не может использоваться в качестве unquoted идентификатора.
    Ответ написан
    1 комментарий
  • Enum что не так?

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

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

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

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

    Melkij
    @Melkij
    DBA для вашего 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 для вашего 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 для вашего PostgreSQL?
    Колоночная и реляционная базы. У них банально разные области применения
    Ответ написан
    Комментировать
  • Как записать образ карты пямяти с двумя разделами?

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


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

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

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

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

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

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

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

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

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

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

    Melkij
    @Melkij
    DBA для вашего 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 для вашего 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 требует заведомо работающих и корректно остановленных кластеров и старой версии и новой. Откажется работать даже если база была выключена аварийно.
    Ответ написан
    Комментировать