유지 관리 계획 만들기

적용 대상:SQL Server

이 문서에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 단일 서버 또는 다중 서버 유지 관리 계획을 만드는 방법을 설명합니다. Management Studio를 사용하면 유지 관리 계획 마법사 또는 디자인 화면을 사용하는 두 가지 방법 중 하나로 유지 관리 계획을 만들 수 있습니다. 마법사는 기본 유지 관리 계획을 만드는 데 가장 적합하며, 디자인 화면을 사용하여 계획을 만들면 향상된 워크플로를 활용할 수 있습니다.

제한 사항

다중 서버 유지 관리 계획을 만들려면 하나의 마스터 서버와 하나 이상의 대상 서버를 포함하는 다중 서버 환경을 구성해야 합니다. 마스터 서버에서 다중 서버 유지 관리 계획을 만들고 유지 관리해야 합니다. 이러한 계획은 대상 서버에서 볼 수 있지만 유지 관리할 수는 없습니다.

전제 조건

에이전트 XPs 서버 구성 옵션 을 사용하도록 설정해야 합니다.

사용 권한

유지 관리 계획을 만들거나 관리하려면 sysadmin 고정 서버 역할의 멤버여야 합니다.

SQL Server Management Studio 사용

유지 관리 계획 마법사를 사용하여 유지 관리 계획 만들기

  1. 개체 탐색기에서 더하기 기호를 선택하여 유지 관리 계획을 만들 서버를 확장합니다.

  2. 더하기 기호를 선택하여 관리 폴더를 확장합니다.

  3. 유지 관리 계획 폴더를 마우스 오른쪽 단추로 클릭하고 유지 관리 계획 마법사를 선택합니다.

  4. 마법사의 단계에 따라 유지 관리 계획을 만듭니다. 자세한 내용은 Use the Maintenance Plan Wizard을 참조하세요.

디자인 화면을 사용하여 유지 관리 계획 만들기

  1. 개체 탐색기에서 더하기 기호를 선택하여 유지 관리 계획을 만들 서버를 확장합니다.

  2. 더하기 기호를 선택하여 관리 폴더를 확장합니다.

  3. 유지 관리 계획 폴더를 마우스 오른쪽 단추로 클릭하고 새 유지 관리 계획을 선택합니다.

  4. 유지 관리 계획 만들기(유지 관리 계획 디자인 화면)의 단계에 따라 유지 관리 계획을 만듭니다.

Transact-SQL 사용

유지 관리 계획 만들기

  1. 개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 선택합니다.

  3. 다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다.

    이 예제에서 코드는 데이터베이스의 테이블에 AdventureWorks2022 있는 모든 인덱스를 다시 구성하는 23:30(오후 11시 30분)에 HumanResources.Employee 실행되는 일일 SQL 에이전트 작업을 만듭니다.

    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
    

다음 단계