エラー 17053 と 926 は、SQL Serverで DBCC コマンドを実行した後にエラー ログに記録される可能性があります

この記事では、エラー 17053エラー 926 について説明します。これは、SQL Serverでコマンドを実行DBCCするときに報告される可能性があり、基になるオペレーティング システム (OS) エラー 112、665、または 1450 のトラブルシューティング手順を提供します。

元の製品バージョン: SQL Server
元の KB 番号: 926070

現象

Microsoft SQL Serverで次DBCCのいずれかのコマンドを実行します。

  • DBCC CHECKDB
  • DBCC CHECKALLOC
  • DBCC CHECKTABLE
  • DBCC CHECKCATALOG
  • DBCC CHECKFILEGROUP

コマンドが失敗し、クライアント アプリケーションの出力とSQL Serverエラー ログにエラー 17053、926、およびその他のエラー メッセージが表示される場合があります。

エラー

エラー 926 は、データベースが疑わしいとマークされていることを示します。 このエラー メッセージは、実際のデータベースではなく、内部スナップショットを参照します。 データベースの状態はオンラインであり、データベースは機能しています。

エラー 17053 は、基になる OS エラーを開示するために使用されるSQL Serverエラーです。 内部スナップショットに使用されるファイルの名前が含まれています。 エラー メッセージは、問題の本当の理由を示します。

次のセクションでは、表示される可能性がある詳細なエラー メッセージを示します。 これらのエラー メッセージの詳細については、「 詳細情報 」セクションを参照してください。

OS エラー 112 - ディスク領域が不足しています

基になる OS エラー 112「ディスクに十分な領域がありません」を示すエラー メッセージは、SQL Serverエラー ログに記録される可能性があります。

2022-09-01 17:33:24.48 spid54 35 transactions rolled forward in database 'ProductionData' (11). This is an informational message only. No user action is required.
2022-09-01 17:35:39.16 spid54 4 transactions rolled back in database 'ProductionData' (11). This is an informational message only. No user action is required.
2022-09-01 17:36:31.76 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.76 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:31.76 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.76 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:31.77 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.77 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:31.80 spid54 DBCC CHECKDB (ProductionData) executed by DomainName\UserName found 0 errors and repaired 0 errors. Elapsed time: 0 hours 3 minutes 19 seconds.
2022-09-01 17:36:31.90 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.90 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:31.90 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.90 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:32.30 spid54 Error: 926, Severity: 21, State: 6.
2022-09-01 17:36:32.30 spid54 Database 'ProductionData' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.

場合によっては、次のエラー メッセージが表示されることがあります。

Msg 5128, Level 17, State 2, Line 6
Write to sparse file `E:\CreateFile\ProductionData.mdf:MSSQL_DBCC11` failed due to lack of disk space.

このような場合、コマンドを実行 DBCC するクライアント アプリケーションには、アプリケーションの結果セットに次のエントリが表示される場合があります。

DBCC results for 'ProductionData'.
CHECKDB found 0 allocation errors and 0 consistency errors in database 'ProductionData'.
Msg 926, Level 21, State 6, Line 1
Database 'ProductionData' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.

コマンドが使用するDBCC内部データベーススナップショットまったく作成できなかった場合は、コマンドを発行するクライアント アプリケーションで次のエラーがDBCC発生します。

Msg 1823, Level 16, State 1, Line 1
A database snapshot cannot be created because it failed to start.

Msg 7928, Level 16, State 1, Line 1
The database snapshot for online checks could not be created. Either the reason is given in a previous error or one of the underlying volumes does not support sparse files or alternate streams. Attempting to get exclusive access to run checks offline.

Msg 5030, Level 16, State 12, Line 1
The database could not be exclusively locked to perform the operation.

Msg 7926, Level 16, State 1, Line 1
Check statement aborted. The database could not be checked as a database snapshot could not be created and the database or table could not be locked. See Books Online for details of when this behavior is expected and what workarounds exist. Also see previous errors for more details.

Msg 5106, Level 17, State 2, Line 1
Write to sparse file 'E:\Data\LogFUllTest_Data.mdf:MSSQL_DBCC10' failed due to lack of disk space.

OS エラー 665 - ファイル システムの制限、OS エラー 1450 -不十分なシステム リソース

内部データベーススナップショット 1450 または 665 エラーが発生した場合は、SQL Serverエラー ログに表示される一般的なシーケンスを次に示します。

