Администратор баз данных отвечает за пять вещей: данные не пропадают, база отвечает, запросы не деградируют, чужие не входят, счёт за железо не растёт вслепую. Эти зоны видно только в инцидентах, поэтому ниже каждая показана одним разбором.
Что написано в профстандарте
Должность описана в профессиональном стандарте 06.011 «Администратор баз данных». Действующая редакция — приказ Минтруда № 408н от 27 апреля 2023 года: он вступил в силу 1 сентября 2023 года, действует до 1 сентября 2029 года и отменил приказ № 647н от 2014 года. Многие тексты о профессии всё ещё ссылаются на старую редакцию.
Цель вида деятельности в стандарте: «Поддержание эффективной работы БД, обеспечивающих функционирование информационных систем в организации». Дальше четыре обобщённых трудовых функции, названия дословно:
| Код | Обобщённая трудовая функция | Уровень квалификации | Трудовых функций |
|---|---|---|---|
| A | Обеспечение функционирования БД | 4 | 8 |
| B | Оптимизация функционирования БД | 5 | 7 |
| C | Предотвращение потерь и повреждений данных при сбоях технического характера | 6 | 7 |
| D | Управление развитием БД | 7 | 8 |
Из этого списка видно, что «администратор» здесь не только тот, кто нажимает кнопки. Уровень 4 — резервное копирование, восстановление, управление доступом, установка и мониторинг. Уровень 6 — «Разработка стратегий, регламентов и процедур резервного копирования и восстановления данных после сбоя технического характера» (C/01.6). Уровень 7 — «Проведение миграции БД на новые платформы и новые версии ПО» (D/06.7).
Пять зон из заголовка — не деление стандарта, а способ сгруппировать его функции по тому, что ломается:
| Зона | Функции стандарта |
|---|---|
| Сохранность | A/01.4 «Резервное копирование данных в штатном режиме», A/02.4 «Восстановление данных», C/01.6, C/02.6 |
| Доступность | C/03.6 «Локализация и устранение причин сбоев технического характера в работе БД», C/04.6 «Минимизация рисков сбоев технического характера, приводящих к потере и повреждению данных» |
| Производительность | B/01.5 «Мониторинг работы БД», B/03.5 «Повышение производительности БД путем оптимизации выполнения запросов к БД» |
| Безопасность | A/03.4 «Управление доступом к БД», A/08.4 «Выявление инцидентов ИБ при обеспечении функционирования БД», C/07.6 «Администрирование встроенных подсистем и средств защиты информации в БД» |
| Стоимость | ближайшие: B/06.5 «Подготовка предложений по модернизации программно-аппаратных средств поддержки БД», D/01.7 «Подготовка предложений по перспективному развитию БД» |
Со стоимостью в стандарте слабее всего: слова «стоимость» или «бюджет» в названиях функций нет. Эта зона добавлена отдельно, потому что в облаке именно решения DBA превращаются в строку счёта.
Пять зон DBA и инцидент, который каждую показывает
Сохранность: GitLab, 31 января 2017
Инженер GitLab.com стёр каталог данных PostgreSQL, «errantly thinking they were doing so on the secondary», то есть ошибочно считая, что работает на вторичном сервере. К моменту остановки удалено около 300 ГБ. В разборе компании сказано: «Unfortunately the process of both finding and using backups failed completely». Потеряны данные, созданные в окне с 17:20 до 23:30 UTC; оценка — не менее 5000 проектов, 5000 комментариев и около 700 пользователей.
Что DBA делает до. Восстановление проверяют восстановлением, а не наличием файла: в вакансии ЛАНИТ-Интеграция это записано как «Организация резервного копирования и регулярная проверка восстановления данных». В стандарте за это отвечает C/02.6, контроль соблюдения регламентов и процедур резервного копирования и восстановления. Ещё до — разделение окружений: команда, выполненная в не том терминале, не должна быть возможной.
Что DBA делает во время. Прекращает любые команды, которые меняют состояние уцелевшего, и ищет самую свежую копию, которую можно поднять. Решение «из чего восстанавливать и сколько часов потерять» принимается один раз и записывается; в разборе GitLab потери названы числами и временным окном.
Механика бэкапов и проверки восстановления разбирается в разделе «Бэкапы и восстановление» этого справочника.
Доступность: Sentry, 20 июля 2015
Sentry не работал большую часть рабочего дня в США. Причина — счётчик идентификаторов транзакций PostgreSQL подошёл к пределу, и база остановила запись, чтобы не повторять идентификаторы. Команда ждала завершения vacuum около трёх часов, затем решила очистить одну очень большую таблицу и принять потерю данных в ней: «Five minutes later, the system was fully restored». После инцидента они снизили autovacuum_freeze_max_age (прежнее значение в разборе названо слишком высоким), увеличили число процессов и память для обслуживания и завели отдельные машины под обслуживание.
Пороги не секрет: документация PostgreSQL 18 требует обработать каждую таблицу каждой базы vacuum-ом не реже, чем раз в два миллиарда транзакций. За 40 миллионов транзакций до предела сервер начинает предупреждать, а когда остаётся меньше трёх миллионов, перестаёт выдавать новые идентификаторы: остаются только транзакции на чтение. Код хранит те же числа константами в SetTransactionIdLimit:
xidStopLimit = xidWrapLimit - 3000000;
if (xidStopLimit < FirstNormalTransactionId)
Постоянная ссылка: varsup.c, строки 405-406, REL_18_6. Строка 405 вычисляет границу остановки: за три миллиона транзакций до предела. Порог предупреждения — строка 419, xidWarnLimit = xidWrapLimit - 40000000;.
Что DBA делает до. Следит за возрастом самой старой незамороженной транзакции в каждой базе и настраивает autovacuum заранее, пока запас измеряется сотнями миллионов, а не тысячами. Запрос на возраст и разбор причин, из-за которых vacuum не успевает, — в статье VACUUM и autovacuum.
Что DBA делает во время. Не перезапускает сервер ради «починки» и не пытается отключать autovacuum, а запускает обычный VACUUM по самым старым таблицам: документация прямо пишет, что останавливать сервер и входить в однопользовательский режим не нужно. Если очистка не успевает, выбор остаётся тем же, что у Sentry, — между временем и данными; важно сделать его осознанно и зафиксировать.
Производительность: запрос, который стал в восемь раз медленнее
Самый старый из пяти разборов: 6 октября 2007 года в рассылку pgsql-performance пришло письмо; на PostgreSQL 8.2.4 и 8.2.5 запрос выполнялся 181,829 мс до ANALYZE и 1472,613 мс после. План переключился с Bitmap Heap Scan на Index Scan Backward; внутренний узел выполнялся 6229 раз. Фактическое число строк осталось прежним, изменились оценки. С enable_indexscan = 0 время вернулось к 183,160 мс.
Документация PostgreSQL 18 описывает этот класс отказа прямо: статистика приблизительна и «will change slightly each time ANALYZE is run», а «in rare situations, this non-determinism will cause the planner’s choices of query plans to change after ANALYZE is run». Причина в треде 2007 года не названа: вся база там занимала 8 МБ, и автор не считал виновной выборку. Вывод другой: деградация без изменения кода и данных реальна, и обнаружить её можно только при сравнении планов.
Что DBA делает до. Хранит планы важных запросов и мониторит время их выполнения (B/01.5, B/03.5). Что читать в плане и как сравнивать оценки с фактом — в статье EXPLAIN ANALYZE BUFFERS.
Что DBA делает во время. Сначала исключает не-план: запрос может стоять не в плане, а в очереди за чужой блокировкой, и тогда помогает поиск блокирующего запроса, а не статистика. Затем сравнивает свежий план со старым, меняет одно условие за раз и записывает результат, как в треде 2007 года: три измерения, одно переключение настройки.
Безопасность: Meow, июль 2020
В июле 2020 года неизвестные стирали данные в базах, доступных из интернета, и оставляли слово «meow». TechTarget 23 июля сообщал о более чем тысяче стёртых баз (в обновлении от 28 июля — более 4600). Пострадали Elasticsearch, MongoDB и другие, среди них более 50 баз Redis. Elastic заявил, что у затронутых кластеров «did not have any of our free or paid security features enabled», MongoDB — что затронуты были установки бесплатной Community-версии, не Enterprise Advanced и не Atlas.
Здесь нет изобретательного взлома: база слушала внешний интерфейс без защиты. Что DBA делает до: A/03.4 «Управление доступом к БД» — закрытый сетевой доступ, аутентификация, роли с минимальными правами и проверка, что порт не виден снаружи. Во время: A/08.4 «Выявление инцидентов ИБ при обеспечении функционирования БД» — изолировать узел, сменить учётные данные, определить, что прочитано и что стёрто, и поднять данные из копии. Последний шаг возвращает к первой зоне: без проверенного бэкапа любой инцидент безопасности превращается в потерю данных.
Конкретные настройки доступа разбираются в разделе «Безопасность и соответствие» этого справочника.
Стоимость: диск, за который платят, даже если он простаивает
Публичного инцидента с цифрами для этой зоны не нашлось, поэтому она показана по документации. Для Amazon RDS с PostgreSQL документация указывает: у gp3 при размере 20–399 ГиБ базовая производительность хранилища — 3000 IOPS и 125 МиБ/с, при размере от 400 ГиБ — 12 000 IOPS и 500 МиБ/с. Для Provisioned IOPS (io2) диапазон — от 1000 до 256 000 IOPS, и «you are charged for the provisioned resources whether or not you use them in a given month».
Выбор хранилища сводится к двум ошибкам с разным знаком. Взяли io2 «на вырост» и платят за IOPS, которые база не использует. Или остались на gp3, пока ReadIOPS и WriteIOPS не приблизились к лимиту, и запросы встали в очередь. Документация RDS советует поднимать лимит, если TotalIOPS регулярно приближается к выбранному значению, — то есть решение нужно принимать по метрикам, а не по размеру базы.
Что DBA делает до. Снимает метрики нагрузки на диск и сравнивает их с оплаченным уровнем. Часть этой нагрузки создаёт сама база: раздутый индекс читается и пишется целиком, как измерить это и когда перестраивать — в статье Bloat индексов. Что DBA делает во время: готовит предложение (B/06.5) с числами «сейчас — вариант — разница» и отдаёт его тому, кто подписывает счёт.
Что просят в вакансиях
27 октября 2026 года поиск hh.ru «администратор баз данных» по России показал 499 вакансий. Ниже шесть вакансий из первой выдачи, требования выписаны из их текстов. Пять в таблице; шестая — «Старший администратор баз данных» ЗАО КонсультантПлюс — оказалась технологической обработкой документов и проставлением гиперссылок, без СУБД.
| Вакансия | Опыт | Требования из текста вакансии | Деньги |
|---|---|---|---|
| ООО Тера Интегро | 1–3 года | Greenplum и MPP-архитектура, Linux, Bash, «Знание SQL на уровне выполнения административных операций и диагностики», резервное копирование и восстановление, анализ загрузки CPU, RAM, диска и сети | не указаны |
| АО Комбинат КМАруда | 1–3 года | серверы 1С, MS SQL и PostgreSQL, Windows Server и Linux, регламентные задания, политики резервного копирования, отказоустойчивая конфигурация | «от 106 000 ₽ за месяц, до вычета налогов» в вакансии от 27.10.2026 |
| ЛАНИТ-Интеграция | 1–3 года | PostgreSQL в кластере Patroni, бэкап и проверка восстановления, Zabbix и Grafana, репликация, EXPLAIN и EXPLAIN ANALYZE, Linux, «Опыт восстановления после сбоя или аварии» | не указаны |
| Группа компаний НВМ | «более 6 лет» в карточке, «от 3-х лет» в тексте | MS SQL Server и PostgreSQL, 1С, бэкап, Always On и потоковая реплика, управление доступом, требования ИБ, перевод на отечественные СУБД, Zabbix | «от 230 000 ₽ за месяц, на руки» в вакансии от 27.10.2026 |
| АО АКБ МОСНАРБАНК | 3–6 лет | «опыт работы в АБС на уровне пользователя», план счетов, MS Office; обязанности — ввод данных, контроль балансовых форм, электронный архив | не указаны |
Деньги указаны в двух вакансиях из пяти; это две строки, а не рыночная оценка. Что видно в самих текстах:
- Название не равно работе. Из шести открытых вакансий две (МОСНАРБАНК, КонсультантПлюс) не про администрирование СУБД. Читай обязанности, а не заголовок.
- Бэкап и восстановление есть в четырёх вакансиях из четырёх про СУБД. Это зона «сохранность».
- Отказоустойчивость — в трёх. КМАруда, ЛАНИТ и НВМ просят репликацию или кластер; у Тера Интегро ближайшее — «восстановление сегментов». Это «доступность».
- Оптимизация запросов названа в двух. ЛАНИТ и НВМ. Остальным нужен «мониторинг» или «диагностика».
- Доступ и ИБ названы явно в одной (НВМ). Остальные подразумевают это, не записывая.
- Стоимость не названа ни в одной. Это не значит, что DBA её не касается; значит, что работодатели пока не формулируют её как требование.
- Нужны смежные навыки. Linux назван в трёх вакансиях из пяти, мониторинг (Zabbix, Grafana) в двух, 1С в двух.
DBA, DevOps и разработчик: кто за что отвечает
Граница проходит по тому, что именно ты можешь сломать. Разработчик отвечает за запрос и схему: должен повторять транзакцию после 40001 (см. уровни изоляции). DevOps отвечает за то, на чём работает база: узлы, сеть, развёртывание, образы. DBA отвечает за состояние самих данных и за то, как база ведёт себя под нагрузкой: сколько осталось до wraparound, какой план выбрал планировщик, можно ли поднять данные из копии за час.
В вакансиях эти роли смешиваются, и это нормально для небольших компаний: ЛАНИТ просит Patroni, Zabbix и EXPLAIN ANALYZE в одном объявлении. Но смешение в одном человеке не отменяет различия: инцидент Sentry не лечится ни деплоем, ни переписыванием запроса. Его лечит знание того, что делает VACUUM и сколько транзакций осталось.
Что из этого следует
Профессия описывается не набором команд, а набором ответственностей, и каждая видна только в отказе. Поэтому порядок чтения справочника DBA такой же: сначала то, как база лежит на диске (раздел 1), затем транзакции и версии строк, затем журнал, индексы, планировщик и обслуживание. Чтобы не ждать отказа, учись на его механике: для зоны «производительность» это планы запросов, для зоны «доступность» — vacuum.
Чек-лист самопроверки
- Назови для своей базы дату последнего восстановления из копии и сколько оно заняло. Если ответа нет, зона «сохранность» не закрыта.
- Найди возраст самой старой незамороженной транзакции и сравни с порогом в 40 миллионов до предела.
- Выбери три самых тяжёлых запроса и сохрани их планы сейчас, до деградации.
- Проверь, видна ли база снаружи сети и чем она защищена.
- Сравни оплаченные IOPS с реальными
ReadIOPSиWriteIOPSза месяц.
Частые вопросы
Чем администратор баз данных отличается от разработчика баз данных
Разработчик проектирует схему и пишет запросы, администратор отвечает за работу готовой базы: копии, доступность, нагрузка, доступ. В профстандарте 06.011 за администратором закреплены функции A–D из таблицы выше; проектирование схемы и прикладных запросов среди них не названо.
Сколько получает администратор баз данных
В статье только две цифры из двух вакансий на 27 октября 2026 года: «от 106 000 ₽ за месяц, до вычета налогов» (КМАруда, опыт 1–3 года) и «от 230 000 ₽ за месяц, на руки» (НВМ, опыт более 6 лет). Это нижние границы из двух объявлений, а не среднее по рынку.
Нужно ли знать несколько СУБД
В пяти разобранных вакансиях PostgreSQL назван в трёх (КМАруда, ЛАНИТ, НВМ), MS SQL Server в двух, Greenplum в одной; ClickHouse и ArangoDB ЛАНИТ называет желательными. Часть вакансий просит один движок, часть два: единого ответа выборка не даёт.