Aktuell habe ich das Problem, dass ein Microsoft-SQL-Server immer mal wieder Performance-Spitzen erlebt und dadurch nicht mehr erreichbar ist.
Da ich aktuell jedoch bedingt Zeit habe um eine große Analyse durchzuführen und auch Test-Instanzen unserer Software auf dem Server liegen, bringt eine tiefgehende Analyse leider erst einmal noch nichts. Zumal diese Update-Instanzen durchaus auch dafür verantwortlich sein könnten, aber auf Dauer sowieso wieder verschwinden werden. Daher starte ich einfach den SQL-Server einmal täglich (vornehmlich nachts) via Powershell einmal durch.
Hier das Skript für Euch, welches alle aktuell laufenden Dienste des SQL-Servers ermittelt, diese beendet und neustartet:
Get-service *SQL* | Where-Object {$_.status -eq "Running"} | #Stop-Service -Force
% {
$service = $_
$serviceName = $service.Name
Write-Host $serviceName
Stop-Service -Name $serviceName -Force
Start-Service -Name $serviceName
}
Ist jetzt kein großes Hexenwerk, verschafft mir aber einiges an Zeit 🙂
Wann ist ein Neustart nötig?
SQL Server-Dienste müssen in verschiedenen Situationen neu gestartet werden: Nach Konfigurationsänderungen am Speicher oder an der maximalen Anzahl paralleler Verbindungen, nach dem Einspielen von Updates, oder wenn der Server aufgrund von Speicherlecks langsamer wird. Durch die Automatisierung mit PowerShell kannst du Neustarts zu geplanten Wartungsfenstern durchführen, ohne manuell eingreifen zu müssen.
Fehlerbehandlung und Logging
Für den produktiven Einsatz empfiehlt es sich, das Skript um eine Fehlerbehandlung und Logging zu erweitern. Mit try/catch in PowerShell kannst du Fehler abfangen und in eine Logdatei schreiben. Außerdem solltest du vor dem Neustart prüfen, ob noch aktive Verbindungen bestehen, und gegebenenfalls eine Wartezeit einbauen.
Geplante Aufgaben
Um den Neustart regelmäßig durchzuführen, kannst du das Skript als geplante Aufgabe (Scheduled Task) in Windows einrichten. So wird der SQL Server beispielsweise jeden Sonntag um 3 Uhr nachts automatisch neu gestartet, wenn der Serverlast am geringsten ist.
Weiterführende Artikel
Wenn dir dieser Artikel gefallen hat, könnten dich auch diese Beiträge interessieren:
Mehr Artikel entdecken
Exceptions und Fehlermeldungen eines ESP-Mikrocontroller entschlüsseln
Immer wieder kommt aus vor, dass die Mikrocontroller einfach abstürzen und Fehlermeldungen und Exceptions werfen und im schlimmsten Falle auch in einer Boot-Schleife festhängen. Dann ist es sinnvoll die Ausgabe des Serial-Ports zu begutachten und den Exception-Stack zu analysieren. Dieser ist aber in der Regel recht kryptisch. In diesem Artikel
Text automatisiert in Bilder einfügen mit Python
Da ich für diesen Blog einige Beiträge vorab schreibe und diese entsprechend plane, hatte ich immer wieder das Problem, dass ich Bilder „manuell“ bearbeiten musste. Durch die manuelle Bearbeitung der Titelbilder war auch teilweise keine Linie vorhanden, um damit den Wiedererkennungswert zu gewährleisten. Zusätzlich dazu brauchte ich auch immer ein
Git: Die Geschichte, Anwendung und Vorteile der Quellcodeverwaltung
Git erklärt: Geschichte, Nutzung und Vorteile der Quellcodeverwaltung. Lerne Branching, Befehle und Produktivitätssteigerung! 🚀
Edge: Screenshots einer Seite erstellen ohne Addons
Komplette Screenshots von Websiten erstellen in Microsoft Edge. Ich zeige dir wie das ohne Addons geht 📸