Criar um plano de manutenção

Aplica-se a: SQL Server

Este artigo descrve como criar um plano de manutenção de servidor único ou multisservidor no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. Usando o Management Studio, Há duas formas de criar planos de manutenção: por meio do Assistente de Plano de Manutenção ou da área de design. O Assistente é melhor para criar planos de manutenção básicos, enquanto que criar planos usando a área de design permite utilizar fluxo de trabalho aprimorado.

Limitações e restrições

Para criar um plano de manutenção multisservidor, é necessário configurar um ambiente multisservidor contendo um servidor mestre e um ou mais servidores de destino. Devem ser criados e mantidos planos de manutenção multisservidor no servidor mestre. Os planos podem ser exibidos, mas não mantidos, nos servidores de destino.

Pré-requisitos

A Opção Agent XPs de configuração do servidor deve estar habilitada.

Permissões

Para criar ou gerenciar planos de manutenção, é necessário ser membro da função de servidor fixa sysadmin.

Usar o SQL Server Management Studio

Criar um plano de manutenção usando o Assistente de Plano de Manutenção

  1. No Pesquisador de Objetos, clique no sinal de adição para expandir o servidor em que você deseja criar um plano de manutenção.

  2. Selecione o sinal de adição para expandir a pasta Gerenciamento.

  3. Clique com o botão direito do mouse na pasta Planos de Manutenção e selecione Assistente de Plano de Manutenção.

  4. Siga as etapas do assistente para criar um plano de manutenção. Para obter mais informações, consulte Use the Maintenance Plan Wizard.

Criar um plano de manutenção usando a área de design

  1. No Pesquisador de Objetos, clique no sinal de adição para expandir o servidor em que você deseja criar um plano de manutenção.

  2. Selecione o sinal de adição para expandir a pasta Gerenciamento.

  3. Clique com o botão direito do mouse na pasta Planos de Manutenção e selecione Novo Plano de Manutenção.

  4. Crie um plano de manutenção, seguindo as etapas em Criar um plano de manutenção (Área de Design do Plano de Manutenção).

Usar o Transact-SQL

Criar um plano de manutenção

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar.

    Neste exemplo, o código cria um trabalho diário do SQL Agent que é executado às 23h30 (11h30 PM), que reorganiza todos os índices na tabela HumanResources.Employee no banco de dados 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
    

Próximas etapas