web-dev-qa-db-ja.com

分散スイッチを使用してVMWareゲストからSQL Serverに一括挿入

これはほとんどSQLサーバーの問題ではない可能性がありますが、セットアップはSQLサーバーへの一括挿入にのみ影響しているようです。

最近、VMハードウェアを移動しました。移動したすべてのゲストの仮想スイッチが標準から分散に変更されました。

それから私は受け取り始めました

ネットワークから入力ストリームを読み取り中に致命的なエラーが発生しました。セッションは終了します(入力エラー:64、出力エラー:0)

bULK INSERT操作中の2つのSQLサーバー。 SQLサーバーの1つはVMで、もう1つは物理サーバーでした。両方のBULK INSERT操作は、VM新しい構成BULK INSERTは毎回失敗するわけではなく、失敗するときは非常にランダムでした。

仮想スイッチを分散スイッチではなく標準スイッチに変更すると、問題はなくなります。

解決策の代わりに分散スイッチで動作しない理由についての詳細な説明を探しています。私の推測では、BULK INSERT操作はシリアルであり、分散スイッチでは、パケットは異なるホストを介してルーティングされており、その一部は他のホストよりビジーで、遅延しきい値を超えて宛先サーバーに到達しています。 (注:ソースまたは宛先サーバーのいずれかでエラーが発生したとき、Windowsイベントログには何もありません)

更新:NICによる問題であることが判明しました。すべてのVMはE1000で構成されましたNICこれは標準スイッチで十分に機能しました。分散スイッチに移行すると、SQLクエリだけでなく、大量のデータ転送に関する問題が発生し始めました。 NIC VMXNET3で問題が解決したようです。

10
Bob Klimes

純粋なvmware /ネットワークの問題です。

クライアントからサーバーへのSQL以外の接続問題(pingなど)を見つけることをお勧めします。これにより、より明確なトラブルシューティングパスが明らかになります。

WiresharkまたはMicrosoft NetMonを使用し、トラフィックをスニッフィングして、ここで何が起こっているかを確認することをお勧めします。 TCPレベルで何かが変更された場合、NIC Chimney Offload機能に関連している可能性があります。

http://support.Microsoft.com/kb/942861

1

1週間前にこのエラーが発生しました。ネットワークチーム、セキュリティチーム、データベースチームがあらゆるものを検索します。調査の終わりに、エラーリソースを検出しました。 IPSデバイスです。IPSデバイスに署名があるかどうかをセキュリティチームに確認してください。

0
nurullah cakir