Cómo automatizar DBCC CHECKDB después de una restauración de base de datos

¿Por qué correr DBCC CHECKDB?

DBCC CHECKDB revisa la integridad lógica y física de todos los objetos en una base de datos y provee información de cualquier corrupción.

Como correr DBCC CHECKDB es una tarea exhaustiva en recursos es recomendado correrlo en un servidor de producción cuando haya tan poco tráfico como sea posible, o incluso mejor, una de las maneras de acelerar el proceso DBCC CHECKDB es transferir el trabajo a un servidor diferente automatizando un proceso y corriendo CHECKDB después de una restauración de base de datos. Como el proceso de respaldo 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 y una base de datos restaurada será exactamente la misma que una en línea, por lo tanto si hubiera alguna inconsistencia o problema, estará en la copia de seguridad, y será encontrado en una restauración. Usando este enfoque ambas restauraciones serán probadas y las copias de seguridad verificadas sin ningún impacto en una base de datos de producción.

Correr DBCC CHECKDB después de una restauración puede ser también una buena práctica si la calidad de la copia de seguridad es desconocida.

Cómo automatizar DBCC CHECKDB después de una restauración de base de datos usando un trabajo de SQL Server Agent

Para automatizar DBCC CHECKDB después de una restauración de base de datos usando SQL Server Agent:

  1. Seleccione New Job desde el nodo SQL Server Agent ➜ Jobs
  2. Cree un primer paso y especifique una copia de seguridad de base de datos usando el siguiente script:

    RESTORE DATABASE AdventureWorks2014CheckDB 
    FROM DISK = 'E:\EncBackup\AdventureWorks2014_Full_20150612_1916.bak' 
    WITH RECOVERY
    GO
    

  3. Añada un segundo paso para realizar DBCC CHECKDB en una base de datos restaurada añadiendo el siguiente script T-SQL:

    DBCC CHECKDB (AdventureWorks2014CheckDB)
    

    Para usar diferentes opciones de DBCC CHECKDB use los siguientes scripts T-SQL:

    Para revisar valores de columna y verificar si hay valores fuera de rango:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY
    

    Para apagar los mensajes de información innecesarios:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH NO_INFOMSGS
    

    Para revisar vistas indexadas e índices espaciales y XML:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS
    

    Para revisar solo la estructura física de una base de datos:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY
    

    Para establecer el bloqueo de tablas:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK
    

    Estas opciones pueden ser combinadas, excepto la opción WITH PHYSICAL_ONLY que no puede ser combinada con algunas de las opciones, lo cual será explicado más adelante en este artículo.

  4. Programe un trabajo con una frecuencia deseada de ejecución.

Aunque es relativamente de configurar, usar un trabajo de SQL Server Agent para estas operaciones requiere escribir scripts T-SQL y un conocimiento de la sintaxis de las opciones DBCC CHECKDB así como un conocimiento de la funcionalidad de daca opción y las posibilidades de combinarlas.

Cómo automatizar DBCC CHECKDB después de una restauración de bases de datos usando un Plan de Mantenimiento

Los Planes de Mantenimiento pueden ser también usados para realizar esta acción. Aunque la barra de herramientas de Planes de Mantenimiento no contiene una tarea de restauración, la tarea T-SQL puede ser usada.

Para automatizar DBCC CHECKDB después de una restauración de base de datos usando Planes de Mantenimiento:

  1. Desde el nodo Management en el panel Object Explorer, debajo de Maintenance Plans seleccione New Maintenance Plan.
  2. En new Maintenance Plan, nombre un nuevo plan.
  3. Desde la barra de herramientas Maintenance Plan Tasks seleccione Execute T-SQL Statement Task

  4. Haga doble clic en la tarea y pegue un script T-SQL:

  5. Añada Check Databse integrity desde la barra de herramientas Maintenance Plan Tasks:

  6. Haga doble clic en una tarea y seleccione una base de datos en dónde correr la tarea:

  7. Cuando el plan de mantenimiento esté configurado, prográmelo como un trabajo de SQL Server Agent:

La desventaja de este enfoque aparte de ser más complicado de configurar es que actualmente Check Database Integrity Task ofrece sólo la revisión de índices como una opción adicional y realiza una revisión DBCC CHECKDB completa.

Más opciones serán añadidas en SQL Server versión 2016.

Traductor: Daniel Calbimonte

agosto 16, 2016