由於未知網路錯誤 59,完全備份到網路失敗
我最近看到了 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 秒的範圍內修改。