2008-05-21 13:03:45.67 spid500 272 transactions rolled forward in database 'MYDATABASE' (12). This is an informational message only. No user action is required.
2008-05-21 13:03:45.84 spid500 2 transactions rolled back in database 'MYDATABASE' (12). This is an informational message only. No user action is required.
2008-05-21 13:03:46.97 spid500 Recovery completed for database MYDATABASE (database ID 12) in 5 second(s) (analysis 602 ms, redo 3954 ms, undo 105 ms.) This is an informational message only. No user action is required.
2008-05-21 13:36:48.25 spid480 The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00001b35138000 in file 'I:\MSSQL\DATA\mscrm_data1.ndf:MSSQL_DBCC12'.
2008-05-21 13:36:48.26 spid480 Error: 17053, Severity: 16, State: 1.
2008-05-21 13:36:48.26 spid480 C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12: Operating system error 665(The requested operation could not be completed due to a file system limitation) encountered.
2008-05-21 13:36:48.27 spid480 The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00001b35138000 in file 'C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12'.
2008-05-21 13:36:48.27 spid480 Error: 17053, Severity: 16, State: 1.
2008-05-21 13:36:48.27 spid480 C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12: Operating system error 665(The requested operation could not be completed due to a file system limitation) encountered.
2008-05-21 13:36:48.37 spid480 The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00001b35138000 in file 'C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12'.
2008-05-21 13:36:48.37 spid480 Error: 17053, Severity: 16, State: 1.
2008-05-21 13:36:48.37 spid480 C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12: Operating system error 665(The requested operation could not be completed due to a file system limitation) encountered.
2008-05-21 13:36:48.37 spid500 DBCC CHECKDB (MYDATABASE) executed by DomainName\UserName found 0 errors and repaired 0 errors. Elapsed time: 0 hours 33 minutes 16 seconds. Internal database snapshot has split point LSN = 0000759c:002547bc:0040 and first LSN = 0000759c:0023696d:0049. This is an informational message only. No user action is required.

詳細

  • これらのエラー メッセージは、さまざまなアクティブ セッション (SPID) からのメッセージです。 SPID 54 は、コマンドを実行 DBCC するセッション ID です。 SPID 53 は、ユーザー トランザクションを実行するセッション ID です。
  • これらのエラー メッセージは、トランザクションのロールフォワードとトランザクションのロールバックを示します。 メッセージは、コマンドの実行の初期フェーズ中に DBCC 生成されます。 コマンドをDBCC実行すると、コマンドは最初にDBCC内部スナップショットの作成を試みます。 スナップショットが作成されると、このスナップショットに対してデータベース復旧が実行され、スナップショットが一貫性のある状態になります。 エラー メッセージには、このアクティビティが反映されます。
  • 内部データベース スナップショットは、実際のデータベースと同じ名前を使用します。 したがって、これらのエラー メッセージにはデータベースの名前が含まれます。
  • エラー ログ メッセージは完了したことを DBCC CHECKDB 示しますが、異常終了と見なす必要があります。 コマンドを DBCC CHECKDB 再実行して、データベースの整合性を評価するために完了するまでコマンドを実行できるようにする必要があります。 このような場合は、クライアントに送信されたコマンドからの出力をDBCC CHECKDB参照して、チェックされ、クリーン報告されたオブジェクトを把握します。

原因

SQL Serverでは、DBCCコマンドは内部の読み取り専用データベース スナップショットを使用します。 詳細については、「DBCC CHECKDB が 2014 年SQL Server以降に内部スナップショット データベースを作成する方法」を参照してください。 これらのデータベース スナップショットは、対応するデータベース データ ファイルが配置されているのと同じドライブ上に作成されます。 データベース スナップショットは、コマンドが実行される DBCC データベースのデータ変更に比例して増加します。 ユーザー データベースでトランザクション アクティビティが継続する場合、コマンドによって作成された DBCC 内部データベース スナップショットは引き続き増加し、ディスク領域の問題が発生する可能性があります。 「 データベース スナップショットのディスク領域の要件」を参照してください。 データベース スナップショット ファイルと実際のデータ ファイルは同じディスク ドライブ上に存在するため、両方のファイル セットがディスク領域と競合します。 この場合、アプリケーション トランザクションまたはユーザー トランザクションが優先されます。 によってDBCC使用される内部データベーススナップショットは、疑わしいとマークされます。 したがって、コマンドはエラーを DBCC 生成し、完了できません。

ディスク領域が不足しているため、内部データベーススナップショットへの書き込みが失敗する可能性があります。 OS エラー 665 などのその他の問題も同様の問題を引き起こしたり、内部データベーススナップショットが疑わしい状態になる可能性があります。

解決方法

反論した可能性がある問題の 1 つに対応する解決策セクションを使用します。

OS エラー 112

エラー 17053 内で発生した OS エラー 112 SQL Server解決するには、次の 1 つ以上の代替手段を使用します。

  • データベースが存在するドライブ上のディスク領域を空き、データベース スナップショットを作成できるようにしますDBCC CHECKDB
  • WITH TABLOCK を実行DBCC CHECKDBして、内部スナップショットが作成されないようにします。
  • 可用性グループ、ログ配布、バックアップ/復元、SQL Server レプリケーションなどのレプリケーション テクノロジを使用し、別のサーバーにデータベースのコピーを作成します。 次に、 DBCC CHECKDB そのサーバーでコマンドを実行します。

OS エラー 665 および 1450

エラー 17053 内で発生した OS エラー 665 または 1450 を解決するには、OS エラー 665 および 1450 で提供されている 1 つ以上のソリューションを使用して、SQL Server ファイルについて報告します