Créer un plan de maintenance
S’applique à : SQL Server
Cet article décrit comment créer un plan de maintenance pour un seul serveur ou pour plusieurs serveurs SQL Server, en utilisant SQL Server Management Studio ou Transact-SQL. Avec Management Studio vous avez deux options pour créer des plans de maintenance : en utilisant l’assistant de plan de maintenance ou en utilisant l’aire de conception. L'Assistant est conseillé pour créer des plans de maintenance de base, tandis que la zone de conception permet d'utiliser un flux de travail optimisé.
Limitations et restrictions
Pour créer un plan de maintenance multiserveurs, vous devez configurer un environnement multiserveurs contenant un serveur maître et un ou plusieurs serveurs cibles. Les plans de maintenance multiserveurs doivent être créés et conservés sur le serveur maître. Ces plans peuvent être consultés mais ne peuvent pas être conservés sur les serveurs cibles.
Prérequis
Vous devez activer Agent XPs (option de configuration de serveur) .
autorisations
Pour créer ou gérer des plans de maintenance, vous devez être membre du rôle serveur fixe sysadmin .
Utiliser SQL Server Management Studio
Création d’un plan de maintenance à l’aide de l’assistant de plan de maintenance
Dans l’Explorateur d’objets, cliquez sur le signe plus (+) pour développer le serveur sur lequel vous souhaitez créer un plan de maintenance.
Sélectionnez le signe plus (+) pour développer le dossier Gestion.
Cliquez avec le bouton droit sur le dossier Plans de maintenance et sélectionnez Assistant Plan de maintenance.
Suivez les procédures indiquées par l'Assistant pour créer un plan de maintenance. Pour plus d’informations, consultez Use the Maintenance Plan Wizard.
Création d’un plan de maintenance à l’aide de l’aire de conception
Dans l’Explorateur d’objets, cliquez sur le signe plus (+) pour développer le serveur sur lequel vous souhaitez créer un plan de maintenance.
Sélectionnez le signe plus (+) pour développer le dossier Gestion.
Cliquez avec le bouton droit sur le dossier Plans de maintenance et sélectionnez Nouveau plan de maintenance.
Créez un plan de maintenance en suivant les étapes de la rubrique Création d’un plan de maintenance (aire de conception de plan de maintenance).
Utiliser Transact-SQL
Créer un plan de maintenance
Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d’outils standard, sélectionnez Nouvelle requête.
Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.
Cet exemple de code crée un travail quotidien dans SQL Agent qui s’exécute à 23h30 (11h30 du soir). Ce travail réorganise tous les index sur la table
HumanResources.Employee
de la base de donnéesAdventureWorks2022
.USE [msdb]; GO -- Adds a new job, executed by the SQL Server Agent service, called "HistoryCleanupTask_1". EXEC [dbo].[sp_add_job] @job_name = N'HistoryCleanupTask_1', @enabled = 1, @description = N'Clean up old task history'; GO -- Adds a job step for reorganizing all of the indexes in the HumanResources.Employee table to the HistoryCleanupTask_1 job. EXEC [dbo].[sp_add_jobstep] @job_name = N'HistoryCleanupTask_1', @step_name = N'Reorganize all indexes on HumanResources.Employee table', @subsystem = N'TSQL', @command = N'USE [AdventureWorks2022]; GO ALTER INDEX [AK_Employee_LoginID] ON [HumanResources].[Employee] REORGANIZE WITH (LOB_COMPACTION = ON); GO USE [AdventureWorks2022]; GO ALTER INDEX [AK_Employee_NationalIDNumber] ON [HumanResources].[Employee] REORGANIZE WITH (LOB_COMPACTION = ON); GO USE [AdventureWorks2022]; GO ALTER INDEX [AK_Employee_rowguid] ON [HumanResources].[Employee] REORGANIZE WITH (LOB_COMPACTION = ON); GO USE [AdventureWorks2022]; GO ALTER INDEX [IX_Employee_OrganizationLevel_OrganizationNode] ON [HumanResources].[Employee] REORGANIZE WITH (LOB_COMPACTION = ON); GO USE [AdventureWorks2022]; GO ALTER INDEX [IX_Employee_OrganizationNode] ON [HumanResources].[Employee] REORGANIZE WITH (LOB_COMPACTION = ON); GO USE [AdventureWorks2022]; GO ALTER INDEX [PK_Employee_BusinessEntityID] ON [HumanResources].[Employee] REORGANIZE WITH (LOB_COMPACTION = ON); GO', @retry_attempts = 5, @retry_interval = 5; GO -- Creates a schedule named RunOnce that executes every day when the time on the server is 23:30. EXEC [dbo].[sp_add_schedule] @schedule_name = N'RunOnce', @freq_type = 4, @freq_interval = 1, @active_start_time = 233000; GO -- Attaches the RunOnce schedule to the job HistoryCleanupTask_1. EXEC [dbo].[sp_attach_schedule] @job_name = N'HistoryCleanupTask_1', @schedule_name = N'RunOnce'; GO