メンテナンス プラン

更新 : 2006 年 12 月 12 日

メンテナンス プランでは、データベースを最適化したり、データベースを定期的にバックアップしたり、データベースの不整合をなくしたりするために必要なタスクのワークフローを作成します。メンテナンス プラン ウィザードでも主要なメンテナンス プランを作成できますが、プランを手動で作成するとより柔軟性が高くなります。SQL Server 2005 データベース エンジンでは、メンテナンス プランによって、SQL Server エージェント ジョブが実行する Integration Services パッケージが作成されます。このようなメンテナンス タスクは、手動で実行することも、定期的に自動実行することもできます。

SQL Server 2005 メンテナンス プランには、次の機能が用意されています。

  • さまざまな一般的なメンテナンス タスクを使用するワークフローの作成。カスタム Transact-SQL スクリプトを独自に作成することもできます。
  • 概念的な階層。各プランでは、ワークフローの作成や編集を行えます。各プランのタスクはサブプランにグループ化できます。サブプランは、異なるタイミングで実行されるようにスケジュールを設定できます。
  • マスタ サーバー/対象サーバー環境で使用できるマルチサーバーのプランのサポート。
  • プランの履歴をリモート サーバーのログに記録する際のサポート。
  • Windows 認証と SQL Server 認証のサポート。 可能な場合は、Windows 認証を使用します。

メンテナンス プランは、互換性レベルが 80 以上に設定されているデータベースに対してのみ実行されます。SQL Server Management Studio のメンテナンス プラン デザイナでは、互換性レベルが 70 以下に設定されているデータベースは表示されません。

SQL Server 2000 データベース メンテナンス プランを SQL Server 2005 プランに移行できます。移行するには、SQL Server 2000 データベース メンテナンス プランを右クリックし、[移行] をクリックします。詳細については、「SQL Server 2000 データベース メンテナンス プランを移行する方法」を参照してください。

メンテナンス プランの作成と管理およびオブジェクト エクスプローラでのメンテナンス プランの表示を行うには、sysadmin ロールのメンバである必要があります。オブジェクト エクスプローラの SQL Server エージェント ノードは、固定サーバー ロール sysadmin、固定データベース ロール SQLAgentReaderRoleSQLAgentUserRole、または SQLAgentOperatorRole のメンバだけに表示されます。

マルチサーバー環境でメンテナンス プランを作成または管理するための追加構成

対象サーバー (TSX) 上で SQL Server エージェントを実行するアカウントが、マスタ サーバー (MSX) 上で sysadmin 固定サーバー ロールのメンバとなっていない場合、配布されたメンテナンス プランをインポートするにはマスタ サーバー上でアカウントに次の権限を与える必要があります。

USE msdb;
GO
EXEC sys.sp_addrolemember @rolename = 'db_dtsoperator', @membername = 'TargetServersRole';
ms187658.note(ja-jp,SQL.90).gifメモ :
TargetServersRole アカウントを db_dtsoperator ロールに追加すると、対象サーバー上で SQL Server エージェントを実行するアカウントでは、マスタ サーバー上の msdb に格納されているすべての SSIS パッケージを読み取ることができます。この内容には、パッケージ内に格納されているパスワードも含まれます。

この権限が与えられていない場合、メンテナンス プランを実行するマルチサーバーの SQL Server エージェント ジョブが対象サーバーで更新されると、対象サーバーの SQL Server エージェント ログに次のエラーが記録されます。

"メンテナンス プラン <NameOfMaintenancePlan> を <NameOfMasterServer> からインポートできませんでした。Microsoft.SqlServer.Dts.Runtime.DtsRuntimeException。SQL のフォルダを検索中に、OLE DB エラーが発生し、エラー コード 0x80040E09 (EXECUTE 権限がオブジェクト 'sp_dts_getfolder'、データベース 'msdb'、スキーマ 'dbo' で拒否されました) が返されました。"

これらの権限が変更された後は、対象サーバーで既存の配布済みメンテナンス プランをそれぞれ再読み込みする必要があります。各プランに小さな変更を加え、保存してください。こうすることで、対象サーバーではメンテナンス プランがマスタ サーバーから強制的に再読み込みされます。対象サーバーでは、既定により、ジョブがマスタ サーバーから 60 秒ごとに更新されます。メンテナンス プランを保存してから、そのプランが対象サーバー上に表示され実行可能になるまでには、少なくとも 120 秒の遅延があります。

メンテナンス プランの作成方法の詳細については、「メンテナンス プランを作成する方法」を参照してください。

参照

処理手順

マルチサーバー メンテナンス プランを作成する方法
メンテナンスのプランとサブプランを追加または削除する方法

概念

メンテナンス プラン ウィザード

その他の技術情報

メンテナンス タスク

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

変更内容 :
  • SSIS のインストール要件に関する注意事項を削除しました。
  • SQL Server エージェント ノードを表示できる固定サーバー ロールと固定データベース ロールの一覧を修正しました。
  • 「マルチサーバー環境でメンテナンス プランを作成または管理するための追加構成」を追加しました。
新しい内容 :
  • SQL Server 2005 Service Pack 2 で追加された次の機能に関する内容を追加しました。
    • マルチサーバーのプランのサポート。
    • 異なるタイミングに実行されるようにスケジュールを設定できるサブプランにプラン タスクをグループ化する機能。
    • リモート サーバーへのログ記録のサポート。

2006 年 7 月 17 日

新しい内容 :
  • メンテナンス プランに関して、互換性レベルが 80 以上に設定されているデータベースのみに対して実行されるという情報を追加しました。

2005 年 12 月 5 日

新しい内容 :
  • SSIS をインストールする必要があるという要件を追加しました。