Créer un plan de maintenance

S’applique à :SQL Server

Cet article explique comment créer un seul serveur ou un plan de maintenance multiserveur dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL. À l’aide de Management Studio, vous pouvez créer des plans de maintenance de l’une des deux manières suivantes : à l’aide de l’Assistant Plan de maintenance ou de 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.

Prerequisites

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éer un plan de maintenance à l’aide de l’Assistant Plan de maintenance

  1. Dans l’Explorateur d’objets, sélectionnez le signe plus pour développer le serveur dans lequel vous souhaitez créer un plan de maintenance.

  2. Sélectionnez le signe plus pour développer le dossier De 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éer un plan de maintenance à l’aide de l’aire de conception

  1. Dans l’Explorateur d’objets, sélectionnez le signe plus pour développer le serveur dans lequel vous souhaitez créer un plan de maintenance.

  2. Sélectionnez le signe plus pour développer le dossier De 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 décrites dans Créer un plan de maintenance (surface de conception du 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.

    Dans cet exemple, le code crée un travail SQL Agent quotidien qui s’exécute à 23:30 (11:30), qui réorganise tous les index de la table dans la HumanResources.EmployeeAdventureWorks2022 base de données.

    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