web-dev-qa-db-ja.com

tempdbでの823エラー

次のようなエラーを断続的に報告しているいくつかのファイバーチャネルSAN接続のクラスターサーバーがあります。

2012-05-09 16:31:54.13 spid74      Error: 823, Severity: 24, State: 2.
2012-05-09 16:31:54.13 spid74      The operating system returned error 38(Reached the end of the file.) to SQL Server during a read at offset 0x000000e11b0000 in file 'T:\tempdb.mdf'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
2012-05-09 16:31:54.13 spid74      Error while allocating extent for a worktable.  Extent (1:461024) in TEMPDB may have been lost.

Tempdbを再作成するSQL Serverの再起動により、これまでのところ常に問題が修正されています。

マイクロソフトの技術的な推奨事項に従って、トレースフラグ818( http://support.Microsoft.com/kb/8264 )を有効にしましたが、このフラグはまだ成果を上げていません[addition ERRORLOG details];何が起こっているのかというと、このフラグの機能が追加のデータをログに記録するための基準を満たしてはいけないと思います。

Microsoftのケースをオープンにし、システム管理者とストレージベンダーが物事を検討します。 http://support.Microsoft.com/kb/2015755 を通じて作業し、1つのサイトでsqliosimを約2.5時間実行することも含みます。 I/Oパスに問題が発生している可能性がありますが、原因を特定するためにトップにバブルアップしたものはありません。

  • あなたは何を経験しましたか?
  • 他にどこを見ればいいですか?
4

まず、TempDBで破損の問題が発生している場合は、まず、DBCC CHECKDBがユーザーデータベース全体のクリーンな結果を報告していることを確認します。また、これらのバックアップを別のサーバーに復元し、そこでDBCC CHECKDBを実行して、問題がTempDBのみに限定されていることを確認します。

次に、サーバー上のフィルタードライバー(ウイルス対策、ディスクの最適化、ストレージミラーリングなど)をすべて削除し、TempDBに対して負荷の高いクエリを複数実行して、問題を再現できるかどうかを確認します。単純なselect-intosを実行して、ユーザーデータベースのデカルト結合をTempDBにダンプします。

最後に、停止ウィンドウが表示される場合は、SQLIOSIMではなくSQLIOを使用してTempDBドライブをハンマーで打ってみます。ベンチマークのあいまいな類似性を再現したい場合はSQLIOSIMが興味深いですが、ジャンク内のストレージを繰り返しパンチしたい場合はSQLIOの方が適しています。さらに、失敗をすばやく泡立たせることは本当に良いことです。

あなたも尋ねました:

たとえば、I/Oパスドライバーの問題(ストレージ、HBAドライバーまたはファームウェア、フィルタードライバー)よりもドライブの破損の可能性がはるかに高い.

私の経験では、最も一般的な破損の問題は、接続の問題、続いてストレージプロセッサ/コントローラのファームウェアのバグ、その後にフィルタドライバが続きます(ほとんどの人がそれらをアンインストールするほど信頼性が低いため、あまり表示されません)、最後にドライブの破損が続きます。結局のところ、最近のストレージでは、RAIDコントローラーは単一の障害のあるドライブで問題を検出するのにかなり優れています。

3
Brent Ozar