WSUSのDBにWID(Windows Internal Database)を使う形でインストールした場合、強制的に「C:\Windows\WID」にインストールされます。
これだと大規模環境でWSUSを長期運用しているとSUSDBがどんどん肥大化してCドライブを圧迫してきちゃいます。
そこで今回はそのSUSDBを別ドライブへ移動する手順をご紹介します。
はじめに
まず今回手順をご紹介する環境はWindows Server 2016のWSUS環境になります。
追加でSQL Server Management Studio(SSMS)をインストールしています。
インストールしていない場合は次ステップを参考にインストールしてください。
# Sqlcmdでできちゃう方はコマンドでも大丈夫です。
SQL Server Management Studio (SSMS)のインストール
SSMSをこちらからダウンロードしてください。
ダウンロードが終わったらダブルクリックします。
インストール場所を指定して「インストール」をクリックします。
インストールが始まります。あとは待つだけでインストールが完了します。
移動先フォルダーの用意
まずSUSDBの移動先に空フォルダ-を作ります。
私は以下のように別ドライブに「SUSDB」フォルダーを新規作成しました。
※ WSUSってフォルダーはパッチの保存フォルダーです
サービス停止
以下のサービスを停止します。
World Wide Web 発行サービス(W3SVC)
WSUS Service(WsusService)
コマンドプロンプトか管理ツールのサービスで止めてください。
SUSDBのデタッチ
SSMSを起動します。
起動する際は必ず「管理者として実行」で起動してくださいね。
そうしないとWIDのDBに接続できません。
サーバー名は「\\.\pipe\MICROSOFT##WID\tsql\query」です。
DBに接続できたら次はデタッチです。
「データベース > SUSDB > 右クリックメニューからタスク > デタッチ」
「OK」をクリックします。
SUSDBがいなくなります。
SUSDBのコピー
「管理者としてコマンドプロンプトを起動」して以下のコマンドを実行します。
robocopy /W:0 /R:0 /MIR /SEC C:\Windows\WID\Data 移動先ディレクトリパス SUSDB*
成功すると
こんな感じです。
SUSDBのアタッチ
「データベース > 右クリックメニュー > アタッチ」
「追加」をクリックします。
Robocopyでコピーした先の[SUSDB.mdf]を指定して「OK」をクリックします。
アタッチしようとしているファイルが間違っていないことを確認して「OK」をクリックします。
データベースに[SUSDB]が表示されれば成功です!
サービスの起動
【サービスの停止】で止めた以下のサービスを開始します。
World Wide Web 発行サービス(W3SVC)
WSUS Service(WsusService)
正常性確認
WSUSの管理コンソールが起動するか確認します。
正常性が確認できたらC:\Windows\WID\DataにあるSUSDB.mdfとSUSDB_log.ldfは削除しても大丈夫です。
お疲れさまでした!
補足
デタッチした後のDBコピーでなぜわざわざrobocopyを使っているかというと、DBに特殊なアクセス権がついていて、それを設定する方法が面倒なのでアクセス権を含めてコピーするためです。
MSSQL$MICROSOFT##WID ってやつです。
あとで付ける場合はこんな手順を踏む必要があります。