Crear un plan de mantenimiento

Se aplica a:SQL Server

En este artículo se describe cómo crear un plan de mantenimiento de un solo servidor o multiservidor en SQL Server mediante SQL Server Management Studio o Transact-SQL. Hay dos formas de crear planes de mantenimiento con Management Studio: con el Asistente para planes de mantenimiento o con la superficie de diseño. El uso del asistente es más conveniente si desea crear planes de mantenimiento básicos, mientras que la superficie de diseño le permite utilizar un flujo de trabajo mejorado.

Limitaciones y restricciones

Para crear un plan de mantenimiento multiservidor, se debe configurar un entorno multiservidor que contenga un servidor maestro y uno o varios servidores de destino. Los planes de mantenimiento multiservidor se deben crear y mantener en el servidor maestro. Estos planes se pueden ver, pero no mantener, en servidores de destino.

Requisitos previos

La opción de configuración del servidor Agent XPs debe estar habilitada.

Permisos

Para crear o administrar planes de mantenimiento, debe ser miembro del rol fijo de servidor sysadmin .

Use SQL Server Management Studio

Creación de un plan de mantenimiento con el Asistente para planes de mantenimiento

  1. En el Explorador de objetos, seleccione el signo más para expandir el servidor donde desea crear un plan de mantenimiento.

  2. Seleccione el signo más para expandir la carpeta Administración.

  3. Haga clic con el botón derecho en la carpeta Planes de mantenimiento y seleccione Asistente para planes de mantenimiento.

  4. Siga los pasos del asistente para crear un plan de mantenimiento. Para obtener más información, consulte Use the Maintenance Plan Wizard.

Creación de un plan de mantenimiento mediante la superficie de diseño

  1. En el Explorador de objetos, seleccione el signo más para expandir el servidor donde desea crear un plan de mantenimiento.

  2. Seleccione el signo más para expandir la carpeta Administración.

  3. Haga clic con el botón derecho en la carpeta Planes de mantenimiento y seleccione Nuevo plan de mantenimiento.

  4. Siga los pasos descritos en Crear un plan de mantenimiento (superficie de diseño del plan de mantenimiento) para crear un plan de mantenimiento.

Uso de Transact-SQL

Crear un plan de mantenimiento

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra Estándar, seleccione Nueva consulta.

  3. Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar.

    En este ejemplo, el código crea un trabajo diario del Agente SQL que se ejecuta a las 23:30 (11:30 p.m.), que reorganiza todos los índices de la tabla HumanResources.Employee de la base de datos 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
    

Pasos siguientes