MSSQLSERVER_9004
適用対象: SQL サーバー
詳細
属性 | Value |
---|---|
製品名 | SQL Server |
イベント ID | 9004 |
イベント ソース | MSSQLSERVER |
コンポーネント | SQLEngine |
シンボル名 | LOG_CORRUPT |
メッセージ テキスト | データベース '%.*ls' のログを処理中にエラーが発生しました。 可能な場合は、バックアップから復元してください。 バックアップを使用できない場合は、ログの再構築が必要になることがあります。 |
説明
ロールバック、復旧、またはレプリケーションの操作で、ログの処理中にエラーが発生しました。 これは、オペレーティング システムによって検出されたエラーまたは SQL Server によって検出された内部整合性エラーを示している可能性があります。
SQL Server データベース エンジンは、トランザクション ログの内容の読み取りと処理の一貫性に関する論理チェックを実行します。 ログ ヘッダー、ログ ブロック、ログ レコードのすべての側面がチェックされるわけではありません。 状態番号により、エラーの種類に関する詳細情報が提供されます。
- 状態 1 仮想ログ ファイル (VLF) のログ ファイル ヘッダーが破損しています。 サービスの開始時にデータベースを起動する際に、破損したログ ファイル ヘッダーが見つかった場合は、ERRORLOG にエラー 9004 だけが表示されることがあります。 ログ ファイル ヘッダーは、トランザクション ログ内の各 VLF の最初の部分です。 ログ ファイル ヘッダーは、ログ ファイルの 1 つのファイル ヘッダー (または先頭の 8 KB) と同じではありません。 ログ ファイルのファイル ヘッダーが破損していた場合は、データベースファイルのヘッダーページの破損と同様に、メッセージ 5172 が表示されることがあります。
- 状態 2 および 3 RESTORE 操作中に復旧を実行する際に、ログ ブロックが無効でした。
- 状態 4 から 12 これらはすべて、ログ レコードを処理するときのログ ブロックに対するさまざまなチェックです。 これには、パリティ、セクター、およびトランザクション ログの整合性に関するその他の論理チェックが含まれます
ほとんどの場合、このエラーは、ERRORLOG または Windows アプリケーション イベント ログのみに EventID = 9004 で表示されます。これは、このログを処理する操作が直接のユーザー コマンドに基づいていないためです (SQL Server エンジンの起動時に実行される復旧など)。 このような状況では、エラー 9004 がエラー 3414 と共に表示されることがよくあります。 ただし、ALTER DATABASE などの一部のクエリでは、このログの処理が必要になり、したがってこれらのエラーが表示される可能性があります。 このエラーは Severity=21 であるため、ユーザー セッションは切断されます。
原因
エラー 9004 は、トランザクション ログの内容が破損していることを示す一般エラーです。 ログが不整合になる理由は、SQL Server エンジンによって検出されるデータベース破損の問題に似ています。 ログの破損の原因を調べるには、可能性のあるハードウェア、ファイルシステム、I/O の問題の分析など、データベースの破損に対して使用するのと同様の手法に従う必要があります。 DBCC CHECKDB では、その操作の一部としてトランザクション ログはチェックされず、ログ破損エラーを検出できないことに注意してください。 エラー 9004 は、SQL Server エンジン自体によって発生します。
ユーザーの操作
次のいずれかのアクションでこのエラーを修正します。
バックアップからの復元: 既知の適切なバックアップから復元して、この問題から復旧します。 データベースのログ部分またはログ バックアップに破損した内容が含まれていると、RESTORE の実行時にエラー 9004 が発生する可能性があります。 この状況では、バックアップに含まれるトランザクション ログが破損しています。
ログを再構築する: バックアップから復元できない場合は、トランザクション ログを再構築することでデータベースをオンラインにできる場合があります。 トランザクション ログの再構築がもたらす影響について、注意深く理解する必要があります。 これには、"データベース内のトランザクションの整合性が失われる可能性" が含まれます。 トランザクション ログを再構築する方法の詳細については、「データベース緊急モードでのエラーの解決」をご覧ください。
システムの問題のログを調べます: また、システム イベント ログとエラー ログを確認して、問題の原因となった可能性のあるシステム内の問題を特定します。