it-swarm.com.de

Vollständige Sicherung auf Netzwerk fehlgeschlagen aufgrund eines unbekannten Netzwerkfehlers 59

Ich sehe kürzlich den unbekannten Netowrk-Fehler 59, der die vollständigen Sicherungen auf einer Dateifreigabe auf einigen Servern speichert. Die Sicherung erfolgt zu unterschiedlichen Zeiten.

Derzeit werden Ola Halengren-Skripte verwendet, und die verwendete SQL Server-Edition ist die Enterprise Edition 2012, 2014.

Ich sehe, dass es Vorschläge gibt, ein DWORD mit dem Namen "Sesstimeout" und dem Wert 360 in HKLM\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters zu erstellen.

Meine Frage ist, ob wir dies auf dem Zielserver (Dateifreigabe) oder auf dem Server erstellen sollen, von dem aus sich der SQL Server befindet

4
SQL_NoExpert

Aarons Antwort bietet großartige Ratschläge, wie Sie dieses Problem umgehen können. Ich dachte, ich würde eine Antwort hinzufügen, um weitere technische Details bereitzustellen.

Gemäß Microsofts Dienstprogramm err.exe ist Fehler 59 in winerror.h wie folgt definiert: An unexpected network error occurred.

Wenn dies ein Problem mit dem Zeitlimit für die Sitzung wäre, würden Sie mit ziemlicher Sicherheit STATUS_NETWORK_SESSION_EXPIRED, das ist Fehler 0xC000035C/-1073740964. Microsoft Docs gibt die Auflösung dafür an:

Die Sitzung des Clients ist abgelaufen. Daher MUSS sich der Client erneut authentifizieren, um weiterhin auf Remote-Ressourcen zugreifen zu können.

Der Registrierungswert, den Sie in Ihrer Frage erwähnen, HKLM\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters bezieht sich auf den Windows-Dienst "lanmanworkstation", der auch einfach als "Workstation" über das Applet "Services Control Panel" bezeichnet wird. Dieser Dienst initiiert Netzwerkverbindungen auf der Workstation-Seite. Wenn Sie diesen Registrierungswert ändern müssen, ändern Sie ihn daher auf dem Client , in diesem Fall auf dem SQL Server-Computer. Microsoft Docs für diesen Registrierungswert:

Bestimmt die Dauer der sekundären Verzögerung, die bei der Berechnung eines Timeout-Werts für ausstehende Vorgänge verwendet wird. Wenn der Redirector vor Ablauf des resultierenden Timeouts keine Antwort auf eine ausstehende Operation erhält, wird die Operation als fehlgeschlagen angesehen. Der Wert des SessTimeout-Eintrags kann als Fehlerquote angesehen werden. Wenn es zu einer unerwarteten Verzögerung kommt, lässt der Redirector den Vorgang für diese zusätzliche Zeit zu.

Der Redirector addiert den Wert dieses Eintrags zur erwarteten Antwortzeit für einen Server Message Block (SMB). Das resultierende Timeout wird dynamisch berechnet und entspricht ungefähr:

[(SMB-Größe + Größe der gesendeten oder empfangenen Daten)/Bytes pro Sekunde] + SessTimeout.

Der Standardwert für diese Einstellung beträgt 45 Sekunden und kann im Bereich von 10 bis 65535 Sekunden geändert werden.

4
Max Vernon

Wenn Sie Probleme mit der Netzwerkzuverlässigkeit haben:

  1. sprechen Sie mit Ihrem Netzwerk-/SAN-Team (und/oder verwenden Sie eine andere Dateifreigabe, bei der das Problem nicht auftritt).
  2. Sichern Sie die Datei vorübergehend auf dem lokalen SQL Server-System, sofern ausreichend Speicherplatz vorhanden ist. Kopieren Sie dann die Sicherung auf die Netzwerkfreigabe, normalerweise mit einem Tool, mit dem unterbrochene Übertragungen fortgesetzt werden können, und löschen Sie das Original, wenn die Kopie bestätigt wurde (was normalerweise die Überprüfung umfasst, ob die Sicherung wiederhergestellt werden kann). Wenn eine Kopie fehlschlägt, keine große Sache; Sie starten die Kopie einfach erneut und haben nichts verloren.

Und ich stimme Max zu, dies scheint nicht etwas zu sein, das durch Ändern eines Sitzungszeitlimits behoben werden kann. Das ist so, als würde man einen Reifen wechseln, wenn der Scheinwerfer aus ist. Sie sind vielleicht besser auf das nächste Schlagloch vorbereitet, fahren aber immer noch nur mit einem Licht.

4
Aaron Bertrand