Wszystko to jest szczegółowo wyczerpujące na tej stronie.
Biorąc pod uwagę, że twoje pytanie konkretnie brzmi „czy są jakieś zalecane przez Microsoft ”, skłonny jestem sądzić, że prowadzenie dyskusji tutaj przynosi efekt przeciwny do zamierzonego. W artykule szczegółowo opisano proces
- Używając albo
- wiersz poleceń
- PowerShell,
- SQL Server Management Studio (GUI)
- Dla 2008, 2012, 2014, 2016.
- Dla obu
- Silnik bazy danych
- lub Agent
To, czy kroki te są zadowalające, byłoby moim zdaniem, czego nie chcesz. Dlatego właściwa odpowiedź zawsze będzie tam najbardziej aktualna.
Zatrzymywanie usługi przed wyłączeniem zasilania
jest to konieczne lub zalecane przed zamknięciem serwera, na którym działają usługi SQL.
Nie, to nie jest konieczne. Gdy jądro systemu Windows wyśle sygnał do zamknięcia programu SQL Server, zrobi to w bezpieczny sposób, a system będzie czekać na jego zakończenie. Mówiąc ogólnie, wszystko zbudowane ze zdolnością do bezpiecznego wyłączania nie musi być wyłączenie ręcznie, a to ma się rozumieć wszystkie aplikacje Microsoft śledzić własne API i procedur sznurowania do PRESHUTDOWN
lub SHUTDOWN
faz. Z dokumentów PRESHUTDOWN
, które, jak zakładam, używają,
Powiadamia usługę, że system zostanie zamknięty. Usługi, które potrzebują dodatkowego czasu na wykonanie zadań czyszczenia poza ścisłym ograniczeniem czasu przy zamykaniu systemu, mogą korzystać z tego powiadomienia. Menedżer kontroli usług wysyła to powiadomienie do aplikacji, które się dla niego zarejestrowały, przed wysłaniem SERVICE_CONTROL_SHUTDOWN
powiadomienia do aplikacji, które zarejestrowały się dla tego powiadomienia.
Usługa, która obsługuje to powiadomienie, blokuje zamknięcie systemu, dopóki usługa się nie zatrzyma lub upłynie limit czasu oczekiwania na ponowne uruchomienie SERVICE_PRESHUTDOWN_INFO
. Ponieważ wpływa to na wygodę użytkownika, usługi powinny korzystać z tej funkcji tylko wtedy, gdy jest to absolutnie konieczne, aby uniknąć utraty danych lub znacznego czasu przywracania przy następnym uruchomieniu systemu.
W razie potrzeby zakładam, że tak działa SQL Server.