Задать вопрос
  • Код рабочий только когда имя не содержит пробелов. Имя находится в бд MySQL в чем проблема?

    Melkij
    @Melkij
    Продолжайте упрощать. Всё ещё слишком много лишнего.
    Что у вас в $_POST пришло? Что отправил браузер?
    spoiler
    div class=doom row или div class="doom row" - в чём разница? Что будет атрибут HTML, а что его значением?
  • Код рабочий только когда имя не содержит пробелов. Имя находится в бд MySQL в чем проблема?

    Melkij
    @Melkij
    Да, проявление ошибки забавное (к слову, эта ошибка критична по безопасности; в этом коде очень много проблем)
    Но ошибка элементарная. И именно вам как начинающему было бы куда лучше овладеть навыком определения места ошибки. Вы привели слишком много кода, никак не связанного с вашей ошибкой в действительности. Если вы ответите на наводящие вопросы - вы сможете выкинуть из рассмотрения почти весь код. После этого, если вам всё ещё будет неясна причина различного поведения, я поясню, конечно.

    Это ключевой навык для разработчика: искать и проверять, в каком месте реальное выполнение кода отличается от задуманного. Затем уже строить гипотезы о причинах различий и их проверять. Но гадать о причинах имея на руках 2 разных языка программирования, один язык запросов и язык разметки - слишком много сущностей. Необходимо проверить, а не лишние ли некоторые из них.
  • Как собрать NAS c минимальным энергопотреблением?

    Melkij
    @Melkij
    smb и стабильные даже полгигабита? Для меня сильно сомнительно безотносительно всего. Под nfs поверю. Под smb - нет.

    Если вам доступ нужен монопольно для одного хоста - то есть ещё такая штука как DAS.
  • Возможно ли делать ALTER на PG10?

    Melkij
    @Melkij
    Для штатной логической репликации - сначала вносить alter на подписчиках, затем на мастере.
    Это цена за логическую репликацию, головной боли в сопровождении куда больше чем с физической репликацией.
  • RAID-1, почему не видно все разделы?

    Melkij
    @Melkij
    Partition #1 contains a linux_raid_member signature.

    На диске уже была метка какого-то другого массива и его попробовали автоматически собрать под номером 127. С 127 номера идут автоматически собранные массивы.

    Если вы уверены, что на диске определившемся как sdb нет ничего полезного (впрочем, уже поздно об этом думать переписав таблицу разделов) - то разберите массив mdadm -S /dev/md127
  • RAID-1, почему не видно все разделы?

    Melkij
    @Melkij
    # mdadm /dev/md0 -a /dev/sda1
    # mdadm /dev/md1 -a /dev/sda2
    # mdadm /dev/md3 -a /dev/sda4
    Правильно?

    да.
    Затем по /proc/mdstat проследить за ребилдом.
  • О чем говорит эта ошибка?

    Melkij
    @Melkij
    Что мне ваши докеры. База на указанном адресе запущена, спрашиваю? Порт доступен? получается с учётом SNAT и, возможно, L3 роутингом по пути. libpq под прикрытием php-pgsql однозначно отвечает: нет, не доступен. Connection refused может ответить ОС т.к. никто не слушает порт либо любой из firewall по пути если так настроен отвечать.
  • Как правильно прописать конфиг для Hibernate?

    Melkij
    @Melkij
    Это лучше отдельным вопросом задайте. Я не знаю java
  • Почему могут падать потоковые реплики postgres?

    Melkij
    @Melkij
    %h - это чтобы найти, кто пытается тянуть сегмент "requested WAL segment 0000000100001B93000000B7 has already been removed" с того хоста, где эта ошибка в логах появлется. Непосредственно к вопросу не относится, это штатная картина для отставшей реплики со вполне очевидной картиной в логах этой реплики и бесконечного цикла старта репликации и получения ошибки что сегмент предоставить апстрим не может.

    А убивать walreceiver... Может фактически кто угодно, walreceiver можно делать kill и отреагирует в лог он именно так. Вот только при standby_mode=on как у вас он должен проверить restore_command и поскольку той нет - перезапускаться через wal_retrieve_retry_interval. Сколько он, кстати?

    Точная версия базы-то такая? Ещё раз спрошу. 9.5.16?
    И с чего начинали- "invalid record length at 1BCA/DA0E0258" при рестарте не повторяется?
  • Почему могут падать потоковые реплики postgres?

    Melkij
    @Melkij
    2019-04-13 15:22:54 - такого времени ещё нет, это же EST, сейчас там 12 только наступило

    Я имел в виду эквивалент для 2019-04-13 15:22:54 UTC. Очень уж интересный ход:

    2019-04-13 15:22:54.761 UTC [2770] LOG: started streaming WAL from primary at 1BCA/DA000000 on timeline 1
    2019-04-13 15:22:54.761 UTC [2770] DEBUG: sending write 1BCA/D9FFFFB0 flush 1BCA/D9FFFFB0 apply 1BCA/D9FFFFB0
    2019-04-13 15:22:54.761 UTC [2770] DEBUG: sending hot standby feedback xmin 0 epoch 0
    2019-04-13 15:22:54.762 UTC [2770] DEBUG: sendtime 2019-04-13 15:22:54.765466+00 receipttime 2019-04-13 15:22:54.762726+00 replication apply delay (N/A) transfer latency 0 ms
    2019-04-13 15:22:54.762 UTC [2770] DEBUG: sending write 1BCA/DA020000 flush 1BCA/D9FFFFB0 apply 1BCA/D9FFFFB0
    2019-04-13 15:22:54.815 UTC [2770] DEBUG: sending write 1BCA/DA020000 flush 1BCA/DA020000 apply 1BCA/D9FFFFB0
    2019-04-13 15:22:54.816 UTC [2770] FATAL: terminating walreceiver process due to administrator command

    walreceiver запустился, отчитался апстриму что сохранил 1BCA/DA020000, а вот дальше его кто-то прибил.

    2019-04-13 10:47:38.334 EST [10121] postgres@[unknown] ERROR: 58P01: requested WAL segment 0000000100001B93000000B7 has already been removed

    Это уже какое-то время назад дохлая реплика пытается подцепиться, база отвечает "прости, такого старья не храню". Стоит добавить %h в log_line_prefix, тогда хоть будет понятно с какого адреса.

    а явно как указать? тут же не путь до файла вроде.....1BCA/DA000000

    это позиция wal, но оно довольно просто отражается в имя файла: 0000000100001BCA000000DA. timeline id да два 32-битных числа в HEX
  • Почему могут падать потоковые реплики postgres?

    Melkij
    @Melkij
    Интересно, что реплика судя по логу пытается перекачать 1BCA/DA000000 с апстрима, но её старательно убивают. 192.168.10.10 - мастер? Или каскад? Рядом с 2019-04-13 15:22:54.761 на 192.168.10.10 ничего в логах не осталось?

    на мастере pg_xlogdump тоже говорит что не может распарсить? А если ему указать явно путь до сегмента?
  • Почему могут падать потоковые реплики postgres?

    Melkij
    @Melkij
    Проблемный сегмент по md5 идентичен тому что на мастере? Это последний WAL на репликах или они загружали WAL дальше?
    Раз при рестарте поведение сохраняется - прикрепите лог с log_min_messages=debug5 , с десяток строк от pg_xlogdump --start=1BCA/DA0E0258
    Ну и продублирую вопрос с ruSO - какая точно версия СУБД?

    не скажу что впервые вижу схожую проблему, однажды мы уже ловили похожую проблему. У нас, впрочем, проблему спровоцировало плановое переключение мастера, но емнип ничего полезного раскопать не смогли. Поэтому особо интересно, что у вас с базой делается в полночь. У postgresql нет синхронизации своей активности с часами, поэтому триггер наверняка внешний.
  • Почему могут падать потоковые реплики postgres?

    Melkij
    @Melkij
    Что выше по логу? Что далее по логу? walreceiver из списка процессов пропал или остался висеть?
  • Есть ли официальные правила выделения портов Postgresql в зависимости от версии?

    Melkij
    @Melkij
    776166, вам на исходник базы сослаться? Я могу.
    GUC: https://github.com/postgres/postgres/blob/REL_11_S...
    DEF_PGPORT: https://github.com/postgres/postgres/blob/REL_11_S...

    Или вам на deb пакеты сослаться? man pg_createcluster. Я об этом написал в ответе. На убунтах и дебианах эта машинерия именно этой надстройки. Весьма удобные надстройки, мне нравятся. Но не имеют никакого отношения к СУБД, это добавил сопровождающий пакетов. Посмотрите install скрипты в пакетах.
  • Как настроить строку соединения к базе данных?

    Melkij
    @Melkij
    Ну вот и я не понимаю за что эту doctrine любят. Медленная, ограниченная, ещё и единственное своё предназначение давать абстракцию делает хреново.
  • Как настроить строку соединения к базе данных?

    Melkij
    @Melkij
    а что не так? Вы заявили эту таблицу в схеме couponsystem - она так и появилась. Для остальных указали схему? Ну если нет, они и уехали в подходящую схему из списка search_path (ну или в public если он явно в запросе был, хз ставит ли его эта доктрина)
  • Как сделать select по timestamp колонке имея только дату?

    Melkij
    @Melkij
    здесь обязательно необходимо учесть, что условие the_timestamp_column::date не может использовать индекс по the_timestamp_column. Только именно отдельный индекс по выражению the_timestamp_column::date. В отличии от пары условий как в варианте у Rsa97 или через between
  • Почему пользователю БД не назначаются права?

    Melkij
    @Melkij
    дописал только что, да, не заметил сразу. Вы не завершили запрос и его в общем-то psql никуда не и отправлял.
  • Как исправить эту ошибку Database Exception – yii\db\Exception?

    Melkij
    @Melkij
    Очевидно что вы должны указать действующие данные для подключения к СУБД.
    Должны вы создавать пользователя или должны поправить неверные данные - решать не мне, а вам.