LoginSignup
5
3

More than 5 years have passed since last update.

メンテナンスプランをバッチで編集する

Posted at

はじめに

メンテナンスプランを作り方を手順書にするとメンテめんどいし、手順実行するときミスする可能性があるしでいいことないので、バッチ化することになった。バッチでメンテナンスプランを作成・編集することを書きます。

0.注意事項

(1) 例に出てくるSQLやバッチについて

%LOGIN_NAME%→ログイン名
%LOGIN_PASSWORD%→ログインパスワード
%PLAN_NAME%→メンテナンスプランの名前
でそれぞれ読み替えてください。

(2) SSISのインストールに関して

SSISに内包されているdtutil.exeというものを使います。
このサイトを参考にしてMicrosoft SQL Server Integration Services(SSIS)をインスコしてください。

1.編集手順

(1) メンテナンスプランを作成

SQL Server Management Studio(マネスタ)からGUIベースでメンテナンスプランを作成します。

(2) dtsxファイルのエクスポート

(1) で作成したメンテナンスプランの情報をdtsxファイルというXML形式のファイルでエクスポートするためのコマンドをコマンドプロンプトから実行します。

dtutil.exe /SourceS . /SourceU "%LOGIN_NAME%" /SourceP "%LOGIN_PASSWORD%" /SQL "Maintenance Plans\%PLAN_NAME%" /Encrypt FILE;Cleanup.dtsx;0

出力されたファイルにはなぜかSQL Serverのログイン情報が消えているので、手で追加します。

(3) メンテナンスプランを実行するジョブの削除

SQLで削除可能です。sqlcmdからジョブを削除するSQLを実行しましょう。

(4) メンテナンスプランの削除

以下のコマンドを実行します。

dtutil /SourceS . /SourceU "%LOGIN_NAME%" /SourceP "%LOGIN_PASSWORD%" /SQL "Maintenance Plans\%PLAN_NAME%" /DEL

(5) メンテナンスプランのリストア

(2)で作成したdtsxファイルメンテナンスプランをリストアします。
以下のコマンドを実行します。

dtutil /FILE "%DTSX_PATH%" /COPY SQL;"Maintenance Plans\%PLAN_NAME%" /DestS . /DestU "%LOGIN_NAME%" /DestP "%LOGIN_PASSWORD%"

(6) メンテナンスプランを実行するジョブを再作成する。

SQLで作成可能です。sqlcmdからジョブを作成するSQLを実行しましょう。

2.TIPS

マネスタのバージョン間の互換性について

マネスタのバージョンが「2008」と「2014、2016」の間にはdtsxファイルの互換性がありませんでした。
また、マネスタのバージョンが2014と2016の間では、互換性がありますが、ログの出力先が違うため、注意が必要でした。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3