Cómo solucionar errores de coherencia de base de datos registrados por DBCC CHECKB

Seleccione idioma Seleccione idioma
Id. de artículo: 2015748 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Cuando se ejecutan DBCC CHECKDB (u otros comandos similares como CHECKTABLE), se escribe un mensaje similar al siguiente en el registro de errores de SQL Server:

2010-03-31 22:07:06.34 spid53 DBCC CHECKDB (mydb) ejecutado por MYDOMAIN\theuser 15 errores encontrado y corregido errores 0. Tiempo transcurrido: 0 horas, 0 minutos y 0 segundos. Instantánea de la base de datos interna ha dividido el LSN de punto = 00000026:0000089 d: 0001 y primer LSN = c 00000026:0000089: 0001. Esto es sólo un mensaje informativo. Se requiere ninguna acción de usuario.

Este mensaje muestra los errores de coherencia de base de datos se han encontrado y cuántos se repararon (si se utilizó una opción de reparación con el comando). Este mensaje también se escribe en el registro de sucesos de aplicación de Windows como un mensaje de información de nivel con EventID = 8957 (incluso si se informa de este mensaje es un mensaje de información de nivel de errores).

La información en el mensaje a partir de "base de datos interna de instantánea..." sólo aparece si se ha ejecutado en línea, que es si la base de datos no es en modo SINGLE_USER DBCC CHECKDB. Esto es porque un DBCC CHECKDB en línea, una instantánea de la base de datos interna se utiliza para presentar un conjunto coherente de los datos para comprobar.

En este artículo no se describe cómo solucionar cada error específico registrado por DBCC CHECKDB, pero en su lugar el enfoque general si los errores se notifican. Cualquier referencia a CHECKDB en este artículo también se aplica a DBCC CHECKTABLE y CHECKFILEGROUP a menos que se indique específicamente.

Causa

DBCC CHECKDB comprueba la coherencia física y lógica de páginas de base de datos, filas, páginas de asignación, las relaciones del índice, la integridad referencial de systerm tabla y otras comprobaciones de estructura. Si alguna de estas comprobaciones no (dependiendo de las opciones que haya elegido), el error se notificará como parte del comando.

La causa de estos problemas puede variar de la corrupción del sistema de archivos, base de problemas de hardware del sistema, problemas del controlador, las páginas dañadas en la memoria, o problemas con el motor de SQL Server. Lea la sección de resolución para obtener más información acerca de cómo encontrar la causa de los errores que se notifican.

Solución

Es la mejor solución si DBCC CHECKDB no informa de errores de coherencia restaurar desde una copia de seguridad buena conocida. Sin embargo, si no puede restaurar una copia de seguridad, CHECKDB proporciona una característica para reparar los errores. Si los problemas de nivel de sistema como el sistema de archivos o hardware pueden estar causando estos problemas, se recomienda que corregir primero antes de restaurar o ejecutar la reparación.

Cuando se ejecuta DBCC CHECKDB una recomendación sirve para indicar que la opción de reparación mínimo que se requiere para reparar todos los errores. Estos mensajes pueden tener un aspecto similar al siguiente:

