Al ejecutar el comando DBCC CHECKDB en SQL Server, puede encontrarse con un error de consistencia de base de datos que dice algo como:
“Fecha/Hora spid53 DBCC CHECKDB (mydb) ejecutado por MYDOMAIN\theuser encontró 15 errores y reparó 0 errores. Tiempo transcurrido: 0 horas 0 minutos 0 segundos. La instantánea interna de la base de datos tiene un punto de división LSN = 00000026:0000089d:0001 y un primer LSN = 00000026:0000089c:0001. Esto es sólo un mensaje informativo. No se requiere ninguna acción por parte del usuario“.
El mensaje anterior indica el número de errores de consistencia encontrados en la base de datos SQL y cuántos han sido reparados.
Solución rápida: Usted puede considerar el uso de DBCC CHECKDB con opciones de reparación para corregir errores de consistencia de base de datos. Pero tenga en cuenta que ejecutar dbcc checkdb con ‘REPAIR_ALLOW_DATA_LOSS’ puede provocar la pérdida de datos. Utilice el software Stellar Repair for MS SQL para reparar y restaurar la base de datos SQL manteniendo la integridad de los datos. El software puede ayudar a reparar archivos MDF y NDF de SQL Server y recuperar todos los objetos de la base de datos. Descargue la versión de prueba gratuita del software desde el enlace proporcionado a continuación para comprobar su eficacia. |
¿Qué causa los errores de consistencia en la base de datos SQL Server?
DBCC CHECKDB realiza comprobaciones de consistencia física y lógica en páginas de base de datos, páginas de asignación, relaciones de índices, etc. Si alguna de estas comprobaciones falla, el comando checkdb informa de errores de consistencia. Hay varias razones por las que DBCC informa de errores de consistencia, como problemas en el sistema de hardware o en el motor de SQL Server, daños en el sistema de archivos o páginas dañadas en la memoria.
Antes de intentar resolver el problema de inconsistencia de la base de datos, es importante entender primero por qué se han producido los errores de consistencia de la base de datos.
¿Cómo determinar las causas de los errores de consistencia en la base de datos SQL Server?
Para averiguar la causa de los errores de coherencia de la base de datos, considere la posibilidad de utilizar:
1. Registro de sucesos del sistema Windows
La comprobación del registro de sucesos del sistema de Windows ayuda a determinar si el problema de E/S es el responsable de los errores de coherencia de la base de datos de SQL Server. Especifica si la causa detrás de los errores está relacionada con un controlador de disco o un problema de fallo de hardware. Hay diferentes ID de eventos registrados en el registro del sistema que puede consultar para encontrar información sobre la resolución de la causa del error.
Nota: Si sospecha que un problema en el hardware subyacente provoca errores de incoherencia en la base de datos, ejecute el programa de diagnóstico proporcionado por el fabricante del hardware para identificar posibles problemas de hardware.
2. Analizar el archivo ERRORLOG de SQL Server
Compruebe el registro de errores de SQL Server para ver si se ha notificado algún error, como violaciones de acceso o aserciones. Además, busque Msg 832 en el archivo ERRORLOG para determinar si las páginas de la base de datos en la caché están dañadas.
3. Comando Chkdsk para comprobar la integridad del sistema de archivos
Problemas con el sistema de archivos son otra razón que puede resultar en un problema de consistencia en SQL db. Utilice el comando chkdskcomando para comprobar la integridad del sistema de archivos.
4. SQLIOSim para realizar comprobaciones de integridad en el sistema de discos
Utilice la herramienta SQLIOSim para comprobar la integridad de E/S del sistema de disco. La herramienta puede ayudarle a descubrir posibles problemas de integridad de los datos. Consulte este enlace para obtener más información sobre esta herramienta.
Métodos para Solucionar Errores de Consistencia DBCC CHECKDB en Base de Datos SQL Server
Nota: Si el error en cuestión se debe a problemas de hardware o del sistema de archivos, intente resolverlos antes de realizar una restauración o reparación para solucionar el error.
Método 1 – Restaurar la base de datos desde una copia de seguridad
La primera y más recomendable solución que puede probar para solucionar el error de consistencia DBCC CHECKDB es restaurar la base de datos desde una copia de seguridad conocida. Sin embargo, si la copia de seguridad no está actualizada o está dañada, proceda con la siguiente solución.
Método 2 – Ejecute DBCC CHECKDB con la opción de reparación mínima
Si no es posible restaurar desde la copia de seguridad, intente ejecutar el comando DBCC CHECKDB con la opción de reparación mínima para corregir los errores de consistencia.
DBCC CHECKDB “REPAIR_ALLOW_DATA_LOSS es el nivel mínimo de reparación” que puede intentar para resolver los errores. Tenga cuidado, sin embargo, la opción REPAIR_ALLOW_DATA_LOSS, como su nombre indica, puede conducir a la pérdida de datos. Esencialmente, la opción de reparación puede desasignar datos (como filas, páginas o series de páginas), a los que el usuario no puede acceder ni recuperar.
¿Qué más puede hacer?
Utilice una herramienta de reparación de bases de datos SQL especializada como Stellar Repair for MS SQL para corregir errores de bases de datos y restaurar la base de datos a un estado coherente, manteniendo los datos intactos. Es la mejor alternativa a la opción DBCC CHECKDB Repair_Allow_Data_Loss que ayuda a reparar archivos SQL db (MDF y NDF) gravemente dañados y recupera todos los objetos SQL db.
Conclusión
Problemas con el sistema de archivos o hardware o páginas de base de datos corruptas en la memoria son algunas de las razones que pueden resultar en errores de consistencia de base de datos reportados por DBCC CHECKDB. Puede comprobar el registro de errores de eventos del sistema de Windows o el registro de errores de SQL Server para obtener más información sobre las causas de los errores y determinar si la resolución del sistema de archivos o el hardware puede solucionar los errores de consistencia. Si no, puede intentar restaurar la base de datos desde una copia de seguridad o ejecutar DBCC CHECKDB con la opción Repair_Allow_Data_Loss para reparar la base de datos. Si nada funciona, puede utilizar el software Stellar Repair for MS SQL. El software puede ayudar a restablecer el acceso a la base de datos en unos pocos clics.
Was this article helpful?