Problem
Die Update-Bereinigung des 2008er WSUS Serverdienstes bricht nach langer Laufzeit ab. Der Assistent läuft bei hoher CPU-Auslastung sehr lange, tut aber augenscheinlich nichts. Es werden keine Updates entfernt und der Asistent bleubt nach einer Weile mit einem Timeout-Fehler stehen.
Fehlermeldung:
Beim ausführen eines Datenbankvorganges ist ein Fehler aufgetreten. Dies kann geschehen, wenn die Datenbank sehr ausgelastet, der Datenbankdienst beendet wurde oder die Verbindung mit der Datenbank getrennt wurde.
Lösung
Wenn die Windows-eigene SQL-Instanz (WSSEE) aus dem Lieferumfangt genutzt wird, muss hier erst der pipe-Zugriff erlaubt werden („piped pipes“). Per Default ist der Zugriff abgeschaltet.
- Den „SQL Server Configuration Manager“ (im Lieferumfang vom SQL Management Studio) installieren, starten
- Protokolle für „MICROSOFT##SSEE“ auswählen in den Eigenschaften das „Instanz verstecken“-Feld auf „nein“ stellen.
- Dienst neu Starten
- SQL Server Configuration Manager > SQL Native Client Konfiguration > Aliase > Rechtsklick auf den Alias „<servername>\Microsoft##SSEE“ > Eigenschaften
- Den Aliasnamen ändern, von „<servername>\Microsoft##SSEE“ zu „<servername>\##SSEE“
Dann kann man sich mit dem SQL Server Management Studio (oder einem anderen SQL-Client) zu der Instanz verbinden. Wer einen ausgewachsenen SQL-Server nutzt, kann dies selbstverständlich auch sofort tun.
- Mit dem SQL Management Studio zur entsprechenden SQL-Instanz verbinden
- Die SQL-Express Instanz aus dem WSSEE heisst „\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query“ (einfach in das ‚Servername‘ Feld eingeben). Unter Windows Server 2012: „\\.\pipe\MICROSOFT##WID\tsql\query“
- Für die WSSEE die „Named Pipes“ unter den Netzwerkprotokollen > Verbindungseinstellungen auswählen
- Diese Query ausführen:
USE SUSDB; exec spGetObsoleteUpdatesToCleanup;
- Das Ergebnis ist in der Regel eine lange Liste von obsoleten Update-ID-Nummern. In den meisten Fällen „klemmt“ nur ein Update (i.d.R. die erste oder letzte ID in der Liste), nach dessen Entfernung der Assistent wieder problemlos funktioniert. Updates entfernen:
exec spDeleteUpdate @localUpdateID=<ID-Nummer des Updates>
Update: Seit Windows Server 2012 sieht der Verbindungsalias etwas anders aus.
Und woher weiß ich welches Update von den 50000 klemmt???
Danke
*meistens* ist es das mit der niedrigsten ID … 🙂
auf einem Windows Server 2012 (ohne R2) befindet sich nicht im SQL Configuration Manager – die WID ist ja keine SQL-Datenbank mehr in dem Sinne – trotzdem bricht die Bereinigung jedes mal ab.
Gibt es dafür alternativ eine Lösung?
Die WID ist auch weiterhin eine „ausgewachsene“ SQL-Datenbank und kann auch weiterhin ganz normales SQL. Der Verbindungsalias ab 2012 lautet aber etwas anders:
\\.\pipe\Microsoft##WID\tsql\query
Ich schreibe auch gleich einen neuen Artikel mit den Verbindungsdaten dazu. Danke dir für den Hinweis!!
Update: http://www.ugg.li/windows-server-20122012r2-windows-internal-database-wid-mit-dem-sql-management-studio-nutzen/
Pingback: Windows Server 2012/2012R2 Windows Internal Database (WID) mit dem SQL Management Studio nutzen – ugg.li
Pingback: WSUS 4 Performance optimieren durch Datenbank-Reindexierung, Löschen und manuelles bearbeiten – ugg.li
Hallo allerseits!
Wir haben auf unserem WSUS (unter Windows Server 2012 R2) auch dieses Problem, dass der Bereinigungsassistent extrem lange bei dem Schritt „Nicht verwendete Updates werden gelöscht“ steht und irgendwann mit dem „Serverknoten zurücksetzen“-Fehler abbricht.
Wenn ich allerdings die Query „exec spGetObsoleteUpdatesToCleanup;“ auf die SUSDB ausführe bekomm ich nur ein leeres Ergebnis zurück.
Ich sehe auch, dass die Datenbank über 6GB groß ist und der WSUS sich mit über 11.000 abgelehnten Updates rumquält (da wurde schon lange nicht mehr aufgeräumt).
Gibt’s noch einen anderen Weg, da aufzuräumen?
Vielen Dank und viele Grüße,
Sebastian
Ja, es gibt noch andere Möglichkeiten. Bei dieser Größe würde ich eine Resynchronisation ohne ebgelehte Updates empfehlen (–> https://xenappblog.com/2016/how-to-clean-up-wsus/)
Super, das schau ich mir mal an.
Vielen Dank! 🙂
Das hat geholfen. Ich musste zwar manches in etwas anderer Reihenfolge oder mehrfach machen, aber im Endeffekt hat’s geholfen! 😉
Vielen Dank nochmal! 😀
Pingback: WSUS: Die Serverbereinigung bricht ab – Andy's Blog