web-dev-qa-db-ja.com

不明なネットワークエラー59により、ネットワークへの完全バックアップに失敗しました

最近、Unknown Netowrk Error 59が表示され、一部のサーバーのファイル共有に完全なバックアップが保存されます。バックアップはさまざまなタイミングで行われます。

Ola Halengrenスクリプトが現在使用されており、SQLサーバーのエディションは2012、2014エンタープライズエディションです。

HKLM\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parametersに名前「Sesstimeout」、値360のDWORDを作成するための提案があるようです。

私の質問は、これをターゲットサーバー(ファイル共有)またはsqlサーバーが存在するサーバーに作成する必要があることです

4
SQL_NoExpert

アーロンの答えは、この問題を回避する方法についての素晴らしいアドバイスを提供します。もう少し技術的な詳細を提供するために回答を追加すると思いました。

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は、Windowsの「lanmanworkstation」サービスに関連しています。これは、サービスコントロールパネルアプレットを介して単に「ワークステーション」とも呼ばれます。このサービスは、ワークステーション側でネットワーク接続を開始するものです。したがって、そのレジストリ値を変更する必要がある場合は、clientで変更します。この場合はSQL Serverマシンです。 Microsoft Docs レジストリ値:

未処理の操作のタイムアウト値の計算に使用される2次遅延の期間を決定します。リダイレクタは、結果として生じるタイムアウトの期限が切れる前に未処理の操作に対する応答を受信しない場合、操作が失敗したと見なします。 SessTimeoutエントリの値は、エラーのマージンと考えることができます。予期しない遅延が発生した場合、リダイレクターはこの余分な時間の操作を許可します。

リダイレクタは、サーバーメッセージブロック(SMB)の予想される応答時間にこのエントリの値を追加します。結果のタイムアウトは動的に計算され、ほぼ次の値と等しくなります。

[(SMBサイズ+送受信されるデータのサイズ)/ 1秒あたりのバイト数] + SessTimeout。

この設定のデフォルト値は45秒で、10〜65535秒の範囲で変更できます。

4
Max Vernon

ネットワークの信頼性に問題がある場合:

  1. ネットワーク/ SANチームと話す(および/または問題を示さない別のファイル共有を使用する)
  2. 十分なスペースがあると想定して、ファイル一時的にをローカルSQL Serverシステムにバックアップします。次に、通常は中断された転送を再開できるツールを使用してバックアップをネットワーク共有にコピーし、コピーが確認されたら元のファイルを削除します(通常、バックアップを復元できることの検証が含まれます)。コピーが失敗しても、大したことはありません。コピーを再開するだけで、何も失われていません。

そして、私はMaxに同意します。これは、セッションタイムアウトを変更しても修正されるものではないようです。これは、ヘッドライトが消灯しているときにタイヤを交換するようなものです。次のポットホールに備える準備は整っているかもしれませんが、まだ1つのライトだけで運転しています。

4
Aaron Bertrand