Задать вопрос
  • Как скопировать файл с USB drive linux?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Воткните в скрипт
    whoami > /tmp/udev_test
    И вставьте флешку.

    Будет видно сразу две вещи:
    - запускается ли скрипт действительно udev'ом
    - от чьего имени запускается

    Мне так помнится, что udev всегда от рута исполняет скрипты. udev рестартовать не забыли, к слову?
    Ответ написан
    Комментировать
  • Жёсткий диск 4Tb Western Digital SE (WD4000F9YZ). Уровень шума 34 дб в режиме работы и 31 в простое. Это громко для домашнего ПК?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Если вы это не сами намерили приличным шумометром (или хотя бы лаборатория, данным которой вы доверяете) - то не обращайте на эти цифры никакого внимания. Маркетинг вам любые цифры понапишет.
    Ответ написан
    Комментировать
  • Какой HDD из списка выбрать?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Без разницы. Расходники.
    Смотрите цены и срок гарантии.
    Ответ написан
    Комментировать
  • Подсчёт количества рядов: подзапрос или left join?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    select
      a.id, a.title, a.content,
      count(c.id) comments
    from
      articles a
      left join comments c on c.article_id = a.id
    group by a.id

    Зачем вам count distinct тут внезапно понадобился и где потеряли группировку?

    Вообще count под OLTP жуткая вещь с точки зрения базы - это надо прочитать каждую строчку, проверить её видимость в текущей транзакции, проверить на null и всё только ради одной циферки. Добавьте в articles колонку с числом комментариев, а за актуальностью могут следить несколько простых триггеров.
    Ответ написан
    2 комментария
  • Как организовать репликацию БД?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Т.е организовать единую точку управления этими серверами.

    Может, лучше единую точку управления и делать? ansible/salt/chef/puppet, в конфигурации понаписать инициализацию нужного состояния таблицы.

    Для реплики - минимальная гранулярность, на сколько знаю, это таблица. И только для логической репликации.
    Ответ написан
    Комментировать
  • Пойдет ли современная оперативка на старом Core i3?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    i3 уже 5 разных поколений. И они успели покрыть даже 3 вида памяти: DDR3, DDR3L, DDR4. Вряд ли ваш вопрос про DDR4. А вот на грабли совместимости DDR3 и DDR3L встать можно - они требуют разное напряжение. На сколько помню, DDR3 умеют все i3, кроме новых i3 6xxx. А вот DDR3L - вроде бы только i3-4ххх и выше. При покупке модулей надо быть внимательнее, физически модули идентичны.

    Это не касаясь вопроса частоты памяти вовсе - уже необходимо смотреть конкретную модель процессора и конкретный подвид памяти.
    По частоте - нужно вдобавок смотреть материнскую плату. Контроллер памяти в процессоре официально сильно занижен, на усмотрение вендора матплаты (не говоря о разгоне) может штатно реализовывать более высокие частоты. Дивидендов от большой частоты, правда, не много даже на топовых Core, ну да это другой разговор.
    Высокочастотные модули типично реализуют в SPD настройки, на которых модуль должен завестить везде. Для получения его номинальной частоты и CL или включаются XMP-профили автоматически или вручную выставить настройки. Поэтому если не промахнуться по типу памяти - то должна завестить.

    Но при покупке памяти - всегда смотрите на манибек. Случаются проблемы совместимости конкретно этой памяти на конкретно этой материнке с конкретно этим процессором. А в других сочетаниях уже работает =)
    Ответ написан
    Комментировать
  • Стартапы и Git?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    В зависимости от указанной в проекте лицензии.
    Для свободных лицензий - радуются и предлагают дружить семьями. Ну или ничего не предпринимают. Это называет форк. Один из важнейших постулатов свободного ПО.
    Для несвободных лицензий - поспрашивайте у копирастов. Всякие DCMA-запросы на удаление репозитория форка и прочие странные вещи.
    Ответ написан
    7 комментариев
  • Сложный запрос в MySQL, как сделать?

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

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Текстовые? Нет, текстовые не выйдет. В /var/lib/mysql/ бинарные файлы. Чуток текстовых там, конечно, тоже есть, но данных в бинарных.

    Делаете копию каталога (внимание на права доступа и владельцев файлов, это тоже важно и их надо сохранить) datadir. По-видимому, у вас это /var/lib/mysql/
    Переносите на машину с той же самой версией mysql, лучше в точности ту же версию, но можно в пределах минорных версий. Попутно делаете ещё одну копию с данных.
    Разумеется, на новой машине на момент копирования mysql должен быть остановлен.
    Запускаете mysql, читаете логи, исправляете ошибки.
    Дальше по обстоятельствам. Если завёлся - то проверяете свои данные, если нет - читаете дальше логи и гугл.
    Innodb при успехе восстановится до последней зафиксированной транзакции. myisam - даже в лучшем случае как повезёт. Устойчивость к сбоям - это не про него.
    Ответ написан
    1 комментарий
  • Автоматический set в mysql?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Зачем set? Таблица связей типично состоит из пары внешних ключей на связываемые таблицы. Т.е. обычно два инта и составной первичный ключ.

    Возможность есть понаписать триггер. Только сначала хотелось бы понять смысл.
    Ответ написан
    Комментировать
  • Точка в имени пользователя sql?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    https://dev.mysql.com/doc/refman/5.7/en/account-na...
    dev.mysql.com/doc/refman/5.7/en/user-names.html
    Никак не повлияет. Допустимое имя. Иначе вы бы и не создали такого пользователя.
    Ответ написан
    Комментировать
  • Как правильнее настроить локальную сеть?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Карту сети делать всё-таки придётся, чтобы понять, где какие кабели и можно ли обойтись тупыми свичами или всё-таки потребуется что-то чуть более умное с VLAN.
    В общем - нафига вам сдался PPPoE?

    Засуньте каждую подсеть в отдельную L2 - физические порты на микротике, если разводка кабелей позволяет, или VLAN - но придётся свичи менять, на которые заходят сразу несколько vlan'ов. На каждый L2 вешаете по DHCP для удобства арендаторов (кто захочет, всё равно поставит свой роутер), шейпинг на основании входящего интерфейса.
    Не забудьте зарезать соединения между подсетями.

    Решение несколько странное, но если есть лишнее железо с сетевухами, но нет ни свичей с vlan'ами ни даже довольно скромного бюджета на покупку оных (если нужны только vlan - то это недорого даже за гигабитные железки) - то можете закупить пару копеечных железок и прошить openwrt. Тьфу, я же об имеющихся пк говорил. Поставить на пк какой-нибудь linux с openvswitch, будет хоть такой свич с vlan.
    Ответ написан
    1 комментарий
  • Как верно проектировать базу данных?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Если нужна таблица - должна быть таблица.

    Postgresql предоставляет шикарную возможность разделить базу данных на схемы. Есть пачка таблиц, описывающая какую-нибудь сущность? Перенесите их в отдельную схему и пусть не мешаются в public. Таблицы аггрегации? Выкиньте их в отдельную схему.
    Замечательно помогает, если становится многовато таблиц (несколько десятков разве много?).
    Правда, если вы любитель всякого орм, ваша библиотека может не уметь схемы.
    Ответ написан
    Комментировать
  • Объясните про MRR?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Вторичные индексы InnoDB, как известно, ссылаются на значение первичного ключа, а физически на дисках данные лежат рядом с первичным ключом и отсортированы по по этому самому первичному ключу. Значит, если в индексе написано, что вам нужны id 9, 6, 50, 8 и 7, выгоднее их читать с диска не в таком порядке, а пересортировать и прочитать двумя запросами: 6-9 и 50. Так получаем 2 запроса случайного чтения вместо 5. Это весьма полезно для HDD с медленной механикой, но ещё и приносит свои, хоть и более скромные, дивиденды для SSD - они хоть и на порядки быстрее HDD в случайном чтении, но и им тоже удобнее последовательное, а не случайное чтение.

    Вот MRR этим как раз и занимается. Сначала получает список необходимых ключей от индекса, сортирует этот список и запрашивает у диска не по одной записи в случайных местах, а более крупными последовательными блоками.
    Замечу, что MRR вступает в дело, если надо много чего прочитать с диска. Т.е. холодное чтение, данных для этой выборки по большей части нет в памяти. Разумеется, это далеко не быстрая штука.

    И ещё момент: у вас в запросе нет order by, но есть limit - это значит, что вам всё равно, какие именно строки выбрать. Mysql в таком случае будет возвращать любые подходящие строки в любом порядке на своё усмотрение.
    Ответ написан
    3 комментария
  • Как улучшить код аутентификации пользователя?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Спасибо, конечно, что не md5, но используйте нативный password_hash.
    Что за дичь идёт в следующих 5 строках после $stmt->execute?
    application/json в заголовке совершенно не вяжется с остальным кодом.
    Ответ написан
  • При запуске игр компьютер уходит в перезагрузку, в чем может быть причина?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Какой-то хренью на заявленные 370вт пытаться запитать GTX 970 (145вт по паспорту), FX-8320 (125вт по паспорту) и остальную мелочёвку?
    Рисковый вы человек.
    Ответ написан
    3 комментария
  • Какое железо для домашнего сервера?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Слежу на одноплатниками не очень пристально, но можете ограничиться одним требованием на 2 и более SATA и уже получить пустое множество. Больше 1 SATA на одноплатниках не видел.

    Под вменяемый NAS, а не подцепить к роутеру 1 внешний hdd на usb, классический путь пока актуален. Можно взять mITX + picoPSU какой-нибудь для экономии размеров.
    Ответ написан
    Комментировать
  • Как сделать сортировку SELECT FROM SELECT с последними состояниями устройств?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Ошибка в том, что так делать вообще нельзя. Даже этот странный mysql актуальный версий при дефолтном sql_mode откажется такое выполнять.

    Если порядок событий допустимо считать по старшинству id:
    select /**/ from `object_log`
        join (
            select max(id) as id 
                from `object_log`
                group by `id_gsm`
    ) lastevents using(id)
    ORDER BY `id_gsm` ASC
    Ответ написан
    Комментировать
  • Где хранит данные(пользователей, например) ejabberd2?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    нужно добавить пользователей

    ejabberdctl register <username> <domain> <password>


    Можно ли его заставить использовать mysql

    Сами гуглить не пробовали, видимо?
    https://docs.ejabberd.im/admin/guide/databases/mysql/

    Используемая по-умолчанию нативная база может быть расположена в разных местах. Например, в /var/lib/ejabberd/
    Ответ написан
    3 комментария