Sql-Server

由於未知網路錯誤 59,完全備份到網路失敗

  • December 8, 2021

我最近看到了 Unknown Netowrk Error 59,它將完整備份保存到某些伺服器上的文件共享中。備份發生在不同的時間。

目前正在使用Ola Halengren腳本,使用的sql server版本為2012、2014企業版。

我看到有人建議在 HKLM\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters 中創建一個名為“Sesstimeout”且值為 360 的 DWORD。

我的問題是我們應該在目標伺服器(文件共享)還是 sql 伺服器所在的伺服器上創建它

Aaron 的回答為如何解決這個問題提供了很好的建議。我想我會添加一個答案以提供更多技術細節。

根據Microsoft 的 err.exe 實用程序,錯誤 59 在 winerror.h 中定義為:An unexpected network error occurred.

如果這是會話超時的問題,您幾乎肯定會看到STATUS_NETWORK_SESSION_EXPIRED錯誤 0xC000035C / -1073740964。 Microsoft Docs聲明對此的解決方案是:

客戶端的會話已過期;因此,客戶端必須重新認證才能繼續訪問遠端資源。

您在問題中提到的系統資料庫值HKLM\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters,與“lanmanworkstation”Windows 服務有關,通過服務控制面板小程序也簡稱為“Workstation”。該服務在工作站端啟動網路連接。因此,如果您需要修改該系統資料庫值,您需要在客戶端進行修改,在本例中是 SQL Server 機器。 該系統資料庫值的Microsoft Docs :

確定用於計算未完成操作的超時值的輔助延遲的持續時間。如果重定向器在結果超時到期之前未收到對未完成操作的響應,則認為該操作已失敗。SessTimeout 條目的值可以被認為是誤差範圍。如果出現意外延遲,重定向器會允許該操作在這段額外時間內完成。

重定向器將此條目的值添加到伺服器消息塊 (SMB) 的預期響應時間。產生的超時是動態計算的,它大約等於:

$$ (SMB size + Size of data sent or received) / bytes per second $$+ 會話超時。

此設置的預設值為 45 秒,可在 10 到 65535 秒的範圍內修改。

引用自:https://dba.stackexchange.com/questions/203499