CHECKDB encuentra 0 errores de asignación y 15 errores de coherencia en la base de datos 'mydb'.
REPAIR_ALLOW_DATA_LOSS es el nivel mínimo de reparación para los errores encontrados por DBCC CHECKDB (mydb

La recomendación de reparación es el nivel mínimo de reparación para intentar resolver todos los errores de CHECKDB. Esto no significa que esta opción de reparación corregir todos los errores. Además, no todos los errores registrados pueden requerir este nivel de reparación para corregir el error. Esto significa que no todos los errores notificados por CHECKDB cuando se recomienda repair_allow_data_loss ocasionará pérdida de datos. Reparación debe ejecutarse para determinar si la resolución de un error podría ocasionar la pérdida de datos. Una técnica para ayudar a restringir lo que será el nivel de reparación para cada tabla es utilizar DBCC CHECKTABLE para cualquier tabla informa de un error. Esto le mostrará lo que el nivel mínimo de reparación para una tabla dada.

Para encontrar la causa de por qué se han producido errores de coherencia de la base de datos, considere la posibilidad de estos métodos:

  • Compruebe el registro de sucesos del sistema de Windows para cualquier nivel de sistema, el controlador o el disco errores relacionados con
  • Compruebe la integridad del sistema de archivos con el comando chkdsk.
  • Ejecute los diagnósticos proporcionados por los fabricantes de hardware para el equipo o el disco del sistema.
  • Trabajar con su proveedor de hardware o el fabricante del dispositivo para asegurarse de:
    • Confirma la configuración y los dispositivos de hardware a los requisitos de E/S de SQL Server
    • Se actualizan los controladores de dispositivo y los demás componentes de software necesarios de todos los dispositivos en el path de I/O
  • Considere el uso de una herramienta como SQLIOSim en la misma unidad que las bases de datos han informado de los errores de consistencia. SQLIOSim es una herramienta independiente del motor de SQL Server para comprobar la integridad de E/S para el sistema de disco. Tenga en cuenta que SQLIOSim se distribuye con SQL Server 2008 y no reuiqre una descarga independiente.
  • Busque otros errores reportados por SQL Server como infracciones de acceso. Estos tipos de problemas que pueden conducir a la corrupción de la base de datos, así que asegúrese primero resuelva estos errores.
  • Asegúrese de que las bases de datos utiliza la opción PAGE_VERIFY CHECKSUM. Si se notifican los errores de suma de comprobación, estos son indicadores que la coherencia se han producido errores después de que SQL Server ha escrito páginas en disco para que el sistema de disco se debe comprobar minuciosamente. Consulte cómo solucionar Msg 824 en SQL Server para obtener más información acerca de los errores de suma de comprobación.
  • Busque Msg 832 errores en el registro de errores. Estos son indicadores que páginas puede dañarse mientras están en la memoria caché antes de escrito en el disco. Para obtener más información, consulte cómo solucionar Msg 832 en SQL Server .
  • Intente restaurar una copia de seguridad de base de datos que sabe que es "limpio" (sin errores de CHECKDB) y copias de seguridad de registro de transacciones que sabrá que abarcan el tiempo cuando se detectó el error. Si puede "reproducir" este problema al restaurar una copia de seguridad "limpio" y la transacción inicia, a continuación, póngase en contacto con el soporte técnico de Microsoft para obtener ayuda.
  • Errores de pureza de datos pueden ser un problema con la aplicación de inserción o actualización de datos no válidos en tablas de SQL Server. Para obtener más información acerca de cómo solucionar la pureza de datos de errores, consulte el siguiente artículo: solución de problemas de DBCC Error 2570 en el servidor SQL 2005

Más información

Para obtener más información sobre la sintaxis de DBCC CHECKDB y opciones/información acerca de cómo ejecutar el comando, consulte el tema de libros en pantalla de SQL Server en el comando DBCC CHECKDB.

Si los errores encontrados por CHECKDB, se notifican los mensajes adicionales como la siguiente en el registro de errores a efectos de informe de errores:

2010-03-31 22:07:06.34 spid53 utilizando 'dbghelp.dll' versión '4.0.5'
2010-03-31 22:07:06.35 spid53 ** volcar thread - spid = 0, CE = 0x00000000855F5EB0
2010-03-31 22:07:06.35 spid53 *** el volcado de pila enviándose a C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\LOG\SQLDump0012.txt
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * comenzar el volcado de pila:
2010-03-31 22:07:06.35 spid53 * 31/03/10 22:07:06 spid 53
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * daños de la base de datos DBCC
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * bytes 84 del búfer de entrada:
2010-03-31 22:07:06.35 spid53 * dbcc checkdb(mydb)
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53      * -------------------------------------------------------------------------------
2010-03-31 22:07:06.35 spid53 * corta el volcado de pila
2010-03-31 22:07:06.38 firma de la pila para el volcado de spid53 es 0x00000000000001E8
proceso de volcado externo de spid53 de 22:07:07.42 de 2010-03-31 devolver código 0x20002001.
La información de error se ha enviado el informe de errores de Watson.

Los archivos utilizados para informes de errores incluyen un archivo .txt de SQLDump < nnn >. Este archivo puede ser útil para fines históricos, ya que contiene una lista de los errores encontrados de CHECKDB en formato XML.

Para obtener la última vez que DBCC CHECKDB se ejecutó sin errores detectados para una base de datos (el último conocido limpio CHECKDB), compruebe el registro de errores de SQL Server para un mensaje como el siguiente para su base de datos o sistema (este mensaje se escribe como un mensaje de información en el registro de sucesos de aplicación de Windows con EventID = 17573):

2010-04-01 10:13:59.80 spid7s CHECKDB para la base de datos 'master' finalizó sin errores en 2010-03-31 22:11:11.417 (hora local). Esto es un mensaje informativo no es necesaria realizar ninguna acción

Nota: es un artículo de "PUBLICACIÓN RÁPIDA" creado directamente por la organización de soporte técnico de Microsoft. La información aquí contenida se proporciona como está, como respuesta a problemas que han surgido. Como consecuencia de la rapidez con la que lo hemos puesto disponible, los materiales podrían incluir errores tipográficos y pueden ser revisados en cualquier momento sin previo aviso. Vea las Condiciones de uso para otras consideraciones

Propiedades

Id. de artículo: 2015748 - Última revisión: miércoles, 07 de mayo de 2014 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
  • Microsoft SQL Server 2014 Web
Palabras clave: 
kbmt KB2015748 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 2015748

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com