Это все подробно описано на этой странице.
В связи с тем, что ваш вопрос конкретно задает вопрос: «Есть ли какие-либо рекомендации Microsoft », я склонен думать, что это нецелесообразно для такого обсуждения здесь. В статье их подробно описан процесс
- Используя либо
- командная строка
- Powershell,
- SQL Server Management Studio (GUI)
- За 2008, 2012, 2014, 2016.
- Для любого
- Database Engine
- или, агент
Будут ли эти шаги удовлетворительными, будет моим мнением, а вы не хотите. Таким образом, правильный ответ всегда будет наиболее актуальным там.
Остановка службы до отключения
Это необходимо или рекомендуется сделать перед выключением сервера, на котором запущены службы SQL.
Нет, это не обязательно. Когда ядро Windows отправляет сигнал на завершение работы на SQL Server, он делает это безопасным способом, и система ожидает его завершения. Говоря в целом, все, что построено с возможностью безопасного выключения, не должно быть отключено вручную, и есть основания полагать, что все приложения Microsoft следуют своему собственному API и процедурам, привязанным к фазам PRESHUTDOWN
или SHUTDOWN
. Из документов PRESHUTDOWN
, которые я предполагаю, они используют,
Уведомляет службу о том, что система будет закрыта. Службы, которым требуется дополнительное время для выполнения задач по очистке сверх ограниченного времени при выключении системы, могут использовать это уведомление. Диспетчер управления службами отправляет это уведомление приложениям, которые зарегистрировались для него, перед отправкой SERVICE_CONTROL_SHUTDOWN
уведомления приложениям, которые зарегистрировались для этого уведомления.
Служба, которая обрабатывает это уведомление, блокирует отключение системы до тех пор, пока служба не прекратит работу или не истечет интервал ожидания предварительного отключения, указанный в параметре SERVICE_PRESHUTDOWN_INFO
. Поскольку это влияет на взаимодействие с пользователем, сервисы должны использовать эту функцию, только если это абсолютно необходимо, чтобы избежать потери данных или значительного времени восстановления при следующем запуске системы.
По мере необходимости, я предполагаю, что так работает SQL Server.