유지 관리 계획 만들기Create a Maintenance Plan

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 이 항목에서는 SQL Server Management StudioSQL Server Management Studio 또는 Transact-SQLTransact-SQL을 사용하여 SQL Server 2017SQL Server 2017에서 단일 서버 또는 다중 서버 유지 관리 계획을 만드는 방법에 대해 설명합니다. This topic describes how to create a single server or multiserver maintenance plan in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Management StudioManagement Studio를 사용하면 유지 관리 계획 마법사나 디자인 화면을 통해 이러한 유지 관리 계획을 만들 수 있습니다.Using Management StudioManagement Studio, you can create these maintenance plans in one of two ways: by either using the Maintenance Plan Wizard or the design surface. 기본 유지 관리 계획을 만들 때는 마법사가 적합한 반면 디자인 화면을 사용하여 계획을 만들면 워크플로의 향상된 기능을 활용할 수 있습니다.The Wizard is best for creating basic maintenance plans, while creating a plan using the design surface allows you to utilize enhanced workflow.

항목 내용In This Topic

시작하기 전 주의 사항Before You Begin

제한 사항Limitations and Restrictions

다중 서버 유지 관리 계획을 만들려면 하나의 마스터 서버 및 하나 이상의 대상 서버가 있는 다중 서버 환경을 구성해야 합니다.To create a multiserver maintenance plan, a multiserver environment containing one master server and one or more target servers must be configured. 다중 서버 유지 관리 계획은 마스터 서버에서 만들고 유지 관리해야 합니다.Multiserver maintenance plans must be created and maintained on the master server. 이러한 계획을 대상 서버에서 볼 수 있지만 유지 관리할 수는 없습니다.These plans can be viewed, but not maintained, on target servers.

사전 요구 사항Prerequisite

에이전트 XPs 서버 구성 옵션 을 사용하도록 설정해야 합니다.The Agent XPs Server Configuration Option must be enabled.

보안Security

사용 권한Permissions

유지 관리 계획을 만들거나 관리하려면 sysadmin 고정 서버 역할의 멤버여야 합니다.To create or manage Maintenance Plans, you must be a member of the sysadmin fixed server role.

SQL Server Management Studio 사용Using SQL Server Management Studio

유지 관리 계획 마법사를 사용하여 유지 관리 계획을 만들려면To create a maintenance plan using the Maintenance Plan Wizard

  1. 개체 탐색기에서 더하기 기호를 클릭하여 유지 관리 계획을 만들 서버를 확장합니다.In Object Explorer, click the plus sign to expand the server where you want to create a maintenance plan.

  2. 더하기 기호를 클릭하여 관리 폴더를 확장합니다.Click the plus sign to expand the Management folder.

  3. 유지 관리 계획 폴더를 마우스 오른쪽 단추로 클릭하고 유지 관리 계획 마법사를 선택합니다.Right-click the Maintenance Plans folder and select Maintenance Plan Wizard.

  4. 마법사의 단계에 따라 유지 관리 계획을 만듭니다.Follow the steps of the wizard to create a maintenance plan. 자세한 내용은 Use the Maintenance Plan Wizard을 참조하세요.For more information, see Use the Maintenance Plan Wizard.

디자인 화면을 사용하여 유지 관리 계획을 만들려면To create a maintenance plan using the design surface

  1. 개체 탐색기에서 더하기 기호를 클릭하여 유지 관리 계획을 만들 서버를 확장합니다.In Object Explorer, click the plus sign to expand the server where you want to create a maintenance plan.

  2. 더하기 기호를 클릭하여 관리 폴더를 확장합니다.Click the plus sign to expand the Management folder.

  3. 유지 관리 계획 폴더를 마우스 오른쪽 단추로 클릭하고 새 유지 관리 계획을 선택합니다.Right-click the Maintenance Plans folder and select New Maintenance Plan.

  4. 유지 관리 계획 만들기(유지 관리 계획 디자인 화면)의 단계에 따라 유지 관리 계획을 만듭니다.Create a maintenance plan following the steps in Create a Maintenance Plan (Maintenance Plan Design Surface).

Transact-SQL 사용Using Transact-SQL

유지 관리 계획을 만들려면To create a maintenance plan

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    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 AdventureWorks2012  
    GO  
    ALTER INDEX AK_Employee_LoginID ON HumanResources.Employee REORGANIZE WITH ( LOB_COMPACTION = ON )   
    GO  
    USE AdventureWorks2012  
    GO  
    ALTER INDEX AK_Employee_NationalIDNumber ON HumanResources.Employee REORGANIZE WITH ( LOB_COMPACTION = ON )   
    GO  
    USE AdventureWorks2012  
    GO  
    ALTER INDEX AK_Employee_rowguid ON HumanResources.Employee REORGANIZE WITH ( LOB_COMPACTION = ON )   
    GO  
    USE AdventureWorks2012  
    GO  
    ALTER INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee REORGANIZE WITH ( LOB_COMPACTION = ON )   
    GO  
    USE AdventureWorks2012  
    GO  
    ALTER INDEX IX_Employee_OrganizationNode ON HumanResources.Employee REORGANIZE WITH ( LOB_COMPACTION = ON )   
    GO  
    USE AdventureWorks2012  
    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:00.   
    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 sp_attach_schedule  
       @job_name = N'HistoryCleanupTask_1'  
       @schedule_name = N'RunOnce' ;   
    GO  
    

    참조 항목:For more information, see: