Ответы пользователя по тегу Linux
  • Как подменить диск в Linux?

    Melkij
    @Melkij
    PostgreSQL DBA
    добавить диск, смонтировать в другое место
    сделать rsync
    остановить приложение
    сделать rsync
    отмонтировать старый диск
    перемонтировать новый диск в /mnt/files
    запустить приложение

    Если между диском и ФС случайно оказался LVM - то смигрировать силами LVM без остановки приложения.
    Ответ написан
    Комментировать
  • Как грамотно повысить отказоустойчивость WEB приложения?

    Melkij
    @Melkij
    PostgreSQL DBA
    повысить надёжность приложения, разместив его на нескольких серверах

    А вы решайте ту задачу которую заявили изначально. Для hot spare никакая балансировка не нужна, от базы простая hot standby реплика.
    При необходимости вывести основной сервер реплику базы поднимаете до нового мастера и работаете как на старом сервере.

    Для бюджетного веба болезненный вопрос "как быстро перекинуть запросы пользователей на нужный IP". Через DNS даже с маленьким TTL это всё равно долго. Посмотрите у вашего хостера и у Cloudflare раз вы его используете, нет ли у них подходящего решения.

    работа по сети достаточно замедляет ответы от БД

    На время латентности сети, от этого никуда не деться. В пределах одной стойки можно пренебречь.
    Безопасность - разумеется об этом при настройке надо будет подумать.
    Ответ написан
    Комментировать
  • Как устранить ошибку связанную с docker образом PostgreSQL?

    Melkij
    @Melkij
    PostgreSQL DBA
    Postgresql требует запуск сервера бинарниками скомпилированными ровно той же самой версии CATALOG_VERSION_NO что и был вызван initdb при инициализации datadir.
    CATALOG_VERSION_NO активно изменяется в процессе разработки, никогда - после релиза major версии.

    201909212 - заморожен для 12.0
    201906161 - относится к 12beta2

    Мы не гарантируем что beta версии будут бинарно совместимы с релизом. Если вы по глупости запустили в работу бета версию и теперь хотите оттуда достать данные - соберите и запустите кластер версии 12beta2. Затем pg_dumpall, поставить и инициализировать initdb релизной версии (12.1 сейчас), импортировать дамп туда.
    Ответ написан
    Комментировать
  • Как правильно разбить диск при использовании RAID1 в Linux?

    Melkij
    @Melkij
    PostgreSQL DBA
    Это вам как администратору должно быть виднее, зачем вам отдельный /home в 5гб и прочие фрагменты, нужны ли они и какого именно нужны размера.

    А так чаще на гипервизорах /boot на отдельном разделе raid1, всё же остальное полезное собирается в lvm поверх рейдов (и виртуалкам целиком LV монопольно, а не файлики в ФС). Возможно в разные VG.
    Ответ написан
    7 комментариев
  • Как настроить один cups на несколько серверов?

    Melkij
    @Melkij
    PostgreSQL DBA
    насколько понял, вам вообще на терминальных хостах не нужен cups сервер, а только cups-client и ServerName сервера печати в /etc/cups/client.conf
    Ответ написан
    Комментировать
  • Centos7, как обновить postgresql с 9.2 до 10 версии?

    Melkij
    @Melkij
    PostgreSQL DBA
    Если база большая - pg_upgrade в link mode. В документации шаги вполне описаны. Желательно иметь реплику на всякий случай.
    Если база маленькая - pg_dumpall и импортировать в новую версию из дампа. Собственно всё просто: запустить новую базу на отдельном порту, снять дамп, залить дамп, остановить старую базу,, перезапустить новую на нужном порту.

    Просто запустить бинарники одной major версии на datadir другой major версии - не получится.

    Для обновления в пределах одного сервера нужны бинарники обеих версий СУБД. Инструкцию по установке уже расписал Alexey Dmitriev

    не ниже 10.1(на локалке у меня 10.1) или лучше ставить последнюю 12?

    10.11 минимум. Нечего тестировать давно закрытые ошибки.
    Ответ написан
    Комментировать
  • Как увеличить свободное пространство для раздела в LVM?

    Melkij
    @Melkij
    PostgreSQL DBA
    Посмотрите в vgdisplay есть ли Free PE. Если 0 - расширять просто нечем.

    Если free есть - то lvresize или lvextend. Затем расширить файловую систему (resize2fs для ext2/3/4 который у вас вероятно и есть)
    Если free нет - то необходимо добавлять новый диск или уменьшать другие разделы. Например, /home . Впрочем, судя по его размеру и 45мб занятых - вы разрезали диск неверно для своей задачи (а зачем вообще резали отдельно /var и /home ?). Может лучше будет вовсе перемонтировать раздел с /home куда-нибудь, скопировать в корневой /home данные и удалить этот том полностью.
    Если /home вам нужен отдельный - то опять же resize2fs или какая у вас там файловая система стоит. Сжимаете до какого-то размера (если возможно), проверяете что сжалась, затем уменьшаете логический том (lvresize). Имеет смысл запросить resize2fs меньше размера на который хотите уменьшить раздел. затем после lvresize ещё раз вызвать resize2fs и расширить раздел обратно - чтобы случайно не ошибиться на пару мегабайт и не повредить этим файловую систему.
    Ответ написан
    5 комментариев
  • Как исправить, сломался ssd?

    Melkij
    @Melkij
    PostgreSQL DBA
    SMART overall-health self-assessment test result: FAILED!
    Drive failure expected in less than 24 hours. SAVE ALL DATA.


    Труп. Не надо это исправлять.
    Ответ написан
    4 комментария
  • Как подписать модули ядра при сборке гостовским алгоритмом?

    Melkij
    @Melkij
    PostgreSQL DBA
    https://www.kernel.org/doc/html/v5.0/admin-guide/m...
    The facility currently only supports the RSA public key encryption standard (though it is pluggable and permits others to be used). The possible hash algorithms that can be used are SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 (the algorithm is selected by data in the signature).


    Напишите патч и уговорите сообщество его принять либо накладывайте самостоятельно на свою сборку.
    Ответ написан
    Комментировать
  • Как сочетать type и depth в команде find?

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

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

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

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

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

    Начните с прочтения официальной документации. Настройки там должны быть все. Если вычеркнуть туманный пункт "настройки сети и тд" - то читать там уже и так достаточно надолго.
    Ответ написан
    Комментировать
  • Почему может не реплицирвоватся База Данных postgresql?

    Melkij
    @Melkij
    PostgreSQL DBA
    выводы \l+ и \dt+ в проблемной базе на мастере и реплике совпадают?

    При потоковой репликации реплика является точной бинарной копией мастера.
    гипотезы:
    повреждена база, но активности в ней нет и потому остаётся незамеченным
    лишние файлы на мастере
    Ответ написан
  • Есть ли смысл ставить Linux, если локального админа на Винде легко взломать?

    Melkij
    @Melkij
    PostgreSQL DBA
    можно через LiveCD

    Если есть физический доступ - элементарно взламывается всё.
    Например, зачем взламывать вообще, если можно поставить свою систему и скопировать нужные данные. Диск зашифрован? Так если у вас нет пароля - то как вы с системой работали ранее?
    Ответ написан
    Комментировать
  • Можно ли два PXE-сервера засунуть в один TFTP?

    Melkij
    @Melkij
    PostgreSQL DBA
    PXE кто дальше грузит? pxelinux?
    pxelinux опрашивает конфиги по порядку: https://www.syslinux.org/wiki/index.php?title=PXEL...
    Соответственно можете на каждого клиента развесить разные конфиги PXE.
    Или по DHCP раздавать Option 209 pxelinux.configfile, на который pxelinux тоже согласно доке реагирует.
    Ответ написан
    Комментировать
  • Можно ли установить libvirt отдельно?

    Melkij
    @Melkij
    PostgreSQL DBA
    apt-get install --no-install-recommends libvirt-clients python-libvirt


    kvm и qemu в рекомендуемых пакетах упомянуты, установка которых обычно включена
    Ответ написан
    4 комментария
  • Какое количество оперативной памяти у меня свободно?

    Melkij
    @Melkij
    PostgreSQL DBA
    linux ate my ram!/

    1686мб доступно. См. available в выводе free.

    И память kvm виртуалки с хоста мониторить невозможно. Хост ожидаемо видит, что гость использует всю память.
    Ответ написан
    Комментировать
  • Как расширить файловую систему на RAID томе mdadm?

    Melkij
    @Melkij
    PostgreSQL DBA
    Так у вас под массив и выделена только половина тома.
    Выкидываете диск из массива
    mdadm /dev/md0 -f /dev/vda
    mdadm /dev/md0 -r /dev/vda
    переразбиваете диск на всю ёмкость и добавляете обратно
    mdadm /dev/md0 -a /dev/vda
    Следите за процессом синхронизации, когда закончится повторяете с другим диском.

    Впрочем, через parted resizepart должно быть возможно расширить раздел без пересинхронизации массива.

    Потом
    mdadm --grow /dev/md0 --size=max
    resize2fs /dev/md0

    И вопрос в сторону: vda/vdb - обычно обозначают виртуалку. Вы уверены, что вам вообще рейд в госте нужен? Обычно рейд на хост-системе делают.
    Ответ написан
    5 комментариев
  • В чём отличие обычной и расширенной установки Debian?

    Melkij
    @Melkij
    PostgreSQL DBA
    Разница в количестве вопросов. Вернее в приоритете этих вопросов. How the Installer Works, только параметром priority отличается эти пункты меню.
    Ответ написан
  • Как ускорить запрос Postgresql?

    Melkij
    @Melkij
    PostgreSQL DBA
    Нужен explain (analyze,buffers), сильно желательно с track_io_timing = on в конфиге.

    параметр work_mem на данный запрос не может оказывать почти никакого влияния

    Оказывает. Если планировщик решит, что work_mem не хватает - не будет hash join. Для сортировки 27кб, очевидно, без разницы.

    Впрочем, зачем вам вообще join подзапроса где одна только группировка подзапроса занимает половину времени ответа? Вам простой exists нужен.
    SELECT "t1".* FROM table_1 as t1
    where exists (select 1 from table_2 as t2 WHERE t1.primarykey=t2.session)
    ORDER BY "starttime" DESC LIMIT 20;

    А дальше know your data. Если по starttime DESC быстро находятся нужные exists - будет хорошо. Если exists мало - стоит подумать, а не денормализовать ли этот признак в table_1 с триггером для консистентности в table_2 и частичным индексом по starttime where t2_exists.

    Поля session и primarykey в формате uuid

    Не очень хорошая идея. Оно и сильно медленнее при сравнении относительно bigint (особенно если речь о varchar, а не uuid типе данных) и из-за случайного распределения несколько сбивает с толку статистику планировщика.
    Ответ написан
    1 комментарий