Database
 sql >> Base de données >  >> RDS >> Database

Création de plans de maintenance de base de données

À l'aide de plans de maintenance de base de données, nous pouvons automatiser les activités d'administration de base de la base de données. Les plans de maintenance sont des packages de services d'intégration SQL Server qui sont exécutés par le travail de l'Agent SQL Server selon un calendrier configuré. Grâce aux plans de maintenance, nous pouvons automatiser les tâches suivantes.

  1. Réduire une base de données
  2. Sauvegarder une base de données
  3. Notification de l'opérateur
  4. Mettre à jour les statistiques de la base de données
  5. Effectuer une vérification de l'intégrité de la base de données
  6. Exécuter les tâches de l'Agent SQL Server
  7. Exécuter le script T-SQL
  8. Réorganiser ou reconstruire les index

De plus, nous pouvons configurer une alerte pour informer un DBA de l'état d'exécution du plan de maintenance en activant la messagerie de la base de données.

Dans cet article, je vais vous expliquer comment créer un plan de maintenance de base pour effectuer une vérification de la cohérence de la base de données sur une base de données utilisateur.

Prérequis pour créer un plan de maintenance de base de données

Pour créer un plan de maintenance de base de données, les pré-requis sont les suivants :

  1. Les services d'intégration doivent être installés
  2. Le service SQL Server Agent doit être en cours d'exécution.

Les services d'intégration doivent être en cours d'exécution

Comme je l'ai mentionné, les plans de maintenance de base de données sont des packages de services d'intégration SQL Server. Par conséquent, pour les exécuter, les services d'intégration doivent être installés.

Pour vérifier que les services d'intégration ont été installés, ouvrez le Gestionnaire de configuration SQL Server , sélectionnez Services SQL Server dans le volet de gauche. Vous pouvez afficher la version du service d'intégration en haut de la liste.

Si les services d'intégration n'ont pas été installés, installez-les à l'aide du programme d'installation de SQL Server. Voir cet article pour référence.

Le service SQL Server Agent doit être en cours d'exécution

La messagerie de base de données envoie des e-mails ou des messages à l'aide du service SQL Server Agent. Si les services de l'agent ne sont pas en cours d'exécution, SQL Server ne peut pas envoyer d'e-mails. Lorsque le service d'agent n'est pas en cours d'exécution, tous les messages seront mis en file d'attente, et lorsque le service d'agent démarre, tous les messages en file d'attente seront remis.

Pour vérifier l'état du service d'agent, exécutez la commande suivante dans SQL Server Management Studio.

use master
go
EXEC xp_servicecontrol N'querystate',N'SQLAgent$CMS'

Le résultat est le suivant :

Si le service SQL Server Agent n'est pas en cours d'exécution, nous devons le démarrer. Pour démarrer le service SQL Server Agent, ouvrez les services, accédez au Panneau de configuration , cliquez sur Outils d'administration , puis cliquez sur Services . Dans la liste des services, recherchez SQL Server Agent . Cliquez avec le bouton droit sur Agent SQL Server et sélectionnez Démarrer .

Si vous souhaitez envoyer par e-mail l'état du plan de maintenance, vous devez activer la Courrier de base de données et cela peut être fait en modifiant les paramètres de configuration de l'instance de base de données. Par défaut, la Courrier de base de données la fonctionnalité n'est pas activée. Il doit être activé en modifiant la valeur de configuration de Database Mail XPs.

Pour activer Mail base de données , exécutez les requêtes suivantes dans l'ordre.

USE master
Go
EXEC sp_configure 'show advanced options', 1 --Enable advance option
Go
RECONFIGURE
Go
EXEC sp_configure 'Database Mail XPs,' 1 --Enable database Mail option
Go
RECONFIGURE
Go
EXEC sp_configure 'show advanced options', 0 --Disabled advanced option
Go
RECONFIGURE
Go

Configuration de la démo

Pour cette démo, je vais créer un plan de maintenance pour effectuer une vérification de la cohérence de la base de données sur FileStream_Demo base de données. Le plan de maintenance s'exécutera tous les dimanches à minuit.

Version SQL Server :SQL Server 2017.

Logiciel :SQL Server Management Studio.

Un plan de maintenance de base de données peut être créé à l'aide de l'assistant de plan de maintenance ou en utilisant la surface de conception du plan de maintenance. Tout d'abord, je vais vous expliquer comment créer le plan de maintenance à l'aide de l'assistant de plan de maintenance .

Créer un plan de maintenance à l'aide de l'assistant de plan de maintenance

Nous pouvons créer plusieurs plans de maintenance à l'aide de l'assistant de plan de maintenance de base de données . L'assistant propose des tâches de maintenance prédéfinies qui peuvent être configurées étape par étape.

