Comment automatiser DBCC CHECKDB après une restauration de base de données

Pourquoi exécuter DBCC CHECKDB ?

DBCC CHECKDB vérifie l’intégrité logique et physique de tous les objets d’une base de données et fournit des informations sur toute corruption.

Comme l’exécution de DBCC CHECKDB est une tâche exhaustive en ressources, il est recommandé de l’exécuter sur un serveur de production lorsqu’il y a le moins de trafic possible, voire mieux, car l’un des moyens d’accélérer le processus DBCC CHECKDB consiste à transférer le travail sur un autre serveur en automatisant un processus et à exécuter CHECKDB après une restauration de base de données. Comme un processus de sauvegarde est une copie d’une base de données et qu’une base de données restaurée sera exactement la même qu’une base de données en ligne, par conséquent, s’il y avait des incohérences ou des problèmes, ils seront dans la sauvegarde et trouvés dans une restauration. En utilisant cette approche, les restaurations seront testées et les sauvegardes vérifiées sans aucun impact sur une base de données de production.

Exécuter DBCC CHECKDB après une restauration peut également être une bonne pratique si la qualité d’une sauvegarde est inconnue.

Dans cet article, nous allons décrire comment automatiser une base de données DBCC CHECKDB après une restauration de base de données en automatisant la base de données DBCC CHECKDB après une restauration de base de données à l’aide d’une tâche d’agent SQL Server et de plans de maintenance.

Comment automatiser la vérification DBCC après une restauration de base de données à l’aide d’une tâche d’agent SQL Server

Pour automatiser la vérification DBCC après une restauration de base de données à l’aide de l’Agent SQL Server :

  1. Sélectionnez une nouvelle tâche à partir du nœud d’agent SQL Server Jobs Jobs
  2. Créez une première étape et spécifiez une sauvegarde de base de données à restaurer à l’aide du script suivant:

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

  3. Ajoutez une deuxième étape pour effectuer une vérification DBCC sur une base de données restaurée en ajoutant le script T-SQL suivant :

    DBCC CHECKDB (AdventureWorks2014CheckDB)

    Pour utiliser différentes options DBCC CHECKDB, utilisez les scripts T-SQL suivants :

    Pour vérifier les valeurs de colonne et vérifier s’il existe des valeurs de colonne hors de portée :

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY

    Pour soumettre les messages d’information inutiles:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH NO_INFOMSGS

    Pour vérifier les vues indexées, les index spatiaux et XML:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS

    Pour vérifier uniquement la structure physique d’une base de données :

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY

    Pour appliquer le verrouillage partagé par table :

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK

    Ces options peuvent être combinées à l’exception de l’option WITH PHYSICAL_ONLY qui ne peut pas être combinée avec certaines des options, qui seront expliquées plus loin dans cet article.

  4. Planifiez une tâche à une fréquence d’exécution souhaitée.

Bien que relativement facile à configurer en utilisant un job d’agent SQL Server pour ces opérations nécessite l’écriture de scripts T-SQL et une connaissance de la syntaxe des options DBCC CHECKDB ainsi qu’une connaissance des fonctionnalités de chaque option et des possibilités de combinaison.

Comment automatiser la vérification DBCC après une restauration de base de données à l’aide du Plan de maintenance

Des plans de maintenance peuvent également être utilisés pour effectuer cette action. Bien que la barre d’outils Plans de maintenance ne contienne pas de tâche de restauration, la tâche T-SQL peut être utilisée.

Pour automatiser la vérification DBCC après une restauration de base de données à l’aide des Plans de maintenance :

  1. À partir du nœud de gestion dans le volet Explorateur d’objets, sous Plans de maintenance, sélectionnez le Nouveau Plan de maintenance
  2. Dans le Nouveau Plan de maintenance, nommez un nouveau plan
  3. Dans la barre d’outils Tâches du Plan de maintenance, sélectionnez Exécuter la tâche d’instruction T-SQL

  4. Double-glissez la tâche et collez un script T-SQL :

  5. Ajoutez la tâche Vérifier l’intégrité de la base de données à partir de la barre d’outils des tâches du plan de maintenance:

  6. Double-cliquez sur une tâche et sélectionnez une base de données sur laquelle exécuter la tâche :

  7. Lorsqu’un plan de maintenance est configuré, planifiez-le en tant que tâche d’agent SQL Server :

L’inconvénient de cette approche en plus d’être plus compliquée à configurer est qu’actuellement, la tâche de vérification de l’intégrité de la base de données n’offre que la vérification des index comme option supplémentaire et effectue une vérification complète de la DBCC CHECKDB.

D’autres options seront ajoutées dans une version SQL Server 2016.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.