Wir haben aktuell einen WSUS 4.0 (Windows Service Update Server) auf einem Windows Server 2012 R2 im Einsatz, der seine tägliche Arbeit eigentlich einwandfrei verrichtet. Leider zeigt er bei längeren Abfragen immer folgende Fehlermeldung an:
Fehler: Datenbankfehler
Fehler beim Ausführen eines Datenbankvorgangs. Mögliche Ursache: Die Datenbank ist sehr ausgelastet, der Datenbankdienst wurde beendet, die Verbindung mit der Datenbank wurde getrennt, oder die Nachinstallationsaufgabe wurde nicht erfolgreiche beendet. Wenden Sie sich an den Systemadministrator, wenn das Problem weiterhin besteht.
Klicken Sie auf „Serverknoten zurücksetzen„, um erneut zu versuchen, eine Verbindung mit dem Server herzustellen.
Die Ursache dafür war nicht so einfach zu finden. Nachdem ich dann per PowerShell Befehl versucht habe, die WSUS Serverbereinigung durchzuführen, so kam der Hinweis, dass es ein Timeout Problem ist. Der SQL-Server reagiert nicht rechtzeitig auf die Anfragen, obwohl der Wert standardmäßig auf 600 Sekunden (10 Minuten) eingestellt ist. Dieser Wert ist eigentlich sehr einfach zu verändern. Einfach das SQL Server Management Studio aufrufen, die Verbindung zu
\\.\pipe\Microsoft##WID\tsql\query
herstellen, in die Eigenschaft auf die Servereigenschaften, dort auf Verbindungen und hier kann der Wert für „Remoteverbindungen mit dem Server zulassen – Timeout für Remoteanfragen (Sekunden, 0 = kein Timeout) auf 0 setzen.
Danach sollte die obige Fehlermeldung nicht mehr erscheinen.
Allerdings kam es hier zum nächsten Problem, die Servereigenschaften konnten nicht angezeigt werden. Es kam zu folgender Fehlermeldung:
Microsoft SQL Server Management Studio
Das angeforderte Dialogfeld kann nicht angezeigt werden.
ZUSÄTZLICHE INFORMATIONEN:
Das angeforderte Dialogfeld kann nicht angezeigt werden. (SqlMgmt)
Fehler beim Abrufen von Daten für diese Anforderung. (SqlManagerUI)
Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476
Ausnahme beim Ausführen einer Transact-SQL-Anweisung oder eines Transact-SQL-Batches. (Microsoft.SqlServer.ConnectionInfo)
Für den aktuellen Befehl ist ein schwerwiegender Fehler aufgetreten. Löschen Sie eventuelle Ergebnisse.
‚RegQueryValueEx()‘ hat den Fehler ‚2‘, ‚Das System kann die angegebene Datei nicht finden.‘ zurückgegeben. (Microsoft SQL Server, Fehler: 0)
Alle Versuche, dieses Problem zu beseitigen, sind leider fehlgeschlagen. Auch die Installation vom Microsoft SQL Server 2012 Express SP1 und SP2 brachte keine Besserung.
Die einzige Möglichkeit war nun, den Timeout-Wert per SQL-Befehl zu setzen. Und dies funktionierte dann auch mit diesem kleinen Script:
USE SUSDB;
GO
EXEC sp_configure ´remote query timeout´, 0 ;
GO
RECONFIGURE ;
GO
Danach war der Timeout-Wert auf 0 gesetzt und es kam nicht wieder zu der Fehlermeldung „Datenbankfehler„
Danke – hat wunderbar funktioniert!
Allerdings wollte ich nicht das Management Studio installieren.
Daher mit SQLCMD.exe – https://www.microsoft.com/de-DE/download/details.aspx?id=43339 – (DEU\x64\sqlncli.msi und DEU\x64\SqlCmdLnUtils.msi)
C:\Users\Administrator>“C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE“ -S np:\\.\pipe\Microsoft##WID\tsql\query -I -i c:\Scripts\wsus-timeout.sql
wsus-timeout.sql = obiges Script
Hallo Michael,
danke für deinen Beitrag, das hat mich auf den richtigen Weg gebracht!
Mit deinem SQL-Befehl lies sich das Script allerdings nicht starten, da hat sich meiner Meinung nach der Fehlerteufel eingeschlichen. Es kam die Fehlermeldung „Incorrect syntax near “‘.“
Das Script muss richtig lauten:
USE SUSDB ;
GO
EXEC sp_configure ‚remote query timeout‘, 0 ;
GO
RECONFIGURE ;
GO
Hallo Wilhelm,
danke für die Rückmeldung. Das Script war schon richtig, leider ändert WordPress die Darstellung und zeigt die Häkchen nicht korrekt an. Hab es jetzt geändert, danke für den Hinweis und viele Grüße.
Michael
Vielen Dank, genau dieselben Probleme hatte ich auch. Das Skript hat mir den Abend gerettet.
Hat bei mir immernoch nicht funktioniert.
Hab die Häckchen durch Gänsefüßchen ersetzt. Nun Läufts!
USE SUSDB ;
GO
EXEC sp_configure „remote query timeout“, 0 ;
GO
RECONFIGURE ;
GO
Hallo Leute,
Ich habe nun ebenfalls das Problem nur das wenn ich den Timeout auf 0, der Datenbankfehler trotzdem auftritt nur das es dieses mal länger dauert.
Dag
Hallo Leute,
ich habe nun das Skript bei mir ausgeführt und nach einem Neustart tritt der Fehler weiterhin auf. Habt ihr da noch irgendwelche Ideen?
Dag