Этапы обслуживания баз MS SQL Server, раз в день
Примерная последовательность этапов обслуживания базы MS SQL
- интеграция с другими сервисами, которые пишут в базу
- перед обслуживанием, чтобы построить индексы после
- бэкап на уровне VM (виртуальной машины)
- во время работы бэкапа ВМ, нельзя делать работы с базой на изменение, может разрастётся снепшот ВМ, нужно делать перед или после всеми обслуживаниями баз данных
- удаление лишнего или перенос в архив из таблиц баз исторических данных
- перед обслуживанием, чтобы построить индексы после
- проверка базы DBCC CHECKDB
- перед всеми, если будет фейл, то не трогаем ничего и выходим, оповещаем
- DBCC CHECKDB WITH PHYSICAL_ONLY быстрее + max dop
- если база совсем большая, то CHECKDB делаем при ресторе базы.
- при Always On нужно чекать все реплики
- обновление статистики
- после обслуживания индексов, возможно с полным сканированием, или совместно с ним
- обновление индексов
- делаем раз в неделю, если нужно и можно и необходимо то каждый день
- Сброс кэша плана выполнения для баз 1С
- Закрытие открытых простаивающих сессий
- сжатие логов
- после всего уменьшим размер, не путаем с сжатием базы
- бэкап полный или diff
- раз в день, нужно дойти до этого этапа даже при фейлах, кроме проверки базы
- чистка бэкапов
- если есть место на диске, то после успешного бэкапа. Если нет места, то перед бэкапом чистим
- чистка системных баз
- после успешного бэкапа
- оповещение о выполнении
- на уровне агента
- c сортировка в почтовом клиенте в отдельную папку с фейлами
- + Zabbix оповещение о не выполненных бэкапах, + не выполненных Job
- на уровне агента
В течении дня
- бэкап diff (все от наличия места под бэкап)
- бэкап логов
- если можем то делаем и шринг их потом
- база в режиме Full
- Важно! при бэкапе логов появляется дополнительные возможность
- восстановления на уровне страниц
- восстановление на любое время, а не только точку бэкапа
Обслуживание MS SQL вручную
- сжатие базы
- только вручную по необходимости и после нужно полное обслуживание индексов
Отказоустойчивость MS SQL Server
- Log Shipping
- поддержка в Std редакции
- можно отложить восстановление дельт логов на какое-то время
- Always On
- поддержка в Ent редакции
- упрощённая версия для одной базы, есть в Std редакции
- появляются особенности бэкапа
- нужно пересматривать этапы бэкапа
- diff лучше не делать, заменить на бэкап логов
- обычно отключают авто переезд нод
- Зеркалирование
- смысла нет, уже надежнее Log Shipping делать
Масштабирование MS SQL
- используем секционирование
- используем файловые группы
- репликации на чтение