Partage via


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

  1. 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.

  2. Sélectionnez le signe plus (+) pour développer le dossier Gestion.

  3. Cliquez avec le bouton droit sur le dossier Plans de maintenance et sélectionnez Assistant Plan de maintenance.

  4. 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

  1. 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.

  2. Sélectionnez le signe plus (+) pour développer le dossier Gestion.

  3. Cliquez avec le bouton droit sur le dossier Plans de maintenance et sélectionnez Nouveau plan de maintenance.

  4. 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

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. 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ées AdventureWorks2022.

    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
    

Étapes suivantes