Pour créer un plan de maintenance à l'aide de l'assistant, ouvrez SSMS, développez Gestion , cliquez avec le bouton droit sur Plan de maintenance et sélectionnez Assistant de plan de maintenance.

L'assistant de plan de maintenance boîte de dialogue s'ouvre, où vous pouvez voir le résumé des tâches qui peuvent être effectuées à l'aide de l'assistant. Vous pouvez l'ignorer et cliquer sur Suivant .

Dans la boîte de dialogue suivante, spécifiez le nom souhaité et la description du plan de maintenance. Spécifiez l'utilisateur ou le compte qui exécute le plan de maintenance. Comme je l'ai mentionné, vous pouvez créer plusieurs plans de maintenance à l'aide de l'assistant ; cette boîte de dialogue contient une option pour configurer la planification. Vous pouvez exécuter toutes les tâches en même temps ou spécifier une seule planification pour l'ensemble du plan. Spécifiez le nom et la description souhaités dans le champ Nom et Description zones de texte. L'Agent SQL Server exécute le plan de maintenance si compte de service de l'Agent SQL Server est sélectionné. Notre plan s'exécutera individuellement, donc sélectionnez Planification unique pour l'ensemble du plan ou pas de planification .

Pour configurer le calendrier, cliquez sur Calendrier bouton à côté de Modifier zone de texte. Le Nouveau calendrier des tâches boîte de dialogue s'ouvre. Spécifiez le nom souhaité dans le Nom zone de texte. Le plan de maintenance s'exécutera chaque semaine, donc sélectionnez Récurrent dans le Type de planification boîte déroulante. Comme mentionné, le plan de maintenance s'exécute chaque semaine, sélectionnez donc Hebdomadaire dans la liste déroulante et cochez dimanche. La tâche s'exécute à 12h00, entrez donc 12:00:00 AM dans la zone de texte correspondante. Cliquez sur OK .

Une fois le calendrier configuré, cliquez sur Suivant sur Sélectionner les propriétés du plan boîte de dialogue.

Dans Sélectionner les tâches de maintenance boîte de dialogue, sélectionnez Vérifier l'intégrité de la base de données cochez la case et cliquez sur Suivant .

Si plusieurs tâches de maintenance ont été configurées, vous pouvez les commander dans Sélectionner l'ordre des tâches de maintenance dialogue. Une seule tâche est configurée, aucune action n'est nécessaire ici. Cliquez sur Suivant .

Dans la boîte de dialogue suivante, sélectionnez le nom de la base de données où la tâche de maintenance sera exécutée. Sélectionnez FileStream_Demo base de données à partir des Bases de données liste déroulante et cliquez sur Suivant .

Dans la boîte de dialogue suivante, sélectionnez l'option de journalisation. Vous pouvez écrire l'état d'exécution du plan de maintenance dans un fichier texte, ou vous pouvez envoyer un e-mail d'alerte. Sélectionnez l'option souhaitée et cliquez sur Suivant .

Dans la boîte de dialogue suivante, vous pouvez afficher le résumé des tâches effectuées pour créer le plan de maintenance. Passez-les en revue et cliquez sur Terminer .

Une fois le plan créé, l'assistant de plan de maintenance se termine avec succès.

Créer un plan de maintenance personnalisé à l'aide de la surface Maintenance Plan Designer

Comme je l'ai expliqué, l'assistant de plan de maintenance a des tâches de base prédéfinies qui ne donnent pas plus d'options de contrôle et de personnalisation. Par exemple, si vous souhaitez exécuter un script SQL avant d'exécuter une tâche de maintenance, cela ne peut pas être effectué à l'aide de l'assistant.

Pour créer un plan de maintenance personnalisé, ouvrez SQL Server Management Studio, développez Gestion , cliquez avec le bouton droit sur Plans de maintenance , et sélectionnez Nouveau plan de maintenance .

Dans la boîte de dialogue, spécifiez le nom souhaité du plan de maintenance et cliquez sur OK .

Le concepteur de plans de maintenance s'ouvre. Il a deux sections. Dans la première section, vous pouvez spécifier le nom et la description du plan de maintenance. Vous pouvez modifier les propriétés du sous-plan existant ou ajouter les sous-plans aux plans de maintenance existants.

La description des composants individuels :

Lorsque vous créez un nouveau plan de maintenance, SQL crée un sous-plan par défaut nommé Subplan_1 . Nous pouvons en modifier les propriétés. Pour modifier le sous-plan par défaut, cliquez sur Modifier les propriétés du sous-plan bouton. Vous pouvez également sélectionner le sous-plan dans la vue de grille et double-cliquer dessus. Les propriétés du sous-plan boîte de dialogue s'ouvre. Spécifiez le nom souhaité du sous-plan et cliquez sur OK .

