ほぼ毎日、新しい DB がクラッシュします。これは、他の 5 台のサーバーと同じハードウェア上に常駐する仮想サーバーです。そのうち 2 台は同一の MS SQL2008sp1 で、2 台は Oracle 11g なので、ハードウェアの問題はほぼ排除できます。
サーバーには専用のローカル LUN、4vCPU、8GB のメモリ、2GB の Windows スワップ ファイルがあります。4 つのインスタンスを実行します。プライマリ インスタンスは 5GB のメモリに制限され、並列度は 4 に設定され、MS SQL 2008 SP1 @ Windows Server 2008 Enterprise R2 x64 で実行されます。
クラッシュするのはプライマリ インスタンスのみです。クラッシュ後は何も接続できず、サービス マネージャーからシャットダウンすることもできません。
ログで見つけたものは次のとおりです:
***スタック ダンプは C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\LOG\SQLDump0081.txt に送信されています。SqlDumpExceptionHandler
: プロセス 4788 で致命的な例外 c0000005 EXCEPTION_ACCESS_VIOLATION が生成されました。SQL Server はこのプロセスを終了しています。
ログ全体は次の場所で見ることができます:http://kabl.org/files/SQLDump0081.txt
2 番目のクラッシュ ログは 2 秒後に作成されました:http://kabl.org/files/SQLDump0082.txt
Microsoft のツールでミニ クラッシュダンプを分析しましたが、期待できる結果は得られませんでした。役に立つかもしれないので、ここに示します。http://kabl.org/files/SQLDump0081.mdmp
ほぼ毎日サーバーを再起動するのはかなり面倒なので、どんなアイデアでも大歓迎です :)
よろしく、 -Matija
答え1
クラッシュダンプ分析の結果はどうでしたか? C0000005 エラーはバッファ オーバーラン エラーです。他のインスタンスも実行されているので、ミニダンプ分析で問題の原因となっているドライバーがあることが示されると予想されます。