[Q&A]

そこが知りたい
Windows Server Update Services(第8回)

Q1 WSUSサーバを移行するには?(1)―データベースのデタッチ

Microsoft MVP
Windows Server System - Microsoft Update Services
創報 山近 慶一
2008/03/19

はじめに

 Windows OSやアプリケーションの脆弱性を修正し、ウイルスや不正アクセスなどからシステムを保護するためには、更新プログラムの適用と管理が重要だ。本連載では、更新プログラムの管理にWindows Server Update Services(WSUS)を実際に活用しているユーザーならではの、よくある疑問や質問をピックアップして回答する。なお、特にバージョンを示さない場合は、最新のWSUS 3.0を対象とする。WSUS 3.0の機能や操作方法については、別稿の「[運用]これから始めるWSUS 3.0入門(前編)」と「[運用]これから始めるWSUS 3.0入門(後編)」も参照していただきたい。

Q&A

質問 WSUS 3.0サーバを別の新しいコンピュータに移行するには?

現象の詳細:

 WSUSサーバ・マシンのリプレイスのために、設定を含めてなるべく早くWSUSサーバを別のマシンに移行させる方法を知りたい。

回答 新サーバにIISとWSUSをインストール後、旧WSUSサーバからデタッチしたデータベース・ファイルを、新サーバへアタッチする。

回答の詳細:

 WSUS 3.0には「Wsusutil.exe」コマンドを使ったインポート/エクスポートの仕組みはあるが、バックアップ/復元機能は用意されていないので、バックアップ・ユーティリティを使ってOSごとバックアップ/復元するのが最も確実な方法だ。特に、WSUS 3.0では「WSUS Administrators」グループと「WSUS Reporters」グループを使って、ユーザーの操作を制限する機能があるため、WSUS単体での「完全な」バックアップ/復元は不可能に近い。グループとメンバシップの管理はWindowsのローカルSAMやActive Directoryの役目であり、同じ名前のグループやユーザーでもマシンが違えば内部のセキュリティIDが異なる可能性があるので、グループまで含めて完全な状態で別マシンに移行させようとすると、OSごとバックアップ/復元するしかないのだ。

 とはいえ、バックアップというのは基本的に同一のシステム環境に復元することが前提なので、別のサーバ・マシンに復元するとWindowsを起動できないなどの問題が起きる可能性がある。これではせっかくのバックアップも用をなさないので、次善策としてグループ管理機能の完全な移行は妥協して(必要なら移行後に手動で再設定する)、SQL Server(Windows Internal Database)の「アタッチ」と「デタッチ」(データベース・ファイルの取り付けと取り外し)の機能を使ってデータベースを引っ越しさせてみよう。もちろん、新サーバにはWSUSサーバ・コンポーネントを新規インストールするという前提だ。

 前回解説したデータベースのバックアップ/復元と、今回解説するデタッチ/アタッチの違いは次のとおりである。簡単にいえば、オリジナルに近い「コピー」を作成するのがバックアップ/復元で、オリジナルをそのまま「移動」するのがデタッチ/アタッチである。

  • 旧サーバでデータベースをバックアップして新サーバに復元すると、新旧サーバともに同一設定のWSUSサーバを実行できる。バックアップ時に未完了の(コミットされていない)トランザクションは切り捨てられるので、復元時には未確定データは含まれない。

  • 旧サーバでデータベースをデタッチして新サーバにアタッチすると、旧サーバでは再度アタッチするまでWSUSサーバを実行できない。デタッチ時にコミットされていないトランザクションがあっても、アタッチした新サーバでトランザクションを継続できる。

 今回は、アタッチとデタッチを使ったWSUSサーバの移行方法について解説する。

更新プログラム・ファイルのバックアップと復元

 データベースを旧サーバから新サーバに移動する前に、更新プログラム・ファイルを新サーバにコピーする必要がある。新旧のサーバでコンテンツ・フォルダのパスが異なっていても構わないが、後でデータベースを修正する必要があるので、新サーバにWSUSサーバ・コンポーネントをインストールする際に、コンテンツ・フォルダのパスを記録しておこう。更新プログラム・ファイルのバックアップと復元については、前回の解説も参照してほしい。

データベースのデタッチ操作

 WSUSサーバの設定や更新プログラムの承認状態などは、「SUSDB」データベース用のデータベース・ファイルとログ・ファイルに分割して保存されているので、次の手順でデタッチを実行する。

1.WSUSサーバに、「Microsoft SQL Server 2005 用 Feature Pack- 2007 年 2 月(マイクロソフト ダウンロード センター)」に含まれる、「Microsoft SQL Server Native Client」と「Microsoft SQL Server 2005 コマンド ライン クエリ ユーティリティ」をインストールする。

2.コマンド・プロンプトを開いて次の2つのコマンドを順に実行し、WSUSサーバとIISを停止する。

NET STOP WsusService
IISRESET /STOP

 実行すると次のようになる。

画面1 WSUSサーバとIISの停止
「NET」コマンドと「IISRESET」コマンドで、WSUSサーバとIISを停止する。
WSUSサーバ・サービスを停止する。
IISの機能を停止する。

3.Windows Internal Databaseのサービスを一時停止して再開し、デタッチの障害となるセッションを一掃する。

NET PAUSE MSSQL$MICROSOFT##SSEE
NET CONTINUE MSSQL$MICROSOFT##SSEE

 実行結果は次のとおりである。

画面2 Windows Internal Databaseの一時停止と再開
Windows Internal Databaseのサービスを一時停止してすぐに再開させ、不要なセッションを終了させる。
Windows Internal Databaseのサービスを一時停止する。
Windows Internal Databaseのサービスを再開する。

4.Windows Internal Databaseから、WSUSが使用するSUSDBデータベースを切り離す。

Sqlcmd -S \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query -E -Q "EXEC sp_detach_db SUSDB"

 実行結果は次のとおりである。

画面3 SUSDBデータベースのデタッチ
SUSDBデータベースをデタッチして、Windows Internal Databaseから切り離す。
「sp_detach_db」ストアド・プロシージャでSUSDBをデタッチする。

 SUSDBデータベースが使用中でセッションが残っている場合、次のようなエラーが表示されるので、手順2に戻ってやり直そう。

画面4 SUSDBデータベースが使用中の場合のエラー
SUSDBデータベースが使用中だとデタッチ操作が失敗する。
セッションが残っていると「in use」となり、デタッチ操作は失敗する。
エラー・メッセージ。


 INDEX
  [Q&A]そこが知りたい Windows Server Update Services(第8回)
  Q1 WSUSサーバを移行するには?(1)―データベースのデタッチ
    Q1 WSUSサーバを移行するには?(2)―データベースのアタッチ

 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間