Найти в Дзене
Код : Доступа

Системные базы SQL Server: тонкости и правила, которые облегчат жизнь DBA

Представь организм без сердца — кровь не качается, жизнь останавливается. В мире SQL Server эту роль играет база master. Она хранит «паспортные данные» всей системы: список баз, логины, параметры конфигурации, настройки безопасности и сервисные объекты. Зачем она нужна? Почему это важно?
Потеря master = сервер становится пустой оболочкой, которая даже не знает, какие базы у неё есть. Поэтому для DBA это самая ценная база после пользовательских. Когда рождается новая база данных, она не появляется «из воздуха». SQL Server берет за основу model и копирует её содержимое. Это как ДНК — от него зависят «врожденные свойства» будущих баз. Зачем она нужна? Почему это важно?
Понимание роли model избавляет от головной боли: десятки новых баз с «неправильными» настройками или странными таблицами можно избежать, если держать model в чистоте. Если master — это сердце, то tempdb — это рабочий стол, где SQL Server разбрасывает бумаги и делает черновые расчёты. В течение дня здесь копится куча врем
Оглавление

1. Master — сердце и паспорт SQL Server

Представь организм без сердца — кровь не качается, жизнь останавливается. В мире SQL Server эту роль играет база master. Она хранит «паспортные данные» всей системы: список баз, логины, параметры конфигурации, настройки безопасности и сервисные объекты.

Зачем она нужна?

  • SQL Server читает master первым при запуске. Если её нет или она повреждена — сервер просто не поднимется.
  • В master хранятся логины, и без неё вы не сможете авторизоваться.
  • Сведения о linked servers, конфигурационных настройках (sp_configure), путях к файлам баз данных.

Почему это важно?

Потеря master = сервер становится пустой оболочкой, которая даже не знает, какие базы у неё есть. Поэтому для DBA это самая ценная база после пользовательских.

2. Model — генетический код новых баз

Когда рождается новая база данных, она не появляется «из воздуха». SQL Server берет за основу model и копирует её содержимое. Это как ДНК — от него зависят «врожденные свойства» будущих баз.

Зачем она нужна?

  • В неё попадают все новые базы данных (структура, настройки).
  • Если в model изменён recovery model, collations или включены параметры автосоздания объектов — это автоматически унаследует каждая новая база.
  • Если DBA нечаянно добавил таблицу или объект в model, эта «ошибка» будет клонироваться везде.

Почему это важно?

Понимание роли model избавляет от головной боли: десятки новых баз с «неправильными» настройками или странными таблицами можно избежать, если держать model в чистоте.

3. Tempdb — рабочий стол SQL Server

Если master — это сердце, то tempdb — это рабочий стол, где SQL Server разбрасывает бумаги и делает черновые расчёты. В течение дня здесь копится куча временных объектов, а при перезапуске «уборщица всё выкидывает», и база создаётся заново.

Зачем она нужна?

  • Для хранения временных таблиц (#temp, @table).
  • Для сортировок, хэшей, join-операций и других промежуточных расчётов.
  • Для row versioning в режиме snapshot isolation.
  • Для индексных операций (rebuild, create).
  • Для курсов и CTE, когда не хватает памяти.

Почему это важно?

  • Переполнение tempdb может остановить работу всех запросов на сервере.
  • При плохой настройке (один файл, маленький рост) база становится узким местом.
  • Неверная конфигурация приводит к «битве» за ресурсы и замедлению всех операций.

4. MSDB — память и расписание SQL Server

Если master — это сердце, а tempdb — рабочий стол, то msdb — это память и органайзер. В ней хранится история бэкапов, расписания задач, настройки SQL Agent и почтовые уведомления.

Зачем она нужна?

  • SQL Agent сохраняет в msdb все job’ы, расписания, алерты.
  • История резервных копий — откуда и до какого момента можно восстановить базу.
  • Конфигурации Database Mail (почтовые уведомления).
  • Логирование SSIS-пакетов и других сервисов.

Почему это важно?

Потеря msdb не убьёт сервер, но лишит DBA «памяти о прошлом». Вы не узнаете, какие бэкапы делались и когда, какие задания работали, а какие упали. Восстанавливать всё придётся вручную.

5. User Databases — ради чего всё работает

И наконец, главное — пользовательские базы. Это то, ради чего сервер вообще существует. Все системные базы работают только для того, чтобы ваши приложения могли хранить и обрабатывать данные бизнеса.

Зачем они нужны?

  • В них хранятся данные компании — клиенты, заказы, транзакции, аналитика.
  • Именно они определяют «ценность» сервера.
  • Все настройки системных баз (master, msdb, model, tempdb) влияют на их работу.

Почему это важно?

  • Без master SQL Server не «увидит» ваши базы.
  • Без tempdb они не смогут выполнять даже простых запросов.
  • Без msdb вы потеряете контроль над расписаниями и историей бэкапов.
  • Без model новые базы будут создаваться «как попало».

Заключение

Системные базы SQL Server — это не «фоновый шум», а фундамент работы сервера.

  • master — сердце и паспорт.
  • model — генетический код.
  • tempdb — рабочий стол.
  • msdb — память и органайзер.
  • user databases — бизнес-данные, ради которых всё это живёт.

Зная их роль и правильно настраивая каждую, DBA превращает хаотичный сервер в предсказуемый инструмент, где риски минимальны, а работа — надёжна.