Windows Server

WSUSのDB移行

2016/10/05

仕事の話。

WSUSのDISK容量がひっ迫していたため、
データを引っ越しする必要がありました。

アップデートのパッチだけ動かすのは簡単です。
コマンド一発で、ファイルコピーを含めてやってくれます。

cd C:¥Program Files¥Update Services¥Tools
C:¥Program Files¥Update Services¥Tools>wsusutil.exe movecontent D:¥WSUS D:¥WSUS¥movecontent.log

wsusutil.exeはパスが切れていないので
上記のようにカレントディレクトリを移動してから実行する必要がありました。

上記を実行すると、
・WSUSのデータ保存場所をD:\WSUSに変更する
・既にあるデータをD:\WSUSにコピーする(移動ではない)
・D:¥WSUS¥movecontent.logにコピーのログを吐く

が行われます。
robocopyとは異なりFromにあたる部分は記載する必要無しです。
すでにデータコピーをしている場合は、 -skipcopyを後ろにつけると
ファイルコピーはしません。

で、ここからが曲者なのですが
データベースのパスは別で用意されていて
これはwsusutil.exeだけだと移動できません。

WSUSのサーバはWIDというデータベースエンジンが稼働していて
そのSUSDBというデータベースをデタッチしてやる必要があります。

そこでまずSQLManagementStudioをダウンロードしてインストールします。
これがインストールされるとWIDにログインできるのですが
またログインにも一苦労します。

WIDへのログインは、Windows2008系ではWindows認証で
\\.\pipe\mssql$Microsoft##SSEE\sql\query

へログインすれば良いはずなのですがどうしてもログインできない。
サービスの一覧からWindows Internal Databaseのプロパティを確認すると
ログインアカウントが"Network Service"となっている。

このアカウントってオブジェクトとして実体がない(らしい)です。
そこでこのアカウントを.\administratorに変更します。
もとのNetwork Serviceのパスワード●●●●●ってなっているのを消すの心配なのですが
実は空パスワードなので消してしまって問題ないです。

サービスのログインアカウントを.\administratorに変更したところ
SQLServerManagementStudioにログインすることができました。
無事ログインできたところで、コマンドプロンプトからWSUSのサービスを一度止めます。

net stop wsusservice
net stop w3svc

「SUSDB」というデータベースがアタッチされているので、デタッチします。

ここまでくればもう大丈夫です。
あどはデータベースのファイル

SUSDB.mdf
SUSDB_log.ldf

をどこか好きなところにコピーして、SQLServerManagementStudioから改めてアタッチしてください。
アタッチ後、ManagementStudioを閉じ、WIDへのログインアカウントをNetwork Service(空パスワード)に戻します。

net start wsusservice
net start w3svc

でWSUS関連のサービスを立ち上げれば作業完了です。

おしまい。

ブログ村

ブログ村PV

PVアクセスランキング にほんブログ村

-Windows Server