Некоторая часть нашей работы не слишком очаровательна, но необходима. Например, мне приходится чистить парик Боба Дилана каждую неделю, чтобы быть уверенным в его красоте и блеске. Документирование - это как раз та задача, которую многие не хотят начинать, которую тяжело поддерживать актуальной и, в общем, работы над которой стараются избегать.
Прекратите отлынивать и получите от этого пользу.
Самая трудная часть в документировании - начать, так что я бы хотел помочь именно с этим, и дать вам перечень того, что нужно документировать. Эта работа, конечно, займет время, и не будет столь же интересна как тюнинг запросов для их ускорения с 20 минут до 2 секунд, но это может сэкономить вам дни работы в будущем.
Вы можете назвать это вашей SQL Server справочник по эксплуатации, SQL Server документацией или SQL Server - лучшие практики поддержки, что вам больше подходит в существующем у вас окружении. Приложите усилия, чтобы заполнить этот список для всех ваших серверов, поддерживайте его в актуальном состоянии, и, в скорости, вы поймете его преимущества.
Загрузите, если нужно, шаблон "SQL Server справочник по эксплуатации", а если вам нужен пример, то он вот здесь - "Пример справочника по эксплуатации для SQL Server".
Серверные настройки.
Вам понадобится базовая информация о вашем сервере, так что если вам придется его восстанавливать, вы сделаете его таким же, каким он и был.
- Количество и тип CPU.
- Объем используемой памяти.
- Система хранения - тип и количество.
- Настройки SAN (если есть).
- Имя сервера.
- Имя экземпляра.
- Версия и редакция SQL Server.
- Сервисная учетная запись.
- Максимальное и минимальное значения использования памяти.
- Настройки сортировки строк (Collation).
- Настройки флагов трассировки.
- Опции, настроенные на значения НЕ по-умолчанию, такие как MAXDOP или настройка на оптимизацию ad-hoc запросов.
- Кластеризация
- Имя виртуального сервера.
- Виртуальный IP адрес.
Базы данных.
Каждая БД вашего сервера, включая системные БД, должна быть хорошо документирована. Помимо знаний о том, что БД содержит, вы также должны знать, зачем эта БД вообще существует, и к кому обращаться в случае вопросов.
- Наименование.
- Назначение.
- Для какого приложения или программы нужна эта БД.
- Кто владелец (персона, отдел, департамент).
- Связаны ли между собой несколько БД, нужно ли их восстанавливать на одном сервере и/или восстановление должно идти в определенном порядке?
- Расположение файлов данных и файлов логов.
- Настройки режима восстановления.
- Расписание бэкапа и расположение файлов бэкапа.
- Настройки collation.
- Информация о таблицах, представлениях, сохраненных процедурах и функциях, такие как имена таблиц и колонок, значения по-умолчанию и параметры подпрограм.
- Список ролей.
- Список пользователей и их привелегий.
- Разрешен ли log shipping?
- Какой экземпляр используется для восстановления?
- Частота выполнения бэкапов.
- Разрешено ли зеркалирование?
- Режим зеркалирования.
- Главная БД или зеркало
- Экземпляр для главной БД или зеркала.
- Реплицирование.
- Тип реплицирования.
- Публикант, подписчик или дистрибьютор.
- Имя сервера для дистрибуции.
Безопасность.
Очень важно иметь правильно настроенный, с точки зрения безопасности, SQL сервер. Только те пользователи, которым необходим доступ к серверу, должны такой доступ получать, а разрешения на данные должны быть минимально достаточными.
- Настройки аутентификации.
- Логины - Windows или SQL аутентификация.
- Какой роли дан логин.
- Список БД для которых есть разрешения данному пользовательскому логину и список ролей в этих базах.
- Серверные роли.
- Разрешения (Credentials).
- Сертификаты.
- Прилинкованные сервера.
- Имя.
- Тип.
- Логин / Контекст безопасности.
Параметры обслуживания / Агентские задачи.
Много важных задач могут быть настроены, в том числе и на запуск по расписанию, на вашем сервере БД, такие как бэкапы, восстановления, скрипты обслуживания БД.
Документируйте их также, так что вы будете знать за что каждая задача отвечает, и сможете пересоздать их в случае аварии.
- Наименование.
- Цель.
- Владелец.
- Выполняемые задачи.
- Расписание.
- Есть ли зависимые (зависящие) задачи и нужно ли запускать эти задачи в определенном порядке?
Все, что нарушает рекомендованные практики использования, и причины этого.
Разрешен ли у вас запуск xp_cmdshell для некоторого приложения, использующего БД? Все ли связанные сервера используют аккаунт SA? Все специальные случаи должны быть задокументированы и объяснены. В случае чрезвычайных обстоятельств, вам не очень захочется раздумывать, почему все эти вещи были включены. Вам также понадобится эта информация в готовом виде для того, кто будет поддерживать данный экземпляр.
Выгода больше усилий.
Вы поблагодарите себя за проделанную работу. Не дайте этой задаче перегрузить вас - начните с одного сервера, и продолжайте описывать сервера по всему парку. Как только вам понадобится пересобрать сервер, научить нового DBA, или объяснить какую специфическую работу выполняет некоторый агент, вы высоко оцените затраченное когда-то время.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.