¿Cómo utilizar el comando DBCC CHECKDB para reparar bases de datos SQL?

Summary: El comando de consola de base de datos (DBCC) CHECKDB se utiliza para identificar errores en la base de datos de SQL Server. El DBCC CHECKDB viene con tres opciones de reparación para corregir errores relacionados con la base de datos. Este artículo describe cómo utilizar el comando DBCC CHECKDB para reparar la base de datos SQL. Además, se discutirá acerca de un software especializado de reparación de MS SQL que puede utilizar cuando DBCC CHECKDB no puede reparar la base de datos.

DBCC CHECKDB se utiliza para comprobar la integridad física y lógica de los objetos de la base de datos, las relaciones entre índices y otras comprobaciones estructurales. El fallo de cualquiera de estas comprobaciones informará de errores de consistencia como parte del comando de consola de la base de datos.

El mejor método para reparar errores en la base de datos, informados por DBCC CHECKDB, es ejecutar la última copia de seguridad buena conocida, tal y como recomienda Microsoft. Sin embargo, si la copia de seguridad no está disponible o está dañada, puede intentar acceder a la base de datos en estado de Emergencia.

El estado de Emergencia permite acceder a una base de datos marcada como sospechosa. También permite ejecutar las opciones de reparación DBCC CHECKDB para resolver la corrupción de la base de datos. Una vez que se pueda acceder a la base de datos, repárela utilizando la opción de nivel mínimo de reparación.

Nota: Las operaciones de reparación excluyen cualquier restricción aplicada a o entre tablas. Por lo tanto, si alguna de las tablas tiene una o más restricciones, debe ejecutar DBCC CHECKCONSTRAINTS después de una operación de reparación.

¿Cómo utilizar el comando DBCC CHECKDB?

Antes de utilizar DBCC CHECKDB, veamos su sintaxis.

Sintaxis:

DBCC CHECKDB
[ ( db_name | db_id | 0
[ , NOINDEX
 | , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]  
     ) ]       
[ WITH
{
[ ALL_ERRORMSGS ]
[ , EXTENDED_LOGICAL_CHECKS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , { PHYSICAL_ONLY | DATA_PURITY } ]
[ , MAXDOP = number_of_processors ]
}  
     ]  
 ]

Existen algunas opciones que puede utilizar para realizar comprobaciones de consistencia de la base de datos mediante DBCC CHECKDB. Estas opciones son las siguientes:

Requisitos previos para ejecutar DBCC CHECKDB

Debe asegurarse de que su sistema cumple los siguientes requisitos previos antes de ejecutar DBCC CHECKDB para realizar comprobaciones de consistencia en una base de datos o repararla.

  1. SQL Server Management Studio (SSMS) debe estar instalado en su máquina.
  2. El usuario debe tener privilegios de Administrador.

 Pasos para utilizar DBCC CHECKDB para reparar bases de datos SQL

Abra SSMS y siga estos pasos para reparar la base de datos SQL utilizando DBCC CHECKDB:

Nota: En los pasos que se indican a continuación, utilizaremos database_name como Dbtesting. Asegúrese de sustituir DBtesting por el nombre de su base de datos.

Paso 1: Poner la base de datos en modo de emergencia

Cambie el estado de la base de datos al modo EMERGENCIA, que proporciona un acceso de sólo lectura al administrador. Para poner la base de datos en modo EMERGENCIA, ejecute la siguiente consulta en SSMS:

ALTER DATABASE [Dbtesting] SET EMERGENCY

ALTER DATABASE

Paso 2: Comprobar si hay errores de corrupción

Una vez que el administrador pueda acceder a la base de datos, ejecute el siguiente comando DBCC CHECKDB para analizar los errores de corrupción en la base de datos:

DBCC CHECKDB (Dbtesting)

DBCC CHECKDB (Dbtesting)

Si DBCC CHECKDB detecta algún error en la base de datos, recomendará las opciones de reparación adecuadas para solucionar el problema.

Paso 3: Configurar la base de datos SQL Server en modo SINGLE_USER