Comme je l'ai mentionné précédemment, nous allons créer une tâche de maintenance pour effectuer la vérification de la cohérence de la base de données. Faites glisser la tâche de vérification de l'intégrité de la base de données du plan de maintenance boîte à outils et déposez-le dans le Concepteur de plan de maintenance surface.

Double-cliquez sur Tâche de vérification de l'intégrité de la base de données . La tâche Vérifier l'intégrité de la base de données boîte de dialogue s'ouvre.

Dans la boîte de dialogue, sélectionnez la connexion SQL Server à partir de la Connexion boîte déroulante. Vous pouvez également créer une nouvelle connexion en cliquant sur Nouveau bouton. Lorsque vous cliquez sur Base(s) de données liste déroulante, une boîte de dialogue avec plusieurs options s'ouvre. Vous pouvez effectuer des contrôles de cohérence sur :

  1. Toutes les bases de données
  2. Uniquement les bases de données système (master, msdb, model, TempDB)
  3. Bases de données utilisateur
  4. Bases de données spécifiques.

Vous pouvez également ignorer la liste des bases de données qui sont hors ligne. Comme mentionné, nous voulons effectuer une vérification de cohérence sur le FileStream_Demo base de données. Sélectionnez FileStream_Demo à partir de ces bases de données liste et cliquez sur OK .

Une fois la tâche de vérification de l'intégrité de la base de données terminée, planifiez son heure d'exécution. Pour ce faire, cliquez sur Calendrier bouton dans la barre d'outils.

Vous pouvez également double-cliquer sur le sous-plan pour ouvrir les propriétés et cliquer sur Calendrier bouton à côté de Planifier zone de texte.

Le Nouveau calendrier des tâches boîte de dialogue s'ouvre. Comme mentionné, le travail doit s'exécuter tous les dimanches à 12h00, créez donc le calendrier en conséquence. Dans le Nom zone de texte, spécifiez le nom souhaité du travail, sélectionnez le type de planification souhaité. Dans la Fréquence section, sélectionnez Hebdomadaire dans le se produit zone de texte. Le travail s'exécutera une fois par semaine, donc sélectionnez 1 dans le champ Recurs every zone de texte. En dessous, sélectionnez dimanche . Dans la Fréquence quotidienne section, spécifiez l'heure dans la zone Se produit une fois à zone de texte. Le travail sera exécuté à 12h00, entrez donc 12:00:00 AM dedans. Et enfin, sélectionnez la date de début du travail et cliquez sur OK .

Une fois le calendrier créé, vous pouvez voir le résumé du calendrier dans le Calendrier colonne de la vue de grille de sous-plan.

Une fois le plan de maintenance créé, enregistrez-le. Vous pouvez afficher le plan de maintenance dans le Plan de maintenance répertoire sous Gestion .

Le service SQL Server Agent exécute le plan de maintenance; par conséquent, le calendrier du plan de maintenance est répertorié sous le travail annuaire. Pour l'afficher, ouvrez SSMS, développez SQL Server Agent , et développez Emplois .

Vous pouvez exécuter le plan de maintenance manuellement. Pour ce faire, cliquez avec le bouton droit sur le plan de maintenance et cliquez sur Exécuter .

Le plan de maintenance se termine avec succès. Vous pouvez afficher le rapport en cliquant sur Rapport bouton et en sélectionnant Afficher le rapport option.

Vous pouvez également déplacer la tâche de maintenance existante vers un autre serveur en l'exportant vers le système de fichiers et en la déployant manuellement sur un autre serveur. Comme je l'ai mentionné, les plans de maintenance de base de données sont des packages de services d'intégration stockés dans la base de données MSDB. Pour exporter des plans de maintenance vers le système de fichiers, connectez-vous aux services d'intégration à l'aide de SQL Server Management Studio, développez les packages stockés nœud, puis développez Plans de maintenance , cliquez avec le bouton droit sur le plan de maintenance nommé Tâche de vérification de la cohérence de la base de données et sélectionnez Exporter le package .

Le forfait d'exportation boîte de dialogue s'ouvre. Dans Emplacement du colis liste déroulante, sélectionnez Système de fichiers . Dans le Chemin du package zone de texte, entrez l'emplacement où le plan de maintenance doit être enregistré et cliquez sur OK.

Le plan de maintenance sera exporté vers l'emplacement souhaité.

Résumé

Dans cet article, j'ai expliqué :

  1. Que sont les plans de maintenance ?
  2. Prérequis pour créer des plans de maintenance ;
  3. Comment créer des plans de maintenance personnalisés ;
  4. Comment créer un plan de maintenance à l'aide de l'assistant ;
  5. Comment exporter un plan de maintenance vers le système de fichiers.

Outil utile :

dbForge Studio for SQL Server – puissant IDE pour la gestion, l'administration, le développement, la création de rapports et l'analyse de données de SQL Server.