メンテナンス プランの作成

このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、単一サーバーまたはマルチサーバーのメンテナンス プランを作成する方法について説明します。 Management Studio でメンテナンス プランを作成する方法には、メンテナンス プラン ウィザードを使用する方法とデザイン画面を使用する方法の 2 とおりがあります。 基本的なメンテナンス プランを作成する場合は、ウィザードが最適です。それに対して、デザイン画面を使用してプランを作成すると、高度なワークフローを利用できます。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    セキュリティ

  • メンテナンス プランを作成するために使用するもの:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

マルチサーバー メンテナンス プランを作成するには、1 台のマスター サーバーと 1 台以上の対象サーバーを含むマルチサーバー環境を構成する必要があります。 マルチサーバー メンテナンス プランは、マスター サーバー上で作成および管理する必要があります。 このプランは対象サーバー上でも表示できますが、対象サーバーでは管理できません。

セキュリティ

権限

メンテナンス プランを作成または管理するには、sysadmin 固定サーバー ロールのメンバーである必要があります。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

メンテナンス プラン ウィザードを使用してメンテナンス プランを作成するには

  1. オブジェクト エクスプローラーで、プラス記号をクリックして、メンテナンス プランを作成するサーバーを展開します。

  2. プラス記号をクリックして [管理] フォルダーを展開します。

  3. [メンテナンス プラン] フォルダーを右クリックし、[メンテナンス プラン ウィザード] をクリックします。

  4. ウィザードの手順に従って、メンテナンス プランを作成します。 詳細については、「メンテナンス プラン ウィザードの使用」を参照してください。

デザイン画面を使用してメンテナンス プランを作成するには

  1. オブジェクト エクスプローラーで、プラス記号をクリックして、メンテナンス プランを作成するサーバーを展開します。

  2. プラス記号をクリックして [管理] フォルダーを展開します。

  3. [メンテナンス プラン] フォルダーを右クリックし、[新しいメンテナンス プラン] をクリックします。

  4. メンテナンス プランの作成 (メンテナンス プラン デザイン画面)」の手順に従ってメンテナンス プランを作成します。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

メンテナンス プランを作成するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    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
    

詳細については、以下のトピックを参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]