データベース保守計画を使用して、基本的なデータベース管理アクティビティを自動化できます。メンテナンスプランは、SQLServerエージェントジョブによって構成されたスケジュールで実行されるSQLServer統合サービスパッケージです。メンテナンスプランを使用して、次のタスクを自動化できます。
- データベースを縮小する
- データベースのバックアップ
- オペレーターへの通知
- データベース統計を更新する
- データベースの整合性チェックを実行します
- SQLServerエージェントジョブを実行する
- T-SQLスクリプトを実行する
- インデックスの再編成または再構築
さらに、データベースメールを有効にすることで、メンテナンスプランの実行状況をDBAに通知するアラートを設定できます。
この記事では、ユーザーデータベースでデータベースの整合性チェックを実行するための基本的なメンテナンスプランを作成する方法について説明します。
データベース保守計画を作成するための前提条件
データベース保守計画を作成するための前提条件は次のとおりです。
- 統合サービスをインストールする必要があります
- SQLServerエージェントサービスが実行されている必要があります。
統合サービスが実行されている必要があります
前述したように、データベース保守計画はSQL Server統合サービスパッケージであるため、それらを実行するには、統合サービスをインストールする必要があります。
統合サービスがインストールされていることを確認するには、SQLServer構成マネージャーを開きます。 、SQLServerサービスを選択します 左ペインにあります。リストの一番上に統合サービスのバージョンを表示できます。
統合サービスがインストールされていない場合は、SQLServerインストーラーを使用してインストールします。参考のためにこの記事を参照してください。
SQLServerエージェントサービスが実行されている必要があります
データベースメールは、SQLServerエージェントサービスを使用して電子メールまたはメッセージを送信します。エージェントサービスが実行されていない場合、SQLServerは電子メールを送信できません。エージェントサービスが実行されていない間は、すべてのメッセージがキューに入れられ、エージェントサービスが開始されると、キューに入れられたすべてのメッセージが配信されます。
エージェントサービスのステータスを確認するには、SQL ServerManagementStudioで次のコマンドを実行します。
use master go EXEC xp_servicecontrol N'querystate',N'SQLAgent$CMS'
出力は次のとおりです。
SQL Serverエージェントサービスが実行されていない場合は、開始する必要があります。 SQL Serverエージェントサービスを開始するには、サービスを開き、コントロールパネルに移動します 、管理ツールをクリックします 、[サービス]をクリックします 。サービスのリストで、SQLServerエージェントを検索します 。 SQLServerエージェントを右クリックします 開始を選択します 。
メンテナンスプランのステータスをメールで送信する場合は、データベースメールを有効にする必要があります。 これは、データベースインスタンスの構成パラメーターを変更することで実行できます。デフォルトでは、データベースメール 機能が有効になっていません。 DatabaseMailXPsの構成値を変更して有効にする必要があります。
データベースメールを有効にするには 、次のクエリを順番に実行します。
USE master Go EXEC sp_configure 'show advanced options', 1 --Enable advance option Go RECONFIGURE Go EXEC sp_configure 'Database Mail XPs,' 1 --Enable database Mail option Go RECONFIGURE Go EXEC sp_configure 'show advanced options', 0 --Disabled advanced option Go RECONFIGURE Go
デモのセットアップ
このデモでは、 FileStream_Demoでデータベースの整合性チェックを実行するためのメンテナンスプランを作成します データベース。メンテナンスプランは毎週日曜日の午前12:00に実行されます。
SQLServerのバージョン :SQLServer2017。
ソフトウェア :SQL ServerManagementStudio。
データベース保守計画は、保守計画ウィザードを使用して作成できます。 または保守計画の設計面を使用します。まず、メンテナンスプランウィザードを使用してメンテナンスプランを作成する方法を説明します 。
メンテナンスプランウィザードを使用してメンテナンスプランを作成する
データベース保守計画ウィザードを使用して、複数の保守計画を作成できます。 。ウィザードには、段階的に構成できる事前定義されたメンテナンスタスクがいくつかあります。
ウィザードを使用してメンテナンスプランを作成するには、SSMSを開き、[管理]を展開します 、メンテナンスプランを右クリックします メンテナンスプランウィザードを選択します
メンテナンスプランウィザード ダイアログボックスが開き、ウィザードを使用して実行できるタスクの概要を確認できます。無視して次へをクリックしてください 。
次のダイアログで、メンテナンスプランの名前と説明を指定します。保守計画を実行するユーザーまたはアカウントを指定します。前述したように、ウィザードを使用して複数のメンテナンスプランを作成できます。このダイアログには、スケジュールを構成するためのオプションが含まれています。すべてのタスクを同時に実行することも、プラン全体に対して単一のスケジュールを指定することもできます。 名前で目的の名前と説明を指定します および説明 テキストボックス。 SQLServerエージェントサービスアカウントの場合、SQLServerエージェントはメンテナンスプランを実行します が選択されています。プランは個別に実行されるため、プラン全体に対して単一のスケジュールを選択するか、スケジュールなしを選択します。 。
スケジュールを設定するには、スケジュールをクリックします 変更の横にあるボタン テキストボックス。 新しいジョブスケジュール ダイアログボックスが開きます。 名前で目的の名前を指定します テキストボックス。メンテナンスプランは毎週実行されるため、定期的を選択します スケジュールタイプ ドロップダウンボックス。前述のように、メンテナンスプランは毎週実行されるため、毎週を選択します ドロップダウンボックスで、日曜日をチェックします。 タスクは午前12:00に実行されるため、午前12:00:00と入力します。 対応するテキストボックスに入力します。 OKをクリックします 。
スケジュールを設定したら、[次へ]をクリックします プランのプロパティの選択 ダイアログ。
メンテナンスタスクの選択 ダイアログで、データベースの整合性の確認を選択します チェックボックスをオンにして、次へをクリックします 。
複数のメンテナンスタスクが設定されている場合は、メンテナンスタスクの順序を選択で注文できます。 ダイアログ。構成されているタスクは1つだけなので、ここでアクションを実行する必要はありません。 次へをクリックします 。
次のダイアログで、メンテナンスタスクを実行するデータベースの名前を選択します。 FileStream_Demoを選択します データベースからのデータベース ドロップダウンボックスをクリックして、[次へ]をクリックします 。
次のダイアログで、ロギングオプションを選択します。メンテナンスプランの実行状況をテキストファイルに書き込むか、アラートメールを送信することができます。目的のオプションを選択して、[次へ]をクリックします 。
次のダイアログでは、メンテナンスプランを作成するために実行されたタスクの概要を表示できます。それらを確認し、完了をクリックします 。
プランが作成されたら、メンテナンスプランウィザード 正常に完了します。
MaintenancePlanDesignerサーフェスを使用してカスタムメンテナンスプランを作成する
説明したように、メンテナンスプランウィザード より多くの制御とカスタマイズオプションを提供しないいくつかの事前定義された基本的なタスクがあります。たとえば、メンテナンスタスクを実行する前にSQLスクリプトを実行する場合、ウィザードを使用して実行することはできません。
カスタムメンテナンスプランを作成するには、SQL Server Management Studioを開き、[管理]を展開します 、メンテナンスプランを右クリックします 、新しいメンテナンスプランを選択します 。
ダイアログで、メンテナンスプランの名前を指定し、[ OK]をクリックします。 。
メンテナンスプランデザイナー 開きます。 2つのセクションがあります。最初のセクションでは、メンテナンスプランの名前と説明を指定できます。既存のサブプランのプロパティを変更したり、既存のメンテナンスプランにサブプランを追加したりできます。
個々のコンポーネントの説明:
新しいメンテナンスプランを作成すると、SQLは Subplan_1という名前のデフォルトのサブプランを作成します 。そのプロパティを編集できます。デフォルトのサブプランを編集するには、サブプランのプロパティの編集をクリックします ボタン。または、グリッドビューからサブプランを選択してダブルクリックします。 サブプランのプロパティ ダイアログボックスが開きます。サブプランの名前を指定して、[ OK]をクリックします 。
前述したように、データベースの整合性チェックを実行するためのメンテナンスジョブを作成します。 データベース整合性タスクの確認をドラッグします メンテナンスプランから ツールボックスを開き、メンテナンスプランデザイナーにドロップします 表面。
データベース整合性タスクの確認をダブルクリックします 。 データベースの整合性の確認タスク ダイアログボックスが開きます。
ダイアログボックスで、接続からSQLServer接続を選択します ドロップダウンボックス。 新規をクリックして、新しい接続を作成することもできます ボタン。 データベースをクリックしたとき ドロップダウンボックス、複数のオプションを含むダイアログボックスが開きます。以下で整合性チェックを実行できます:
- すべてのデータベース
- システムデータベース(マスター、msdb、モデル、TempDB)のみ
- ユーザーデータベース
- 特定のデータベース。
オフラインになっているデータベースのリストを無視することもできます。前述のように、 FileStream_Demoで整合性チェックを実行します データベース。 FileStream_Demoを選択します これらのデータベースから リストしてOKをクリックします 。
データベース整合性チェックタスクが完了したら、その実行時間をスケジュールします。これを行うには、カレンダーをクリックします ツールバーのボタン。
または、サブプランをダブルクリックしてプロパティを開き、カレンダーをクリックすることもできます。 スケジュールの横にあるボタン テキストボックス。
新しいジョブスケジュール ダイアログボックスが開きます。前述のように、ジョブは毎週日曜日の午前12時に実行する必要があるため、それに応じてスケジュールを作成します。 名前 テキストボックスで、ジョブの目的の名前を指定し、目的のスケジュールタイプを選択します。 頻度 セクションで、毎週を選択します 発生 テキストボックス。ジョブは週に1回実行されるため、毎回繰り返すで1を選択します テキストボックス。その下で、日曜日を選択します 。 毎日の頻度 セクションで、1回発生で時間を指定します テキストボックス。ジョブは午前12:00に実行されるため、午前12:00:00と入力します。最後に、ジョブの開始日を選択して、[ OK]をクリックします。 。
スケジュールが作成されると、スケジュールでスケジュールの概要を確認できます。 サブプラングリッドビューの列。
メンテナンスプランを作成したら、それを保存します。メンテナンスプランはメンテナンスプランで確認できます 管理の下のディレクトリ 。
SQLServerエージェントサービスはメンテナンスプランを実行します。したがって、メンテナンス計画のスケジュールはジョブの下に表示されます。 ディレクトリ。表示するには、SSMSを開き、SQLServerエージェントを展開します 、ジョブを展開します 。
メンテナンスプランは手動で実行できます。これを行うには、メンテナンスプランを右クリックします 実行をクリックします 。
メンテナンスプランは正常に完了します。 レポートをクリックすると、レポートを表示できます ボタンをクリックしてレポートを表示を選択します オプション。
また、既存のメンテナンスタスクをファイルシステムにエクスポートして別のサーバーに移動し、別のサーバーに手動で展開することもできます。前述したように、データベース保守計画は、MSDBデータベースに格納されている統合サービスパッケージです。メンテナンスプランをファイルシステムにエクスポートするには、SQL Server Management Studioを使用して統合サービスに接続し、保存されたパッケージを展開します。 ノードをクリックし、メンテナンスプランを展開します 、データベース整合性チェックジョブという名前のメンテナンスプランを右クリックします パッケージのエクスポートを選択します 。
エクスポートパッケージ ダイアログボックスが開きます。 パッケージの場所 ドロップダウンボックスで、ファイルシステムを選択します 。 パッケージパス内 テキストボックスに、メンテナンスプランを保存する場所を入力し、[OK]をクリックします。
メンテナンスプランは希望の場所にエクスポートされます。
概要
この記事では、次のことを説明しました:
- メンテナンスプランとは;
- メンテナンスプランを作成するための前提条件;
- カスタマイズされたメンテナンスプランを作成する方法;
- ウィザードを使用してメンテナンスプランを作成する方法;
- メンテナンスプランをファイルシステムにエクスポートする方法。
便利なツール:
dbForge Studio for SQL Server – SQL Serverの管理、管理、開発、データレポート、および分析のための強力なIDE。