はじめに
メンテナンスプランを作り方を手順書にするとメンテめんどいし、手順実行するときミスする可能性があるしでいいことないので、バッチ化することになった。バッチでメンテナンスプランを作成・編集することを書きます。
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の間では、互換性がありますが、ログの出力先が違うため、注意が必要でした。