Antes de utilizar las opciones de reparación de DBCC CHECKDB, ponga la base de datos dañada en modo SINGLE_USER para evitar que otros usuarios modifiquen los datos durante el proceso de reparación. Para poner el modo de base de datos SQL en SINGLE_USER, siga estos métodos:

Método 1: Uso de la interfaz gráfica de usuario (GUI)

Abra SSMS y realice estos pasos para configurar la base de datos en modo SINGLE_USER:

haga clic en Propiedades
Ventana Propiedades de la base de datos
Opción SINGLE_USER

Método 2: Uso de comandos Transact-SQL (T-SQL)

También puede establecer la base de datos en modo SINGLE_USER, ejecutando la siguiente consulta T-SQL en SSMS:

ALTER DATABASE Dbtesting SET SINGLE_USER

ALTER DATABASE Dbtesting SET SINGLE_USER

Paso 4: Reparar la base de datos

Una vez que haya cambiado el modo de base de datos a SINGLE_USER, ejecute DBCC CHECKDB con la opción de reparación REPAIR_ALLOW_DATA_LOSS para reparar la base de datos SQL server.

DBCC CHECKDB (N ‘Dbtesting’, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS, NO_INFOMSGS;

IR AREPARAR_PERMITIR_PÉRDIDA_DE_DATOS

IR AREPARAR_PERMITIR_PÉRDIDA_DE_DATOS

Nota: Aunque la opción de reparación REPAIR_ALLOW_DATA_LOSS ayuda a reparar todos los errores notificados en la base de datos de SQL Server, no es la mejor opción para reparar la corrupción de la base de datos. Esta opción de reparación provoca la pérdida de datos. De hecho, Microsoft recomienda utilizar la opción REPAIR_ALLOW_DATA_LOSS como último recurso cuando no se puede restaurar una base de datos desde la copia de seguridad. Si no dispone de una copia de seguridad y no puede arriesgarse a perder datos, utilice un software de reparación de MS SQL especializado para reparar la base de datos sin que se produzca ninguna pérdida en la integridad de la base de datos.

Paso 5: Devolver la base de datos al modo MULTI_USUARIO

Después de reparar la base de datos con éxito, configure la base de datos en modo MULTI_USUARIO ejecutando el siguiente comando:

ALTER DATABASE Dbtesting SET MULTI_USER

ALTER DATABASE Dbtesting SET MULTI_USER

¿Qué hacer cuando DBCC CHECKDB falla?

La ejecución del comando DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS puede requerir el borrado de algunas páginas de la base de datos, con la consiguiente pérdida de datos. Además, los comandos DBCC CHECKDB pueden fallar y devolver un error cuando se trata de archivos de base de datos SQL gravemente dañados.

En tal caso, utilice un software de reparación de MS SQL especializado, como Stellar Repair for MS SQL. El software repara bases de datos MS SQL gravemente dañadas y restaura todos sus componentes, manteniendo la integridad de la base de datos. El software de recuperación de SQL ayuda a restablecer el acceso a la base de datos con el mínimo esfuerzo manual y tiempo.

Características principales:

Para conocer el funcionamiento completo del software, vea el vídeo

Conclusión

Una base de datos corrupta puede provocar tiempos de inactividad innecesarios y pérdida de datos. Para superar los errores relacionados con la base de datos, restaure la base de datos a partir de la copia de seguridad más reciente. Si la copia de seguridad actual de la base de datos no existe o si la propia copia de seguridad está dañada, puede utilizar la opción de reparación DBCC CHECKDB ‘REPAIR_ALLOW_DATA_LOSS’ para reparar la base de datos. Sin embargo, esta opción de reparación implica un riesgo de pérdida de datos. Además, es posible que DBCC CHECKDB no solucione el problema.

Utilice el software Stellar Repair for SQL para reparar bases de datos MS SQL y recuperar todos sus componentes con precisión, manteniendo la estructura de la base de datos y la integridad de los objetos de la base de datos.

Related Post