Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se soluciona el problema que se produce al ejecutar el DBCC CHECKDB
comando en un equipo que contiene una base de datos de SQL Server.
Versión original del producto: SQL Server 2005 y versiones posteriores Número de KB original: 960791
Síntomas
Considere el caso siguiente:
Se restaura una base de datos de Microsoft SQL Server a partir de una copia de seguridad.
Recibe errores durante el proceso de restauración que impiden restaurar la base de datos.
Restaure correctamente la base de datos a partir de la misma copia de seguridad mediante la opción CONTINUE_AFTER_ERROR.
En este escenario, al ejecutar el comando DBCC CHECKDB en el equipo que contiene la base de datos de SQL Server, recibirá un mensaje de error similar al siguiente:
Mensaje 8967, nivel 16, estado 216, nombre< del >servidor, línea 2
Error interno en DBCC que impedía un procesamiento adicional. Póngase en contacto con el servicio de atención al cliente.
Resultados de DBCC para "<nombre> de base de datos".Mensaje 8921, nivel 16, estado 1, nombre< del >servidor, línea 1
Comprobación finalizada. Se detectó un error al recopilar hechos. Posiblemente falta espacio para tempdb o hay una tabla del sistema incoherente. Vea los errores anteriores.
Además, se puede mostrar un mensaje similar al siguiente en el registro de errores de SQL Server:
2007-05-26 07:13:49.21 spid58 DBCC encontró una página con un LSN superior al final actual del LSN del registro (<LSN>) para su instantánea de base de datos interna. No se pudo leer la página (id.de archivo:id.de página), la base de datos '<nombre de base de datos' (id>. de base de datos), LSN = (<LSN>), tipo = 32, isInSparseFile = 1. Vuelva a ejecutar este comando DBCC.
Causa
Este problema se produce si el DBCC CHECKDB
comando no puede realizar las comprobaciones necesarias para confirmar la coherencia de la base de datos. Estas comprobaciones no se pudieron realizar por muchas razones. Por ejemplo, este comportamiento puede producirse si hay incoherencias fundamentales en la base de datos, como incoherencias de metadatos o daños en la instantánea de base de datos. Para obtener más información sobre la causa específica de este error, examine el estado diferente que se muestra en el mensaje de error. En el escenario descrito en la sección Síntomas , el mensaje de estado 216 indica que el DBCC CHECKDB
comando lee una página de la instantánea interna que tiene un número de secuencia de registro (LSN) mayor que el final del LSN del registro. Este comportamiento puede producirse si restaura bases de datos mediante la opción CONTINUE_AFTER_ERROR .
Solución alternativa
Para solucionar este problema, utilice la sugerencia TABLOCK con el DBCC CHECKDB
comando. Esto permite que el DBCC CHECKDB
comando finalice sin generar el mensaje de error.
Para obtener más información acerca de las sugerencias de TABLOCK, consulte Sugerencias (Transact-SQL) - Tabla.