Ошибки 17053 и 926 могут быть зарегистрированы в журнале ошибок после выполнения команды DBCC в SQL Server

В этой статье приводятся ошибки 17053 и 926, которые могут возникать при выполнении DBCC команды в SQL Server, а также приведены шаги по устранению неполадок с ошибками базовой операционной системы (ОС) 112, 665 или 1450.

Оригинальная версия продукта: SQL Server
Оригинальный номер базы знаний: 926070

Симптомы

В Microsoft SQL Server выполните одну из следующих DBCC команд:

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

Команда может завершиться ошибкой, и вы можете получить ошибки 17053, 926 и другие сообщения об ошибках в выходных данных клиентского приложения и журнале ошибок SQL Server.

Ошибки

Ошибка 926 указывает, что база данных помечена как подозрительная. Это сообщение об ошибке ссылается на внутреннюю snapshot, а не на фактическую базу данных. Состояние базы данных в режиме "в сети", а база данных работает.

Ошибка 17053 — это SQL Server ошибка, используемая для раскрытия базовой ошибки ОС. Он содержит имя файлов, используемых для внутреннего snapshot. Сообщение об ошибке указывает реальную причину проблемы.

В следующих разделах показаны подробные сообщения об ошибках, которые могут появиться. Дополнительные сведения об этих сообщениях об ошибках см. в разделе Дополнительные сведения .

Ошибка ОС 112 — недостаточно места на диске

Сообщения об ошибке с базовой ошибкой ОС 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.

Если внутренняя база данных snapshot, которую 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.

Ошибка ОС 665 — ограничение файловой системы, ошибка ОС 1450 — недостаточно системных ресурсов

Если внутренняя база данных snapshot возникает с ошибками 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 , который выполняет команду. SPID 53 — это идентификатор сеанса, который выполняет транзакцию пользователя.
  • Эти сообщения об ошибках указывают на переворачиваемые транзакции и откат транзакций. Сообщения создаются на начальном этапе DBCC выполнения команды. При выполнении DBCCDBCC команды команда сначала пытается создать внутренний snapshot. При создании snapshot для этого snapshot выполняется восстановление базы данных, чтобы привести snapshot в согласованное состояние. Сообщения об ошибках отражают это действие.
  • Внутреннее snapshot базы данных использует то же имя, что и фактическая база данных. Поэтому эти сообщения об ошибках содержат имя базы данных.
  • Несмотря на то, что сообщение журнала ошибок указывает, что DBCC CHECKDB завершено, его следует рассматривать как ненормальное завершение. Необходимо повторно запустить DBCC CHECKDB команду, чтобы разрешить ей выполняться, пока она не будет завершена, чтобы оценить согласованность базы данных. В таких ситуациях ознакомьтесь с выходными данными DBCC CHECKDB команды, отправляемой клиенту, чтобы понять, какие объекты были проверены и переданы чистыми.

Причина

В SQL Server команды используют внутренние DBCC моментальные снимки базы данных только для чтения. Дополнительные сведения см. в статье Как DBCC CHECKDB создает внутреннюю базу данных snapshot начиная с SQL Server 2014 года. Эти моментальные снимки базы данных создаются на том же диске, где находятся соответствующие файлы данных базы данных. Моментальные снимки базы данных растут пропорционально изменениям данных в базе данных, в DBCC которой выполняются команды. Если транзакционные действия продолжаются в пользовательской базе данных, внутренние моментальные снимки базы данных, созданные командами DBCC , могут продолжать расти и столкнуться с проблемами места на диске. См. раздел Требования к дисковом пространству для моментальных снимков базы данных. Так как база данных snapshot файлы и фактические файлы данных находятся на одном диске, оба набора файлов конкурируют за дисковое пространство. В этом случае предпочтение отдается транзакциям приложений или пользовательским транзакциям. Внутренняя база данных, используемая snapshotDBCC, помечена как подозрительная. Таким образом, DBCC команды создают ошибки и не могут завершиться.

Запись во внутреннюю базу данных snapshot может завершиться сбоем из-за нехватки места на диске. Другие проблемы, такие как ошибка ОС 665, также могут привести к аналогичным проблемам и привести к подозрительному состоянию внутренней базы данных snapshot.

Разрешение

Используйте раздел решения, соответствующий одной из проблем, которые вы могли ответить:

Ошибка ОС 112

Чтобы устранить ошибку ОС 112, возникную в SQL Server ошибке 17053, используйте один или несколько из следующих вариантов:

  • Освободите место на диске, где находится база данных, DBCC CHECKDB чтобы создать базу данных snapshot.
  • Запустите DBCC CHECKDBWITH TABLOCK, чтобы предотвратить создание внутреннего snapshot.
  • Используйте такие технологии репликации, как группы доступности, доставка журналов, резервное копирование и восстановление или Репликация SQL Server и создайте копию базы данных на другом сервере. Затем выполните DBCC CHECKDB команду на этом сервере.

Ошибки ОС 665 и 1450

Чтобы устранить ошибки ОС 665 или 1450, вызванные ошибкой 17053, используйте одно или несколько решений, предоставляемых в ошибках ОС 665 и 1450, сообщаемых для SQL Server файлов.