Модули (расширения)
Ситуация прямо как с кластерами/экземплярами. Очень многие не разделяют понятия расширений и модулей. И я в их числе. Но все же, если делать по правильному: модуль – это набор расширений.
Расширение (extension) устанавливается напрямую в БД или сразу на весь кластер. Соответственно, чем больше у вас БД и кластеров – тем больше затраты на управление расширениями.
По умолчанию в PostgreSQL в каждой базе есть расширение plpgsql. Не трогайте его. Оно предназначено для разработчиков и для работы некоторых других модулей.
А в целом расширений для системного администратора не так уж и много. В основном, они нужны либо разработчикам, либо для интеграции с каким-либо интересным приложением, к примеру, PostGIS для интеграции с геолокационным приложением, или timescaledb для повышения производительности баз (в несколько раз на ровном месте) для того же Zabbix. Ну или они нужны настоящим DBA, чтобы выжать максимум производительности для крупных систем.
Установка расширения
Сразу скажу: устанавливайте расширения только, если они вам действительно необходимы и если вы действительно будете их использовать.
Перед тем, как добавить расширение в БД, его необходимо загрузить и установить в ОС. У всех расширений это делается по-разному. Например, некоторые расширения входят в пакет postgresql-contrib, некоторые загружаются напрямую из репозиториев PostgreSQL, а некоторые скачиваются с гитхаба или PGXN и требуют Perl, Rust или Python. И вот с языками программирования высокого уровня всегда проблема, потому что работа с ними отнимает место на диске и наше время. С расширениями, которые написаны с использованием plpgsql или C/C++ таких проблем нет.
У каждого из модулей есть как минимум два способа установки. Используйте в первую очередь тот, который рекомендуется разработчиками модуля.
Можете в целом выбрать любой удобный для вас способ установки. Только имейте ввиду, что вам также может понадобиться пакет postgresql-server-dev-XX (где XX – это мажорная версия PostgreSQL сервера, на который вы планируете устанавливать расширение, если непонятно, то замените XX на all) или другие пакеты. Читайте документацию к каждому из модулей.
Добавление расширения в БД
Установка расширения в БД происходит в несколько этапов:
1) Подключаемся к БД.
2) Добавляем расширение. Необходимо знать имя расширения и его версию, которая должна быть совместима с версией кластера, на котором находится БД.
https://www.postgresql.org/docs/current/sql-createextension.html
3) Проверяем, было ли оно добавлено в БД, при помощи SQL запроса:
SELECT * FROM pg_extension;
Или мета-команды \dx.
Изменение расширения
В основном, нам просто придется обновлять расширение на более новую версию, потому что расширения тоже получают обновления.
К примеру, обновим расширение extension1 до версии 1.1:
ALTER EXTENSION extension1 UPDATE TO '1.1';
https://www.postgresql.org/docs/current/sql-alterextension.html
Но на самом деле это не такая большая проблема. Некоторые расширения получают обновления раз в полгода-год.
pg_repack
Самый универсальный модуль. Не в том плане, что он проигрывает по всем фронтам, а в том, что он будет полезен для любых систем.
Модуль позволяет выполнять операции перестроения индексов, полной очистки и перестановки строк таблиц на боевых серверах без прерывания подключений. Но есть и минус: вам требуется как минимум в 3 раза больше свободного места в хранилище БД, потому что чудес не бывает, а системе требуется копия таблицы, с которой она сможет работать без постороннего вмешательства. Всегда приходится чем-то жертвовать. Но зато вы можете забыть об остановке сервера для операций обслуживания, а объем баз будет минимальным. Правда, есть еще один незначительный недостаток. Некоторые блокировки все еще останутся, а очистить данные на все 100% возможно только на холодной системе. Но это все равно лучше, чем vacuumdb и reindexdb, а алгоритмы работы pg_repack в целом гораздо эффективнее, в первую очередь за счет возможности распараллеливания процессов на горячей системе.
Альтернативой для pg_repack является pg_squeeze. Его плюс в том, что больше не требуется так много свободного места на диске для перестроения таблиц. Однако, если разобраться в алгоритмах их работы, pg_repack видит цель и не видит преград, а pg_squeeze равномерно размазывает нагрузку на сервер, чтобы не мешать другим процессам, но при этом, зачастую, он не способен очистить то, что может очистить pg_repack. В целом и так у каждого из них есть свои преимущества и недостатки. Разница будет заметна только в очень крупных системах, где каждый их модулей используется для конкретной задачи. Для нас пока что основной проблемой является порог вхождения. И у pg_repack он самый низкий за счет простоты, документации и наличия обучающих материалов в интернете.
Не используйте этот инструмент просто так. Всегда смотрите, что было с базой до, и что стало после (в первую очередь это объем). Основную проблему pg_repack вы уже знаете.
Если у вам в «наследство» досталась распухшая база на несколько терабайт, в которой всего 2-3% полезных данных, то pg_repack это лучшее решение. А еще лучше – VACUUM FULL.
Также отмечу, что, если вы используете Barman, то в него уже встроены алгоритмы по борьбе с распуханием БД (не знаю точно насчет других систем, я работал только с Barman).
Устанавливается pg_repack просто. Достаточно установить пакет с именем postgresql-XX-repack, где XX – это мажорная версия вашего кластера, на котором планируется использовать pg_repack (на самом деле, это не так важно, поскольку pg_repack совместим и с более старыми версиями СУБД, основная проблема в поддержке новых версий). По умолчанию будет установлена последняя актуальная версия.
https://packages.debian.org/trixie/postgresql-16-repack
Далее подключаемся к базам, на которых мы планируем использовать pg_repack, и добавляем в них расширение:
CREATE EXTENSION pg_repack;
У команды pg_repack есть много параметров, и значения по умолчанию многих из них нас устраивают. Но есть два параметра, которые будет полезно задать:
-a
– обрабатывает все базы в заданном кластере.
-j
– задает количество процессов. Будьте очень осторожны с этим параметром. Задавайте максимальное число ядер только, если система холодная. Если же горячая – то в зависимости от текущей загруженности CPU и, что самое важное, дисковой подсистемы. Если не знаете – оставляйте как есть, то есть 1. Да, процесс работы будет сильно дольше, но зато pg_repack не отберет у других процессов необходимые ресурсы. Также при использовании только одного ядра вам может не потребоваться так много свободного места в хранилище, поскольку один процесс может работать только с одним объектом. Но лучше не рисковать, вы же не знаете, сколько у вас таблиц в базе и сколько в процентном соотношении они занимают места. К примеру, если у вас одна огромная таблица, то вся она будет скопирована, и места может не хватить. Ну, вы уже знаете, что будет, если место внезапно закончится. Лучше не рисковать.
https://github.com/reorg/pg_repack
https://github.com/cybertec-postgresql/pg_squeeze
Мониторинг
Все, что от вас требуется – следить в первую очередь за свободным пространством в хранилище БД, а также за скоростью роста баз. Если у вас есть какая-либо система мониторинга, можете развернуть агент/клиент для PostgreSQL, либо использовать стороннее решение конкретно для PostgreSQL, как тот же PoWA, который на самом деле очень легок в установке (альтернативы: PgHero, pgwatch2 и т.п.). Если же и их нет – то мониторьте локально при помощи Linux утилит. Огромный плюс нормальной системы мониторинга в том, что вы сможете визуализировать все то, что было изучено выше: автовакуум, чекпоинты, журнал предзаписи, подключения и т.д. Также не забывайте про анализ логов. Если вы усвоили все вышенаписанное, то вам мониторинг, может быть, и не нужен, потому что у вас и так все будет в порядке. Однако убедится в том, что все работает как надо, никогда не помешает. Но самое главное – это специалисты. То есть вы. Потому что даже при наличии системы мониторинга пустоголовый выкидыш с курсов не сможет выявить проблему и ее устранить.
Что делать дальше?
В первую очередь, перечитайте статью еще раз, а после примените все полученные знания на практике в тестовой среде. Как разберетесь – можете внедрять решения на боевых серверах.
Во-вторых, все задокументируйте. Каждый шаг. Кто, когда, что, как и почему сделал. Не обязательно по гостам, можно просто списком, который отражает последовательность действий. Документация нужна в первую очередь вам. Никогда не держите технические детали в голове, все равно большую часть забудете. Хороший специалист отличается не тем, что он может сделать что-то по памяти, не обращаясь ко внешним источникам, а тем, что он составляет документацию и занимается ее дальнейшим сопровождением.
Если системный администратор (или в принципе любой ИТшник или инженер) не пишет документацию, то он либо самоуверенный идиот, который просто не понимает масштаб проблем, либо не показывает документацию специально. Причины этого могут быть самые разные. Кто-то боится, что она достанется другим, и те просто на ее основе быстрее и лучше построят свою систему. Это неправда. Чтобы понять, что написано в документации по тому же PostgreSQL, надо сначала научиться с этой системой работать. Они бы и так ее построили, просто без документации на текущее положение дел это заняло бы больше времени. А кто-то не показывает документацию для того, чтобы завязать все на себе, чтобы не уволили, а в случае увольнения остальные мучались и перестраивали всю систему заново, гадая на кофейной гуще (короче говоря, чтобы поиметь денег).
В-третьих, проверяйте оборудование. Протестируйте обязательно все диски и все модули памяти. Выгрызайте у руководства технологические окна и бюджеты. Если не получается – то отрубайте всю систему и запускайте шифровальщики в сеть, тогда деньги и время сразу появятся (это шутка, если что).
Если все три пункта выполнены, можете с чистой совестью начать изучение приложения, которое интегрируется с PostgreSQL. Мы же именно для этого изучали СУБД. Как выучите, идите дальше по пунктам.
Резервное копирование. Оцените самостоятельно, можете ли вы обойтись без сторонней системы бэкапа или нет. Если нет, то самое время учить Barman или что-либо другое в зависимости от ваших задач.
Мониторинг и анализ логов. Смотрите по ситуации. Все уже сказано. Необходимо – да, а вот есть ли у вас время на изучение и внедрение всего этого добра – смотрите сами.
Безопасность. SSL, шифрование, смены паролей и т.д. и т.п.
SQL. Если вы разработчик или DBA. При помощи SQL можно много всего интересного натворить, а вот надо оно вам или нет – вопрос тоже спорный. Как правило, готовые команды уже прописаны, и выдумывать самому ничего не надо.
Кластеризация. Речь именно про кластер серверов, а не баз данных. Очень сложная и объемная тема. Все зависит от того, какая перед вами стоит задача: обеспечение отказоустойчивости или повышение производительности. В теме кластеризации очень много нюансов и подводных камней. Не учите кластеризацию, если вам она не нужна. Кластеризация – это очень дорого и по материальным ресурсам, и по временным, и по интеллектуальным. Но есть и плюс: это бесплатные решения, так что затрат на лицензирование не будет. Я специально опускаю конкретные примеры, потому что тема действительно очень сложная, особенно для новичка, и тут нельзя просто сказать: «Вы, 99%, используйте вот это вот так, и все будет хорошо».
Модули. Размазаны по всем пунктам выше. Смотрите сами, нужны они вам или нет. Я про самый полезный из них уже рассказал.
Что почитать?
Если вам нужен конкретно PostgreSQL, то я знаю 4 хорошие книги. Проблема в том, что они, скорее, предназначены для разработчиков (потому что написаны разработчиками). Если вы кодер – то они именно для вас. Там очень много полезной информации про устройство самой СУБД и запросы. Но если вы системный администратор, то не тратьте время. Гораздо больше пользы будет от чтения документации по расширениям и сторонним системам.
PostgreSQL 16 Administration Cookbook (ISBN-13: 978-1835460580)
PostgreSQL 16 изнутри (ISBN: 978-5-93700-305-8)
Mastering PostgreSQL 15 (ISBN-13: 978-1803248349)
Learn PostgreSQL (ISBN-13: 978-1838985288)
По ходу чтения документации и практики, у вас будут появляться вопросы. Много вопросов. Неважно, кажутся ли они вам или вашим коллегам тупыми или умными. Важно то, что они есть. А это значит, что вы учитесь чему-то новому. Если вопрос простой, то, скорее всего, его уже кто-то до вас задавал, и вы с легкостью найдете ответ в интернете. Если у вас есть какой-то сложный вопрос, то для начала определитесь, действительно ли он вам нужен и необходимо ли тратить на него время. Если же все-таки нужен, то изучите еще раз все связанные с этим вещи, и вопрос может решиться сам собой.
Также существует много споров по поводу нейросетей. Если вопросы легкие – то никаких проблем. В противном случае она просто не сможет вам дать ответ. Ну и, конечно же, проверяйте все, что она вам отвечает. Также задавайте правильные вопросы. Правильно заданный вопрос – это уже половина ответа.
Если вы чего-то не понимаете, то ничего страшного. Это абсолютно нормально. Практикуйтесь, тренируйтесь, изучайте, и со временем вы будете чувствовать себя при работе с PostgreSQL как рыба в воде. Все приходит с опытом. И, если ничего не делать, то ничего и не изменится.
В чем проблема PostgreSQL?
Можно долго шутить про прокладку между креслом и монитором, однако проблемы действительно есть. Ниже я описал только те из них, которые касались лично меня (когда я только брался за изучение), а не всей системы целиком. Сама по себе СУБД задачу выполняет как надо.
Документация. Она слишком подробная. 90% информации вам никогда не пригодится. Граница между администрированием и разработкой очень сильно размыта. И это относится не только к PostgreSQL, а еще и ко многим другим продуктам. Разработчики не могут создать отдельную версию для сисадминов-дебилов, где будут описаны только базовые и самые необходимые вещи. Входить надо постепенно, шаг за шагом, а не когда ты потратил неделю на чтение документации про SQL команды, но так и не понял, куда их вбивать (просто пример). Почему так происходит? Потому что разработкой занимаются люди задроты, которые работают только с PostgreSQL, и ни с чем больше. Для них самих, конечно же, все будет легко и понятно. Интересы целевой и потенциальной аудитории им не нужны. Но вот как можно было оставить 25% для общих буферов – я не понимаю. Почему нельзя было просто написать, что у всех все будет разное, а также хотя бы примерный алгоритм расчета. Или зачем начинающим администраторам учить SQL полностью – вопрос открытый. Поэтому пинайте разработчиков, иначе они не будут выполнять свои прямые обязанности, и так все и останется. А еще лучше: напишите свою статью на интересующую вас тему (про сравнение сторонних систем бэкапа, к примеру, уже есть). Это же open source сообщество, давайте помогать друг другу. Разумеется, настоящих DBA с 20-ти летним стажем этот абзац только рассмешит: начинающий DBA не хочет учится. Я хочу учиться, но только в правильном направлении, и учить то, что надо, а не все подряд, потому что в сутках только 24 часа. Да, у многих решений с документацией ситуация аналогичная, только это никак не оправдывает PostgreSQL.
Курсы. Хорошо, допустим, мы захотели пойти по простому пути, чтобы лишний раз не напрягаться, и решили найти какие-то готовые курсы или статьи по администрированию для начинающих. И там опять будет подробное изучение SQL и прочая ненужная информация, которая начинающим администраторам (не разработчикам) просто не нужна. У того же PostgresP*O есть курсы DBA 1-3, их можно найти в свободном доступе. Пример отличный: 90% информации можно просто выкидывать, а рекомендаций никаких конкретных нет, потому что этот курс разработан программистами, а не сисадминами. То же можно сказать и про книги. Но PostgresP*O можно похвалить хотя бы за то, что выложили курсы в общий доступ, потому что полезная информация там все же есть. Вы также можете подумать, что я за то, чтобы снижать порог вхождения. С одной стороны да, с другой – нет. Просто в достаточном количестве специалистов у вас не будет. Да и в целом ниже падать все равно уже некуда. Эта статья именно для начинающих, для широкой аудитории, чтобы поднять минимальный уровень.
Почти для всех задач используются сторонние решения. Резервное копирование, мониторинг, анализ логов и их ротация, пул подключений, да даже алгоритмы zlib и gzip по умолчанию – это все больные места PostgreSQL. Так что эту СУБД нужно рассматривать как основу, на которой мы будем строить все остальное. Напоминаю, что инкремент для физических резервных копий добавят только в 17 версии. Сам по себе PostgreSQL очень легок в изучении (могу говорить только про область администрирования), основной объем – это Linux, а также сторонние утилиты и модули.
Нет защиты от дурака. Делай, что хочешь. Хочешь – отключай автовакуум. Хочешь – не делай резервные копии вообще. Или делай дампы только конкретных баз, без схемы. Ладно, шучу. И так понятно, что это проблемы тех, кто не читает документацию. С одной стороны, есть гибкость, и с системой можно делать вообще что угодно, в отличие от того же MS SQL Server. Но, с другой стороны, эта самая гибкость может только навредить.
Подытожить это все можно одной фразой: добро пожаловать в open source.
Про форки PostgreSQL
Сейчас опять набегут адепты PostgresP*O и будут в комментариях доказывать, что это не пустая трата денег. Продолжайте дуться и платить налоги, которые уйдут в карманы фирм по «разработке» отечественного ПО аналоговнет, которое просто является переименованной (или даже перекрашенной) копией уже готового open source решения. А потом руководство гос. организаций должно страдать, потому что им сверху пришел приказ тратить ежегодно 1 млн. рублей на 100 лицензий A***a Linux (зато техподдержка работает!). Пока есть газ и нефть, пока выделяются бюджеты на эту ерунду, это не прекратится.
Хорошо, пусть скопировали PostgreSQL, подкрутили пару особенностей, и даже создали учебные материалы… 99% информации в которых это просто пересказ документации обычного PostgreSQL. Роли alice и bob мне уже в кошмарах сняться, вот честно.
То же было и с пользователем vivek, когда я изучал Windows Server. То есть наши соотечественники просто взяли и скопировали учебные программы либо из документации, либо украли у загорелых специалистов из стран третьего мира. И даже не изменили имена учетных записей. А потом еще и меня обвиняют в плагиате или использовании нейросетей.
Не согласны? Хорошо, вот вам наглядный пример. Компания PostgresP*O разработала утилиту резервного копирования pg_probackup (на гитхабе есть бесплатная версия, которая уже пару лет как перестала развиваться, разработчики бросили все силы на платную версию). И вот они со своими подпевалами часто сравнивают ее со встроенными в стандартный PostgreSQL утилитами pg_basebackup и pg_dump. Почему они не сравнивают их с Barman, WAL-G, pgBackRest и другими БЕСПЛАТНЫМИ решениями, я не могу понять. Хотя нет, могу, это же просто бизнес. Надо же всем показать, что стандартный PostgreSQL ни на что не способен.
В чем смысл?
Дописав эту статью до конца и думая над этим подразделом, я задаю себе тот же вопрос. А зачем учить PostgreSQL, если до него нужно выучить Linux со всеми вытекающими?
Зачем он нужен? Мы же можем просто использовать для той же 1Ски SQL Server либо для разработчиков, либо взломанный. Мы же в России живем. Зачем учить страшные и неудобные команды, если можно просто тыкать мышкой.
Только вот вы здесь системный администратор. Может быть, даже единственный в вашей компании. Взломать ПО и нарушить лицензионное соглашение – это одно и то же с точки зрения нашего законодательства (учитывая то, как оно работает на практике). Если к вам приедет ревизор из отдела К, вас сделают виноватым все, сговорившись за вашей спиной без всяких сказок в стиле «Мы одна команда, поэтому сядут все, а всех не посадят» или «У нас супер-юристы, они от такой ерунды вас отмажут». Не отмажут, только если вы не чей-то родственник, чтобы был смысл тратить деньги на какого-то урода, который вчера пришел. Читайте 146 УК РФ. Когда замаячит реальный срок – люди пойдут на что угодно. Хорошо это или плохо – может рассуждать только тот, кто в подобную ситуацию не попадал. Оно вам надо? Ради этого вы учились? Ради денег руководства какой-то фирмы, которое плевать на вас хотела и терпит вас только потому, что вы приносите прибыль? Вы просто наемный рабочий, не генеральный директор, не акционер, не совладелец. Так что вам в целом без разницы, что с этой компанией будет дальше. Сегодня вам все улыбаются, а завтра попросят уйти или лишат премии. И нет смысла рисковать ради того, чтобы какая-то жирная свинья купила себе и своим детям новенький мерседес, последний айфон, квартиру в центре, и всей семьей они улетели на отдых в какую-нибудь очень дорогую страну Северной Америки или Европы. Сначала они экономят на лицензиях, чуть позже на оборудовании, далее на условиях труда, затем на зарплатах, а потом будут экономить и на вашей безопасности. Не верите – почитайте комментарии к любой статье или видео на очередную тему про дефицит кадров или почему люди не хотят работать.
Вы еще успеете познакомиться с альтернативно одаренными HR, менеджерами, ИТ-директорами и с СБшниками с их полиграфом, которые могут отказать вам в трудоустройстве только потому, что до этого вы с другого работодателя через суд выбивали деньги. То есть, кидать людей на деньги можно, а вот добиваться справедливости оказывается нельзя. Без вот этих всех сказок про то, какой бизнес несчастный, белый и пушистый, и какое плохое у нас государство, что заставляет выплачивать белую з.п., соблюдать ТК РФ и душит налогами. Как по мне, так этим тварям и надо. Да, есть хорошие компании, где руководство адекватное. Но, к сожалению, далеко не все компании такие. Например, рано или поздно вы обязательно столкнетесь с ситуацией, когда вам позвонили/написали и предложили работу по вашей специальности, хотя вы работу не ищите и никогда до этого не слышали об этой компании. Не надо думать, что это сарафанное радио, и что вы востребованный специалист, не льстите сами себе. Просто ваши данные кто-то продал. Собеседования по 10 минут удаленно и вакансии, висящие на протяжении нескольких недель или даже месяцев – это именно оно.
Так, мы отвлеклись. Вернемся к теме ИТ. Почти везде пиратский MS SQL Server, несмотря на санкции – это правда. И эта статья призвана хоть немного это дело исправить. И да, я видел, как люди «администрируют» MS SQL Server. Next, next, next, finish, 30 баз на одном экземпляре. Производительность ужасная, оптимизаций нет, документации нет, лицензий нет, имени хоста нет, и статических адресов на NIC тоже, фаервол не настроен или вообще выключен, подключайтесь кто хочет. Зато есть бэкапы. Просто прекрасно. Так что эти люди PostgreSQL тем более освоить не смогут. То же касается и тех, кто тыкает мышкой в pgAdmin/DBeaver. А потом я постоянно слышу про то, что MS SQL Server потребляет очень много памяти. С одной стороны, это правда, все же он предназначен для более высокого уровня, чем PostgreSQL, так что там производительность достигается любой ценой. Но, с другой стороны, люди даже не попытались разобраться, почему так происходит, и не знают, к примеру, про существование такого параметра как Maximum server memory (который по умолчанию равен 2 TB). А дальше наши «специалисты» рассказывают сказки о том, что «PostgreSQL не соответствует требованиям бизнеса». На деле же это просто измененная фраза «Я тупой и не могу себя заставить учить Linux и PostgreSQL, и поэтому, чтобы не напрягаться, я подвожу себя и своих коллег под уголовную статью». Туда же можно отнести и фразы в стиле: «PostgreSQL не подходит для 1С (или подставляйте свое приложение), поскольку при объеме баз от N GB или при количестве клиентов от N единиц система начинает тупить». Это же программа виновата, что пользователь не научился с ней работать. Прочитав эту статью и проработав все основные параметры, вы уже понимаете, в чем проблема: эти параметры никто не настраивает. А потом они рассказывают про свой богатый опыт. Он действительно важен, с этим никто не спорит. Но наша профессия в первую очередь интеллектуальная, и без теории практика мертва. Результат вашей работы зависит в первую очередь от того, как вы учились.
Обращение к читателям
Большое спасибо вам за то, что дочитали эту статью до конца. Получилась она достаточно объемной. Надеюсь, что она была для вас полезной и что-то новое вы из нее вынесли.
Статью пришлось разделить на несколько частей, потому что платформа просто не вытягивает такой объем. Я выложил все части в примерно одно время, но готов поспорить, что последнюю (эту) часть прочитает в 10 раз меньше человек, чем первую. Я также специально разметил темы про производительность, автовакуум, чекпоинты и журнал предзаписи перед подключениями. Иначе вы бы просто научились работать с самим сервером, ролями, базами, а все остальное просто бы проигнорировали. Система же работает. Приложение базу видит. Так какой смысл учить все остальное, правда? Надеюсь, никто из вас не пропустил темы резервного копирования и модулей.
Также прошу меня понять, если я что-то где-то не досказал, сильно сократил или проигнорировал. Это не значит, что я глупый (хотя кто знает), просто я считаю это бесполезным именно для начинающих. К примеру, зачем вам знать организацию файлов WAL? Или что WAL можно разместить на другом диске? Или для чего вам индексы объектов БД? А язык SQL? Что вы будете делать с этой информацией? Вам и так нужно еще очень многое изучить, так что нет смысла тратить силы и время на то, с чем вы не будете работать (по крайней мере, на первых порах). Все, что я считаю важным для начинающих системных администраторов, уже написано. Аналогично с повторениями: я сделал это специально, поскольку это важная информация, которую вы должны заметить и запомнить. Ну и еще свою роль сыграло то, что я печатал статью на протяжении месяца, когда было свободное время.
Поскольку статья большая, то в ней обязательно будут ошибки. Так что будьте осторожнее и проверяйте все, что написано. Некоторые ошибки я специально оставил в качестве сюрприза для тех, кто читать разучился. Аналогично и с некоторыми формулировками.
Я прекрасно знаю, что есть определенный тип граждан, которые берут готовую информацию из статей и перепродают в своих курсах. Моя статья бесплатна для всех, потому что это open source, и я просто хочу внести хоть какой-то вклад. Почему именно habr? Потому что я и сам с него начинал, когда только школу заканчивал (без вот этих всех сказок про то, как я в 10 лет разработал свою видеоигру или веб-сайт). Плюс примерно 1/5 всех полезных статей я находил именно здесь. Я также прекрасно вижу, что здесь полно и бесполезных статей, к примеру, про небритых инвертировано-белых ИТ-директоров менеджеров с гор без технического образования, которые рассказывают сказки про KPI, CRM и прочую ерунду. Или очередная сказка про то, что системные администраторы уходят в прошлое, и все должны учить K8s и Ansible. А на практике мы получаем сисадминов с 15-20 летним стажем, которые ни разу не работали с Linux, фанатеют по Mikrotik/CISCO и не пишут документацию (не хочу никого обидеть, это просто собирательный негативный образ). Или, наоборот, юных дарований без технического образования после курсов, которые внедряют все подряд, безумно вбивая команды из статей и не разбираясь, работает ли система или нет, а если и работает, то как, а о том, что будет, если система перестанет работать, они даже не думают. Возможно, эти люди в каких-то моментах в техническом плане действительно хорошо разбираются. Но вот с точки зрения того, как это все должно быть устроено в организации, с точки зрения подхода и логики – просто тихий ужас. Проработают полгода-год, а затем уволятся и пойдут «наводить порядок» в другом месте. А потом нормальным людям придется сносить все это непотребство, потому что проще и быстрее все развернуть заново, чем пытаться разобраться.
В общем, давайте двигаться только вперед. Если вы с чем-то не согласны, если у вас есть вопросы или замечания – я попрошу вас написать в комментарии к какой-либо из частей статьи или мне в личные сообщения. Также не забывайте эти самые комментарии читать. Есть много людей, которые пишут там действительно полезные и умные вещи.
ь
Комментарии (43)
rinace
14.09.2024 13:36Странное впечатление от статьи.
С одной стороны , вроде вещи правильные высказываются , с другой непонятные эмоции, с третьей реально галопом по европам.
Как учебное пособие для начинающих - не рекомендовал бы .
С другой стороны , на Хабре в последнее время так мало реально технических статей , что любому проблеску в потоке беллетристики наверное читатели будут рады.
Blizna Автор
14.09.2024 13:36А что бы вы могли порекомендовать для сисадминов? Вы так быстро прочитали все 5 частей. Хотелось бы увидеть от вас развернутое мнение о статье, если не затруднит. Про эмоции - ну как бы да. Опыт у всех разный. Все работали в разных компаниях с разными людьми, и кому-то повезло больше, а кому-то меньше.
rinace
14.09.2024 13:36+1А что бы вы могли порекомендовать для сисадминов?
Учиться , учиться и еще раз - учиться. (С)
Материалов , в отличии от моей молодости - мегатонны. Хороших материалов, фундаментальных , опытных.
И еще раз - я не знаю, кто такие сисадмины . Я DBA и работаю в компании с такими же DBA.
Сисадмины времён 90-х давно канули в историю .
Хотелось бы увидеть от вас развернутое мнение о статье, если не затруднит.
Вам не понравится даже краткое мнение . Да , потраченное время и энергия и нервы . Но , примите как есть - ничего нового , всё это уже было по многу раз в других статьях и источниках.
Время лучше тратить на оригинальные идеи , даже , скажу по себе , если они пока и не принимаются большинством. Новое , если это стоящее и полезное, всё равно пробьется , со временем .
А очередное повторение , завтра все забудут и никто не оценит. А на Хабре еще и карму сольют.
Вы же не ведёте блог какой то компании которая донатит Хабр. Это им можно жевать одно и тоже и двигать свою рекламу .
Blizna Автор
14.09.2024 13:36+2В самом начале было сказано: статья для систематизации знаний, для начинающих. Для вас - да, пустая трата времени. Для какого-нибудь начинающего сисадмина, которому руководство сверху поставило задачу к 2025 году смигрировать 1Ску с SQL Server на PostgreSQL - наоборот, будет полезно. Возможно, это прозвучит слегка высокомерно. Но я успел за 4 года повзаимодействовать с десятком организаций, и там, мягко говоря, в плане СУБД все плохо. Типичная картина: 1Ска и MS SQL Server на одном хосте, причем они будут использовать взломанные Standard/Enterprise, либо Developer (даже если в 1Ске всего 5 юзеров). С PostgreSQL ситуация не лучше. Также все на одном хосте, но с добавлением PGAdmin. И как бы ладно на одном хосте, если система небольшая, то без разницы. Но вот они же просто все оставляют по умолчанию и тыкают мышкой по гайдам с ютуба. Да, надо учиться, с этим никто не спорит. И некоторые действительно учатся. Ну, те, у кого есть время и желание. Вам повезло больше, у вас очень крупная и серьезная организация, в которой каждый занимается своим делом. А вот мы плаваем в малых и средних конторах, где все делают всё и где далеко не всё так идеально и не всё так отлажено. Если в штате три сисадмина (не считая помощников) - то это уже значительно выше среднего. Вот есть город Челябинск - и в нем компаний, где больше 1000 клиентов находятся именно в Челябинске, можно пересчитать по пальцам одной руки. Просто, я опять же повторюсь, мы находимся в разных вселенных. И видение того, что надо делать, у нас будет разное. Может быть, лет через 20, я тоже стану настоящим DBA, и не буду думать так, как сейчас. А может быть, просто все брошу и останусь вечным эникеем. Но скорее всего просто буду дальше сисадминить немного отклоняясь от курса туда-сюда. Хороших сисадминов тоже ведь надо поискать.
VenbergV
14.09.2024 13:361C и postgresql на одном хосте/VM с каждым годом превращаются во все большее зло! Если это не КОРП лицензия, то вы не ограничите аппетит 1С к памяти. С каждой новой версией платформы 1С все более прожорлива до памяти. Да и PostgreSQL не отстает. Уже второй год приходится разделять на пару виртуалок 1C и postgreSQL что бы они не дрались. Даже современных пользовательских процессоров (~5лет), с 8-12 ядрами, хватает на 10-15 пользователей, с небольшим количеством и объемом баз.
Blizna Автор
14.09.2024 13:36PostgreSQL не отстает - так это только потому, что СУБД работает с 1С, это вина на стороне 1С. СУБД не виновата. Она работает как надо. А вот железо это беда. Десктопный CPU с 8 ядрами (возьмем тот же Core i7-10700) - я не верю, что он не вытягивает 15 юзеров 1С. 1Ске важная производительность на ядро, она до сих пор не распараллеливается никак, а вот у PostgreSQL все прекрасно.
VenbergV
14.09.2024 13:36А я и не говорю что у PostgreSQL что-то становится хуже. Но он работает под задачу, которой является 1С.
На одной из конференций, Олег Бартунов слушал обсуждение параллелизма, а потом встал и сказал: "База 1С - это OLTP. А для OLTP параллелизм запрещен".
И надо не забывать, что 1С по умолчанию каждый запрос делает со своими параметрами. Например:enable_mergejoin=off;
иcpu_operator_cost=0.001;
Ну и мысли про 15 пользователей... Все зависит что за пользователи и с чем они работают. Если это 15 менджеров, работающие с 1-2 базами типовой 1С Бухгалтерия, размером 5-10ГБ на пять лет, для выписки 1-20 счетов в день, то наверняка все будет хорошо.
Но уже не один раз попадал на пару бухгалтеров и ~30 баз 1С. Там на холостом пробеге базы сами могут создавать большую нагрузку, если в них без ума включены фоновые задачи.
Да еще и "самописные" отчеты от начинающих 1С программистов легко выедают всю память. Ибо их научили работать с циклами, но не научили в запросы SQL. И они все данные базы, через вложенные циклы, по одному значению выбирают, для поиска и сравнения.Blizna Автор
14.09.2024 13:36Да, самописки это ад. Проще тогда людям выполнять работу на бумаге, чем потом все это дело восстанавливать. PostgreSQL можно настроить идеально, а вот со стороны приложения будут проблемы всегда, видимо.
Я так понял, 1С (именно тот продукт, который есть сейчас) будет зависеть от производительности на ядро всегда. Да, неприятно. Очень. Учитывая космическую стоимость CPU с высокой производительностью на ядро. Но имеем что имеем.
VenbergV
14.09.2024 13:36+2Я не знаю конечно, чем вас обидели PostgresPro, но они делают не только коммерческий продукт. Хотя и коммерческий продукт имеет для кого-то полезные функции, например сжатие для 16 версии. Об этом рассказывал Антон Дорошкевич. Вот была статья. Ну и для каких-то компаний очень важно иметь живую техническую поддержку, прописанную в договоре, а не только поиск по форумам.
Сооснователь и генеральный директор компании Олег Бартунов. Он внес довольно большой вклад как в сам PostgreSQL, так и в использование его для 1С.Blizna Автор
14.09.2024 13:36За те же деньги лучше уж купить тогда MS SQL Server. Ах да, санкции. Интересно, как выросли цены после их ввода. На оф. сайте цены так и не выложены. Посмотрел на мигсофте: 170 т.р. за версию Standard, и 620 т.р. за Enterprise, и это за одно ядро в обоих случаях. Зато включен пакет техподдержки на 1 год.
Может быть, с уходом MS, действительно некоторым пришлось перейти на PostgresP*O, особенно бюджетникам и просто компаниям, где все очень строго с лицензированием.
Опять же, спускаемся с небес на землю. Денег нет. Соответственно, нет нового оборудования, нет и не было лицензий на другое ПО. Да и компаний, которым действительно нужна эта... вещь, не так уж и много на самом деле. Они же это дело в первую очередь позиционируют для 1Ски. Но как бы и другие приложения могут не работать с PostgresP*O. Вот есть у них своя утилита для бэкапа, а тот же Barman или WAL-G ничего не знают про отличия от стандартной PostgreSQL (на самом деле надо уточнять). Аж интересно стало, не сдержался, загуглил. Нет, не работают.
Сама компания-то может быть и хорошая. Ну там, в плане документации, которую они провели через google translate, или книг с курсами. Может быть. А может быть, это очередной аналоговнет, прямо как Tantor. Вот что, к примеру, они пишут о своих преимуществах:
64-битный счетчик транзакций
Повышение производительности СУБД при большом количестве одновременных пользователей;
Увеличение количества партиций в общем буфере (shared buffer)
Оптимизация (~1.4 раза) алгоритма сжатия данных pglz
Снижение количества блокировок страниц данных в общем буфере (shared buffer)
Сжатие WAL-файлов с помощью алгоритмов lz4 и zstd
Сжатие в libpq
64-счетчик мы уже где-то видели (про саму заморозку уже все сказал).
Сжатие WAL при помощи lz4 и zstd. Видимо, в обычном PostgreSQL такого нет. А нет, есть, и еще со времен версии 9.5.
Ладно, PostgresP*O победили. Хотя бы потому, что разработали свою утилиту бэкапа. Интересно было бы сравнить ее с тем же Barman. По описанным выше причинам сравнение будет некорректное, но все же хоть что-то.
erogov
14.09.2024 13:36Ну там, в плане документации, которую они провели через google translate
Вот сейчас обидно было.
Sleuthhound
14.09.2024 13:36@Blizna Зачем писать такую ересь? Постргес Профессиональный внесли и вносят огромный вклад в развитие и популяризацию пг в России. За одну только документацию и книги в свободном доступе им низкий поклон.
Не нравится продукт который они делают - сделайте лучше, не нравится техподдержка - анологично, создайте компанию, выростите (наймите) специалистов и оказывайте лучшую поддержку. А поносить чужые труды, да еще и безосновательно - по моему это верх некомпетентности.
Blizna Автор
14.09.2024 13:36Да, не спорю. А как же другие компании? EDB, к примеру? Я разместил много ссылок, и некоторые из них именно от EDB (я действительно думаю, что больший вклад был именно со стороны EDB), а вот от PostgresP*O даже разместил одну книгу. Вы это заметили? А вот документация это просто google translate. А что насчет других разработчиков модулей и сторонних продуктов? К примеру, как тот же WAL-G или PoWA? Почему-то о них никто не вспоминает. А так в целом маркетинговая компания удалась. Так нагадить образованным людям в головы это надо постараться. Если я как-нибудь на работе столкнусь с PostgresP*O, то обязательно сравню их pg_probackup с моим любимым Barman. Даже если результат будет не в пользу последнего - все равно выложу итоги в общий доступ. Да, так делать нельзя, потому что по сути это две разные СУБД. Но все же.
VenbergV
14.09.2024 13:36Я не знаю историю вашего конфликта, с участием продуктов "Postgress Professional".
Уж извините не хотел обидеть.
Но странным будет отказываться от Ubuntu, на основании что Canonical барыги. Как и от Centos/Fedora/Almalinux, на основании цены RHEL. Так же странно не признавать вклад Олега Бартунова, в развитие ванильного PostgreSQL, на основании его работы в этой компании. Это как не признать вклад IBM/Red Hat в развитие ядра Linux.
Возможно я что-то пропустил, но ванильный PostgreSQL, как не работал, так и не работает с 1С. На сайте 1С всегда публикуют свою сборку и набор патчей для самостоятельной сборки из ванильного PostgreSQL.Еще раз извиняюсь, если обидел.
Blizna Автор
14.09.2024 13:36Вы не обидели. Никакого конфликта не было, потому что с PostgresP*O я не работал. Я не могу оценить вклад, который внесли в open source коммерческие организации. Просто вот есть я, по сути дела конечный пользователь, который смотрит вот только на это. А сервера у меня почти все на Ubuntu, кстати. Если что-то пойдет не так, я просто перейду на Debian.
Про 1Ску надо было уточнять да, потому что умников тоже хватает. Но как бы статья не про 1С. Чем больше изучаю подобные темы - тем больше понимаю, что лучше свое мнение не высказывать, имеем что имеем.
jackchickadee
14.09.2024 13:36про MS SQL server обидно было.
фаервол не настроен или вообще выключен,
да. а что такого ? любой фаерволл снижает производительность сети.
подключайтесь кто хочет.
слушается только 127.0.0.1 и shared memory. последнее нужно для "Типичная картина: 1Ска и MS SQL Server на одном хосте" и чтобы плевать на тонкий тюнинг на грани волшебства, пока совсем не припрет. но вы подключайтесь, подключайтесь. если сможете проложить туннель.
Blizna Автор
14.09.2024 13:36Дело не в том, что они его отключили. дело в том, почему они это сделали. А сделали они это потому, что не смогли подключиться, а менять и открывать порты им либо лень, либо они не знают как. Иными словами, разделение той же 1Ски и СУБД на два разных хоста для них задача выше среднего.
Сам MS SQL Server прекрасен. Но вот ходить под статьей не очень хочется. 95% пиратят его именно для 1С. Остальные пять - либо для WSUS, либо для Solidworks PDM. Возможно, еще для каких-то других сервисов. Но пока что я видел только это.
khgvghv
14.09.2024 13:36А для WSUS'а и Solid'а разве не бесплатные движки MSSQL ставятся?
Blizna Автор
14.09.2024 13:36Технических деталей не знаю. Может, там была вообще версия Express. Зря написал про них. Надо себя отучать писать о том, в чем не уверен.
А вот 1Ска это да, главная проблема. Как бы есть готовая сборка на PostgreSQL, которая работает как надо, но все равно люди сидят на MS SQL Server. Не настолько же большая проблема переобучиться и перенести базы (если организация не работает 24/7 и не крупная). Надо с нескольких сторон к вопросу подходить.
khgvghv
14.09.2024 13:36+1Документация. Она слишком подробная. 90% информации вам никогда не пригодится.
...
Но вот как можно было оставить 25% для общих буферов – я не понимаю. Почему нельзя было просто написать, что у всех все будет разное, а также хотя бы примерный алгоритм расчета.Пожалуйста, читайте документацию.
https://www.postgresql.org/docs/{8.3...17}/runtime-config-resource.htmlIf you have a dedicated database server with 1GB or more of RAM, a reasonable starting value for shared_buffers] is 25% of the memory in your system. There are some workloads where even large settings for shared_buffers are effective, but because PostgreSQL also relies on the operating system cache, it is unlikely that an allocation of more than 40% of RAM to shared_buffers will work better than a smaller amount.
А если почитаете, и она все равно покажется вам недостаточно подробной, вспомните, что это не свалившаяся с неба халява, а развиваемый сообществом продукт, вносите свой вклад.
Blizna Автор
14.09.2024 13:36Да, согласен. Но вот есть реалии, и выходим мы из дома в 7-8 утра, и возвращаемся к 7 в лучшем случае, полностью измотанными. И так пять-шесть дней в неделю. Да, надо учится. Но не у каждого есть силы и время.
Про тот же shared_buffers я уже все написал. Там действительно лучше задать 40% (если памяти хватает). Производительность, может, и не вырастет (об этом сказано в документации напрямую), но вот нагрузка на дисковую подсистему снизится точно.
rinace
14.09.2024 13:36Там действительно лучше задать 40%
И с большой вероятностью получить ожидания Buffer pin
И гадать - как же так , shared buffer большой и производительность не растет , а даже наоборот
Blizna Автор
14.09.2024 13:36Все зависит от нагрузок. Подобрать значение для достижения максимальной производительности крайне сложно. Да в целом для подавляющего большинства это и не требуется (сужу только по своему опыту). Ну, будет 25,3 попугая вместо 25. Не особо критично же. Главное, не оставлять 128MB. Да и про снижение нагрузки на диск не надо забывать, это ведь тоже важно. А учить устройство кеша, и что такое это ваше закрепление буфера, такие сисадмины-универсалы (как я) не будут. Если вы работаете большую часть времени именно с PostgreSQL - то однозначно да, учить надо. Но вот есть я, и есть другие сисадмины-универсалы, которым нужно готовое решение и практика. Когда работаешь с 20 разными технологиями, это очень чувствуется: не надо учить то, что не будешь использовать на практике. Это же вы вроде мне писали, что сисадмин - это тупиковый путь развития, или что-то такое. Может быть, но сисадмины-универсалы тоже ведь нужны. Мы же не в идеальном мире живем, где каждый делает свое дело и хорош именно в этом. Эникейство составляет примерно 3/5 моего рабочего времени, если честно (если не больше), как и у многих других. Надеюсь, мысль донес.
rinace
14.09.2024 13:36Подобрать значение для достижения максимальной производительности крайне сложно.
И нецелесообразно. Полученный эффект не стоит затраченного времени.
сисадмины-универсалы тоже ведь нужны.
Особенно жадным работодателям. Ага, просто находка.
Надеюсь, мысль донес.
Мысль понятна, зачем вы за это цепляетесь , особенно учитывая текущую ситуацию на рынке труда и легкую возможность работать удаленно. Лично мне не совсем понятно.
Blizna Автор
14.09.2024 13:36С первым согласен. В первой части статьи уже все расписал.
Да, есть жадные мрази. И даже не жадные, а, скорее... не знаю, как объяснить. Просто вот есть точка зрения нас, наемных рабочих, простых людей, а есть точка зрения тех, кто сидит там наверху (их я к людям не отношу). И они прекрасно видят, откуда деньги приходят и куда уходят. Никто не станет в здравом уме держать 10 специалистов по направлению системного администрирования в фирме, где всего 100-150 сотрудников. Максимум - утвердят должность помощника. А это бюджет, а это надо организовать рабочее место. В общем, проблем много.
Мы с вами просто в разных вселенных.
Ну, вы, наверное, можете себе позволить работать 90-100% рабочего времени удаленно, из дома или еще откуда-то. А вот я и большинство, наоборот, - максимум 10%.
khgvghv
14.09.2024 13:36+1Выкинуть из рабочего дня картриджи и макбуки генеральных, и процент возможной удаленки сразу подрастет.
Blizna Автор
14.09.2024 13:36Как только так сразу. Если я найду подобную работу - буду держаться за нее всеми 27 оставшимися зубами. А пока что мне платят и за это тоже. Начну бузить - они просто найдут кто-то еще. Если бы у меня была своя квартира, и мне каждый месяц на карту просто бы так, ни за что приходило хотя бы 30 тыс. деревянных - честно, я бы вообще не работал. А вот как бы реальность, и нужны деньги.
rinace
14.09.2024 13:36А вот я и большинство, наоборот, - максимум 10%.
Почему ? В чем проблема ? hh точка ру по моему 99% вакансий "можно из дома".
Я спасибо ковиду и удаленке, иначе найти DBA в Москве например было практически нереально. А сейчас география специалистов по всей России .
Sleuthhound
14.09.2024 13:36Ужасные статьи. Уровень технической грамотности, а так же изложения в районе плинтуса. Не понимаю зачем Вы их написали. Не дай бог какому-то новичку прочитать эти статьи и что-то начать делать по ним.
Blizna Автор
14.09.2024 13:36Почитайте другие комментарии. Некоторые люди указывали на конкретные ошибки и недочеты, я их признавал и исправлял. Не с первого раза, но исправлял. А ваше "Все не так и все не то" это пустой звук. Я уже писал статьи до этого, и прекрасно знаю, что конкретики добиться от людей с подобными заявлениями не получится. Но все же сделаю вид, что я воспитанный человек, и попрошу вас указать на конкретные недочеты и с чем конкретно вы не согласны.
Все люди ошибаются. Каждый в чем-то прав и в чем-то не прав. Вы должны это понимать.
rinace
Это чрезвычайно смелое , граничащее с авантюрой , утверждение .
Blizna Автор
Да, в идеальном мире все прекрасно. Но как бы есть реальность, и если написать людям, что мониторить надо 100 параметров, то они просто забьют. Большинство сисадминов - универсалы, они не станут учить PostgreSQL до дыр, у них нет на это ни сил, ни времени. При использовании той же репликации крайне важно мониторить слоты, но это выходит за рамки статьи.
rinace
Ну начнём с того , что аварийные остановки СУБД вызванные недостатком дискового пространства составляют пренебрежительно малую часть от всех причин.
А на производительность СУБД количество свободного места на диске не влияет вообще никак .
Скажу более - мониторинг свободного места в файловой системе это вообще не зона ответственности DBA.
По уровню важности это не на первом месте и даже на не на втором.
Лаг репликации - важнее.
Я не знаю кто это такие "сисадмины". Я всю жизнь работал и продолжаю работать как Data Base Administrator.
Универсал , это значит и там и сям и тут и там , везде по чуть чуть и нигде по настоящему .
Не надо мониторить 100 параметров .
Что надо мониторить DBA описано не один и не два а много раз во многих статьях и докладах.
Мы например мониторим:
Производительность СУБД
Количество активных сессий
Ошибки СУБД
Время отклика
Query per second
Transaction per second
Количество прочитанных блоков в секунду
Количество записанных блоков в секунду
Количество измененных блоков в секунду
[Лаг репликации]
Blizna Автор
Большое спасибо за развернутый ответ. У меня нет сомнений в вашей квалификации. Но вот просто есть реальность, и есть определенный пласт сисадминов-универсалов, которые работают со всем понемногу. Возможно, вы тоже были в их числе. Мне трудно представить, как вы всю жизнь работали именно DBA. Сегодня добавляем учетку в AD, проверяем Zabbix, меняем картридж и помогаем поставить на макбук генерального MS Office, потом обновляем 1Ску бухгалтеру - вот так примерно выглядит рабочий день сисадмина-универсала (это если нет помощника-эникея, а если есть то повезло). Это не хорошо и не плохо, просто это реальность. Я не утверждаю, что учить PostgreSQL не надо. Просто это надо не всем, да и сил и времени нет. Но вы DBA, причем настоящий, так что мы просто в разных вселенных немного.
Про свободное место - это, скорее, либо я где-то ошибся, либо это SSD. Про 100 - мог написать и 100500.
Еще раз спасибо. Для многих информация о том, что надо мониторить, будет полезна. Кстати, что вы думаете о PoWA?
rinace
Это было очень давно, во времена работы в банках, и при первой же возможности я ушел из этой области .
Начал программистом на C , C++, Delphi. Потом относительно недолгий период то, что сейчас называют сисадмином . Потом DBA.
Просто личный совет - сисадминство это тупиковый путь эволюции айтишника.
Ничего не думаю. Повторюсь , я DBA у меня другие задачи . Мониторингом я не занимаюсь . Иногда ставлю задачи группе мониторинга по настройке кастомных метрик . Как работает мониторинг и какой инструментарий мне все равно. Пусть каждый занимается своим делом - DB Service , Unix service , Virtualization Service , Storage service , Backup Service , Monitoring Service etc.
monpa
Трижды ха.
Blizna Автор
Ну как бы да. Есть умники, которые отключают автовакуум, а через пару месяцев получают free disk space 1% и FATAL. Ну или разработчики приложения большие молодцы, написали мега-запрос, который родил огромный временный файл (ну или временную таблицу для сеанса).
monpa
не, квота на диск с максимальным ростом в единицы процентов в неделю. Каждые несколько месяцев стреляет.
привет из той самой банковской сферы, кек
khgvghv
Не будете же вы утверждать, что значимую часть рабочего времени вас занимает ожидание алярмов по превышению квоты?
tuxi
Надо. Надо следить за местом на диске. У нас как то раз система бекапа сожрала весь диск за какие-то жалкие 12 часов после выкатки на прод ее новой версии (у нас своя система бекапа с блекджеком и ништяками). Это было больно.
rinace
Как эта ситуация повлияла на работоспособность СУБД ? У вас бекап и СУБД в одной файловой системе ? Ну , так это ваш личный выбор и ваши личные проблемы .
DBA не предоставляет и не контролирует сервис backup . Это не моя работа , для этого есть команда BAS.