Se puede registrar el error 17053 en el registro de errores después de ejecutar un comando DBCC en SQL Server

En este artículo se describe cómo interpretar "error: 17053" y otros mensajes de error que se pueden notificar al ejecutar un comando DBCC en SQL Server.

Versión del producto original:   SQL Server
Número de KB original:   926070

Síntomas

Ejecute uno de los siguientes comandos de DBCC en Microsoft SQL Server:

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

Después de hacerlo, puede que se registren mensajes de error similares a los siguientes en el registro de errores de SQL Server:

2006-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.
2006-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.
2006-09-01 17:36:31.76 spid53 Error: 17053, Severity: 16, State: 1.
2006-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.
2006-09-01 17:36:31.76 spid53 Error: 17053, Severity: 16, State: 1.
2006-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.
2006-09-01 17:36:31.77 spid53 Error: 17053, Severity: 16, State: 1.
2006-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.
2006-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.
2006-09-01 17:36:31.90 spid53 Error: 17053, Severity: 16, State: 1.
2006-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.
2006-09-01 17:36:31.90 spid53 Error: 17053, Severity: 16, State: 1.
2006-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.
2006-09-01 17:36:32.30 spid54 Error: 926, Severity: 21, State: 6.
2006-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.

Causa

En SQL Server, los comandos DBCC usan instantáneas internas de la base de datos de solo lectura. Estas instantáneas de base de datos se crean en la misma unidad donde se encuentran los archivos de datos de la base de datos correspondiente. Las instantáneas de base de datos crecen de forma proporcional a la cantidad de datos modificados en la base de datos con respecto a los que se ejecutan los comandos de DBCC. Si la actividad transaccional sigue en esta base de datos, las instantáneas de la base de datos que crean los comandos DBCC pueden experimentar problemas de espacio en disco. Debido a que los archivos de instantáneas de base de datos y los archivos de datos reales residen en la misma unidad de disco, ambos conjuntos de archivos compiten por el espacio en disco. En este caso, las transacciones de la aplicación o las transacciones del usuario tienen preferencia. La instantánea de base de datos interna que usa DBCC está marcada como sospechosa. Por lo tanto, los comandos DBCC experimentan errores y no pueden finalizar.

Espacio en disco es una razón por la que puede producirse un error de escritura en la instantánea de base de datos interna. Otros motivos, como los códigos de error de SO 1450 y 665, también pueden contribuir a problemas similares y representar la instantánea de base de datos interna en un estado sospechoso.

Estado

Este comportamiento es una característica del diseño de la aplicación.

Más información

La siguiente información importante se aplica a los mensajes de error que se mencionan en la sección síntomas :

  • Estos mensajes de error proceden de diferentes identificadores de proceso de servidor activos (SPID). SPID 54 es el identificador de sesión que ejecuta el comando DBCC. SPID 53 es el identificador de sesión que ejecuta una transacción de usuario.

  • Estos mensajes de error indican transacciones de reenvío y revierten transacciones. Estos mensajes se generan durante la fase inicial de la ejecución del comando DBCC. Cuando ejecuta un comando DBCC, el comando DBCC intenta primero crear una instantánea interna. Cuando se crea la instantánea, la recuperación de la base de datos se realiza en esta instantánea para poner la instantánea en un estado coherente. Los mensajes de error reflejan esta actividad.

  • El mensaje de error 926 indica que la base de datos está marcada como sospechosa. Este mensaje de error realmente hace referencia a la instantánea interna y no a la base de datos real. El estado de la base de datos es "en línea" y la base de datos es funcional.

  • El mensaje de error 17053 contiene el nombre de las secuencias alternativas del sistema de archivos NTFS que se usan para la instantánea interna. Este mensaje de error indica la razón real para el problema.

  • La instantánea de base de datos interna usa el mismo nombre que la base de datos real. Por lo tanto, estos mensajes de error contienen el nombre de la base de datos.

  • Aunque el mensaje del registro de errores indica que DBCC CHECKDB se ha completado, debería considerarse como una terminación anormal. Debe volver a ejecutar el comando DBCC CHECKDB para permitir que se ejecute hasta que se complete para obtener acceso a la coherencia de la base de datos. En estas situaciones, consulte la salida del comando DBCC CHECKDB que se ha devuelto al cliente para conocer los objetos comprobados y los informes limpios.

Para obtener más información sobre este problema, vea los siguientes temas en los libros en pantalla de SQL Server:

  • Uso de instantáneas de base de datos interna DBCC

  • Descripción de los tamaños de archivo dispersos en instantáneas de bases de datos. Siga los pasos que se documentan en estos temas para evitar problemas de uso de espacio. Después de corregir cualquier problema, vuelva a ejecutar los comandos de DBCC.

Además de los mensajes de error que se mencionan en la sección síntomas , es posible que reciba el siguiente mensaje de error:

Msj 5128, nivel 17, estado 2, línea 6

Error en la escritura en el archivo disperso E:\CreateFile\ProductionData.mdf:MSSQL_DBCC11 debido a la falta de espacio en disco.

En este caso, la aplicación cliente que ejecuta los comandos DBCC tendrá las siguientes entradas en el conjunto de resultados de la aplicación:

Resultados de DBCC para ' ProductionData '.

CHECKDB encontró 0 errores de asignación y 0 errores de coherencia en la base de datos ' ProductionData '.

Msj 926, nivel 21, estado 6, línea 1

No se puede abrir la base de datos ' ProductionData '. Se marcó como sospechoso por recuperación. Consulte el ErrorLog de SQL Server para obtener más información.

Msj 0, nivel 20, estado 0, línea 0

Se ha producido un error grave en el comando actual. Los resultados, si los hay, se deben descartar.

Si no se pudo crear la instantánea, recibe mensajes de error similares a los siguientes en la aplicación cliente que emite los comandos DBCC:

Msj 1823, nivel 16, estado 1, línea 1

No se puede crear una instantánea de base de datos porque no se pudo iniciar.

Msj 7928, nivel 16, estado 1, línea 1

No se pudo crear la instantánea de la base de datos para las comprobaciones en línea. O bien la razón se da en un error anterior o uno de los volúmenes subyacentes no admite archivos dispersos o secuencias alternativas. Se intenta obtener acceso exclusivo para ejecutar las comprobaciones sin conexión.

Msj 5030, nivel 16, estado 12, línea 1

No se pudo bloquear de forma exclusiva la base de datos para realizar la operación.

Msj 7926, nivel 16, estado 1, línea 1

Instrucción de comprobación anulada. No se pudo comprobar la base de datos porque no se pudo crear una instantánea de base de datos y no se pudo bloquear la base de datos o la tabla. Vea los libros en pantalla para obtener detalles de Cuándo se espera este comportamiento y qué soluciones existen. Consulte también los errores anteriores para obtener más información.

Msj 5106, nivel 17, estado 2, línea 1

Escribir en el archivo disperso ' E:\Data\ LogFUllTest_Data. MDF: MSSQL_DBCC10 ' error debido a falta de espacio en disco.

Si la instantánea de base de datos interna se ejecuta en errores 1450 o 665, esta es una secuencia típica que verá en el registro de errores de 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.

Referencia

MSSQLSERVER_17053