¿Por qué ejecutar DBCC CHECKDB?
DBCC CHECKDB comprueba la integridad lógica y física de todos los objetos de una base de datos y proporciona información de cualquier corrupción.
Como realizar DBCC CHECKDB es una tarea exhaustiva de recursos, se recomienda ejecutarla en un servidor de producción cuando haya menos tráfico posible, o incluso mejor, ya que una de las formas de acelerar el proceso DBCC CHECKDB es transferir el trabajo a un servidor diferente automatizando un proceso y ejecutando CHECKDB después de restaurar una base de datos. Como un proceso de copia de seguridad es una copia de una base de datos y una base de datos restaurada será exactamente la misma que una base de datos en línea, por lo tanto, si hubo alguna inconsistencia o problema, estarán en la copia de seguridad y se encontrarán en una restauración. Al utilizar este enfoque, se probarán ambas restauraciones y se verificarán las copias de seguridad sin ningún impacto en una base de datos de producción.
Ejecutar DBCC CHECKDB después de una restauración también puede ser una buena práctica si se desconoce la calidad de una copia de seguridad.
En este artículo, describiremos cómo automatizar una DBCC CHECKDB después de una restauración de base de datos automatizando DBCC CHECKDB después de una restauración de base de datos mediante un trabajo de agente de SQL Server y planes de mantenimiento.
Cómo automatizar DBCC CHECKDB después de una restauración de base de datos mediante un trabajo de agente de SQL Server
Para automatizar DBCC CHECKDB después de una restauración de base de datos mediante el agente de SQL Server:
- Seleccione un Nuevo trabajo en el nodo Agente de SQL Server Jobs Jobs
-
Crear un primer paso y especificar una copia de seguridad de base de datos para restaurar mediante el siguiente script:
RESTORE DATABASE AdventureWorks2014CheckDB FROM DISK = 'E:\EncBackup\AdventureWorks2014_Full_20150612_1916.bak' WITH RECOVERYGO
-
Agregue un segundo paso para realizar la comprobación DBCC en una base de datos restaurada agregando el siguiente script T-SQL:
DBCC CHECKDB (AdventureWorks2014CheckDB)
Para usar diferentes opciones de DBCC CHECKDB, use los siguientes scripts T-SQL:
Para verificar los valores de columna y para verificar si hay valores de columna que están fuera de rango:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY
Para subdividir mensajes informativos innecesarios:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH NO_INFOMSGS
Para comprobar las vistas indexadas, los índices espaciales y XML:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS
Para comprobar solo la estructura física de una base de datos:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY
Para imponer el bloqueo compartido de tablas:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK
Estas opciones se pueden combinar, excepto la opción WITH PHYSICAL_ONLY que no se puede combinar con algunas de las opciones, que se explicarán más adelante en este artículo.
- Programe un trabajo con la frecuencia de ejecución deseada.
Aunque es relativamente fácil de configurar utilizando un trabajo de agente de SQL Server para estas operaciones, requiere escribir scripts T-SQL y un conocimiento de la sintaxis de opciones de comprobación DBCC, así como un conocimiento de la funcionalidad de cada opción y las posibilidades de combinación.
Cómo automatizar DBCC CHECKDB después de una restauración de base de datos mediante el uso de un plan de mantenimiento
Los planes de mantenimiento también se pueden utilizar para realizar esta acción. Aunque la barra de herramientas de Planes de mantenimiento no contiene una tarea de restauración, se puede usar la tarea de T-SQL.
Para automatizar DBCC CHECKDB después de una restauración de base de datos mediante Planes de mantenimiento:
- Desde el nodo de Administración en el panel Explorador de objetos, en Planes de mantenimiento, seleccione el Nuevo Plan de mantenimiento
- En el Nuevo Plan de mantenimiento, nombre un nuevo plan
-
En la barra de herramientas de Tareas del Plan de mantenimiento, seleccione Ejecutar Tarea de instrucción T-SQL
-
Doble clic en la tarea y pegue un script T-SQL:
-
Agregar la tarea Comprobar integridad de la base de datos desde la barra de herramientas Tareas del Plan de mantenimiento:
-
Haga doble clic en una tarea y seleccione una base de datos para ejecutar la tarea en:
-
Cuando se configure un plan de mantenimiento, programelo como un trabajo de agente de SQL Server:
La desventaja de este enfoque, además de ser más complicado de configurar, es que actualmente, la tarea Comprobar Integridad de la base de datos solo ofrece la comprobación de índices como una opción adicional y realiza una comprobación DBCC completa.
Se agregarán más opciones en una versión de SQL Server 2016.