現象
Microsoft SQL Server 2012 または SQL Server 2014 を使用していることを前提としています。 Tempdbデータベースのログファイルがいっぱいになると、SQL Server がクラッシュし、次のエラーメッセージが表示されます。
エラー: 9002、レベル:17、状態: 4。 ' ACTIVE_TRANSACTION ' のため、データベースの "tempdb" のトランザクションログは完全な状態になります。エラー: 3314、レベル:21、状態: 3。データベース ' tempdb ' でログに記録された操作を元に戻すときに、エラーがログレコード ID (135:376:442) で発生しました。 通常、特定のエラーは、Windows イベントログサービスのエラーとして記録されます。 バックアップからデータベースまたはファイルを復元するか、データベースを修復します。エラー: 3449、レベル:21、状態: 1。データベースを回復するには、SQL Server をシャットダウンする必要があります (データベース ID 2)。 データベースは、シャットダウンできないかシステムデータベースであるユーザーデータベースです。 SQL Server を再起動します。 別の起動後にデータベースの回復に失敗した場合は、データベースを修復または復元します。サーバーのシャットダウンのため、SQL トレースが停止しました。 トレース ID = ' 1 '。 これは情報メッセージにすぎません。ユーザー操作は必要ありません。
この問題は、tempdb のワークロードを処理するにはtempdbのログファイルのサイズが十分ではなく、ログファイルの自動拡張が [オフ] に設定されている場合に発生します。 領域が制限されているために、 tempdb でロールバックに失敗した場合、SQL Server はクラッシュします。 この修正プログラムを使用すると、ログの領域が不足したときに、予約されたスペースをより正確に計算できます。 この修正プログラムは、 tempdbのログの増加を一時的に有効にすることによって、 tempdbでロールバックの失敗を防ぐのにも役立ちます。 この変更により、サーバーがクラッシュするのを防ぐことができます。
解決方法
SQL Server 2014 の Service pack 情報
この問題を解決するには、Microsoft SQL Server 2014 の最新の service pack を入手してください。詳細については、以下の記事の番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2958069 SQL Server 2014 の最新の Service Pack を入手する方法 SQL Server 2014 Service Pack 1 (SP1) の詳細については、「 Sql server 2014 Service pack 1 で修正されたバグ」を参照してください。
SQL Server 2012 の Service pack 情報
この問題を解決するには、Microsoft SQL Server 2012 の最新の service pack を入手してください。詳細については、以下の記事の番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2755533 SQL Server 2012 の最新の Service Pack を入手する方法
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。