Partilhar via


Criar um plano de manutenção

Aplica-se a:SQL Server

Este artigo descreve 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, você pode criar planos de manutenção de duas maneiras: usando o Assistente de Plano de Manutenção ou a superfície de design. O Assistente é melhor para criar planos de manutenção básicos, enquanto a criação de um plano usando a superfície de design permite que você utilize o fluxo de trabalho melhorado.

Limitações e restrições

Para criar um plano de manutenção multisservidor, um ambiente multisservidor contendo um servidor mestre e um ou mais servidores de destino deve ser configurado. Os planos de manutenção multisservidor devem ser criados e mantidos no servidor mestre. Esses planos podem ser visualizados, mas não mantidos, nos servidores de destino.

Observação

Certifique-se de ter sempre a versão mais recente com suporte do SQL Server Management Studio (SSMS) instalada. Você pode instalar o SSMS com o componente SQL Server Integration Services (SSIS), no recurso Business Intelligence, para habilitar a funcionalidade do plano de manutenção. Se o componente SSIS não estiver instalado, determinados recursos relacionados aos planos de manutenção não estarão disponíveis.

Pré-requisitos

A opção de configuração do servidor Agent XPs deve ser habilitada.

Permissões

Para criar ou gerenciar planos de manutenção, você deve 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 Explorador de Objetos, selecione o sinal de adição para expandir o servidor onde pretende criar um plano de manutenção.

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

  3. Clique com o botão direito do rato 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 Utilize o Assistente do Plano de Manutenção.

Criar um plano de manutenção usando a superfície de projeto

  1. No Explorador de Objetos, selecione o sinal de adição para expandir o servidor onde pretende criar um plano de manutenção.

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

  3. Clique com o botão direito do rato 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 (Superfície de Projeto do Plano de Manutenção).

Utilize 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 (11:30 p.m.), reorganizando todos os índices na tabela HumanResources.Employee do banco de dados AdventureWorks2025.

    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óximos passos