WSUS 3.0 SP2 から Windows Server 2012 R2 WSUS への移行手順 その 2 (SQL -> SQL の場合)


みなさま、こんにちは。WSUS サポート チームです。

WSUS 3.0 SP2 から Windows Server 2012 / 2012 R2 WSUS への移行手順について、前回のポストでは、移行元と移行先の WSUS のデータベースに Windows Internal Database (WID) を使用している場合の移行手順でしたが、今回は SQL Server を使用している場合の手順についてご紹介いたします。
本手順も前回と同じように、以下の TechNet 情報を基に作成しています。

Windows Server 2012 への Windows Server Update Services の移行
https://msdn.microsoft.com/ja-jp/library/hh852339(v=ws.11).aspx

WID 版との違いとしては、実行するコマンドが一部異なりますが、その他の部分は同じものとなります。違いについてはわかりやすいように、赤字で記載しましたので、ご注目くださいませ。

また、前回のポストでも触れましたが、SQL Server を実行している移行元サーバーから、WID を実行している移行先サーバーへの移行はサポートされません。そのため、SQL Server から WID への乗り換えをご検討されている場合は、残念ながら本手順はご利用いただけず、新規構築が必要となりますので、ご注意ください。

WSUS 移行手順について (SQL -> SQL)

– 前提条件
移行元 サーバー : WSUS 3.0 SP2 環境
移行先 サーバー : Windows Server 2012 R2 の WSUS 環境
WSUS は移行元も移行先もデータベースに SQL Server を利用していることを前提とします。

– 手順
Windows Server 2012 R2 の WSUS のインストールとデータ移行の手順は以下の通りです。

1. Windows Server 2012 R2 の WSUS のインストール
2. データ移行
2.1. WSUS 更新プログラム バイナリを移行する
2.2. WSUS セキュリティ グループを移行する
2.3. WSUS データベースをバックアップする
2.4. WSUS データベースのバックアップを移行先サーバーで復元する
2.5. WSUS サーバー ID を変更する
(任意) 2.6. ポート番号を変更する
(任意) 2.7. インデックスを再構成する
(任意) 2.8. 不足ファイルをダウンロードする
3. 完了確認

各手順の詳細は以下に記載いたします。

1. Windows Server 2012 R2 の WSUS のインストール

Windows Server 2012 R2 の WSUS のインストールは、サーバー マネージャーから[役割と機能の追加] をクリックして、インストールする手順となります。こちらの手順は以下の TechNet 情報をそのままご利用いただけます。

– 手順 2: WSUS サーバーの役割をインストールする
http://technet.microsoft.com/ja-jp/library/hh852338.aspx

WSUS サーバーの役割のインストールが正常に完了すると、Windows Server Update Services 設定ウィザードが自動的に起動しますが、このウィザードは閉じてください。

 

2. データ移行

 

2.1. WSUS 更新プログラム バイナリを移行する

移行元のコンテンツ フォルダー「\\<移行元サーバー名>\WsusContent」の内容を、移行先のコンテンツ フォルダー「\\<移行先サーバー名>\WsusContent」へコピーします。エクスプローラー、xcopy コマンド、robocopy コマンド等を利用し、コピーすることが可能です。robocopy コマンドを利用する場合は、以下の通りです。

例) 移行元が WSUSOld で、移行先が WSUSNew の場合
robocopy \\WSUSOld\WsusContent \\WSUSNew\WsusContent /E /COPYALL

 

2.2. WSUS セキュリティ グループを移行する

WSUS Administrators ローカル セキュリティ グループと WSUS Reporters ローカル セキュリティ グループのみ手動で移行することを選択できます。

この手順を実行する前に、ローカル グループのメンバーであるドメイン ユーザーの名前を、移行先サーバーでも解決できることを確認します。移行元サーバーと移行先サーバーの属するドメインが異なる場合は、移行元ドメインのユーザー アカウントがあるフォレストのグローバル カタログ サーバーに移行先サーバーがアクセスできる必要があります。

WSUS Administrators ローカル セキュリティ グループと WSUS Reporters ローカル セキュリティ グループに手動でユーザーを移行するには、移行先サーバーで次の手順を実行します。

– 手順
1. スタート画面で lusrmgr.msc と入力して、Enter キーを押します。
2. ローカル ユーザーとグループ MMC スナップインのコンソール ツリーで、[ユーザー] をダブルクリックします。
3. 移行元サーバーの WSUS Administrators グループと WSUS Reporters グループに存在したユーザーを手動で作成します。
4. ローカル ユーザーとグループ MMC スナップインのコンソール ツリーで、[グループ] をダブルクリックします。
5. 移行元サーバーの WSUS Administrators グループと WSUS Reporters グループに存在したユーザーを移行先サーバーの WSUS Administrators グループと WSUS Reporters グループに手動で追加します。

 

2.3. WSUS データベースをバックアップする

移行元 WSUS サーバーにおいて以下の手順を実施し、WSUS データベース (SUSDB) をバックアップします。

1. 下記 URL より SQL Server Management Studio Express をダウンロードし、WSUS サーバーにインストールします。

Microsoft SQL Server Management Studio Express
http://www.microsoft.com/ja-jp/download/details.aspx?id=8961
(.NET Framework 2.0, MSXML 6.0 のインストールが必要となります。もし未導入の場合にはページ内のリンクからインストールを行って下さい)

※ OS が Windows Server 2008, Windows Server 2008 R2 の場合は、こちらもお使いいただけます。
Microsoft SQL Server 2008 R2 RTM – Management Studio Express
http://www.microsoft.com/ja-jp/download/details.aspx?id=22985

2. SQL Server Management Studio を起動して、以下の接続文字列は指定してインスタンスに接続します。

サーバーの種類 : データベース エンジン
サーバー名 : localhost
認証 : Windows 認証

3. [データベース] を展開し、[SUSDB] データベースを選択します。
4. データベースを右クリックし、[タスク] をポイントして、[バックアップ] をクリックします。[データベースのバックアップ] ダイアログ ボックスが表示されます。
5. [データベース] ボックスの一覧で、データベース名を確認します。
6. [バックアップの種類] ボックスの一覧で、[完全] をクリックします。
7. [コピーのみのバックアップ] を選択します。コピーのみのバックアップとは、定期的に実行される一連の SQL Server バックアップとは別の SQL Server バックアップです。
8. [バックアップ コンポーネント] で [データベース] をクリックします。
9. [名前] ボックスに表示されている既定のバックアップ セット名をそのまま使用するか、バックアップ セットの別の名前を入力します。
10. オプションで、[説明] ボックスに、バックアップ セットの説明を入力します。
11. 必要に応じてバックアップ セットの有効期限を指定します。有効期限データの検証を明示的に省略せずに、どの時点でバックアップ セットが期限切れになり上書きできるようにするかを指定します。
12. [ディスク] をクリックして、バックアップ先を選択します。
13. [ページの選択] ウィンドウの [オプション] をクリックして、詳細オプションを表示または選択します。
14. [メディアに上書きします] オプションで、次のいずれかをクリックします。
・[既存のメディア セットにバックアップする]: このオプションでは、[既存のバックアップ セットに追加する] または [既存のすべてのバックアップ セットを上書きする] をクリックします。必要に応じて、次の操作を行います。
・[メディア セット名とバックアップ セットの有効期限を確認する] をクリックすることで、メディア セットおよびバックアップ セットの有効期限が切れる日時をバックアップ操作で確認できます。
・[メディア セット名] ボックスに名前を入力します。名前を指定しないと、メディア セットは空白の名前で作成されます。メディア セット名を指定すると、メディア (テープまたはディスク) が検査され、名前がここで入力した名前と一致するかどうかが確認されます。
・ [新しいメディア セットにバックアップし、すべての既存のバックアップ セットを消去する]: このオプションでは、[新しいメディア セット名] ボックスに名前を入力し、オプションで [新しいメディア セットの説明] ボックスにメディア セットの説明を入力します。
15. [信頼性] セクションで、必要に応じて、次のチェック ボックスをオンにします。
・[完了時にバックアップを検証する]
・[メディアに書き込む前にチェックサムを行う]
・[エラーのまま続行する]
16. [OK] をクリックして、バックアップを作成します。
17. バックアップ完了後、指定したバックアップ先に作成されたバックアップ ファイルを移行先 WSUS サーバーの任意の場所にコピーします。

 

2.4. WSUS データベースのバックアップを移行先サーバーで復元する

移行先 WSUS サーバーにおいて以下の手順を実施し、WSUS データベース (SUSDB) を復元します。

1. 下記 URL より SQL Server Management Studio Express をダウンロードし、WSUS サーバーにインストールします。

Microsoft SQL Server 2012 Express
http://www.microsoft.com/ja-jp/download/details.aspx?id=29062
※ ダウンロードするプログラムの中から JPN\x64\SQLManagementStudio_x64_JPN.exe を選択します。

2. SQL Server Management Studio を起動して、以下の接続文字列は指定してインスタンスに接続します。

サーバーの種類 : データベース エンジン
サーバー名 : localhost
認証 : Windows 認証

3. [新しいクエリ] をクリックし、次の SQL コマンドをコピーして [実行] をクリックしてクエリを実行します。WSUS データベースを削除します。

—————————————-
USE master
GO
ALTER DATABASE SUSDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
DROP DATABASE SUSDB
GO
—————————————-

4. [実行] をクリックしてクエリを実行します。

5. 続けて、次の SQL コマンドをコピーして [実行] をクリックしてクエリを実行します。WSUS データベースをバックアップから復元します。

例) バックアップ ファイルを C:\SUSDB.bak に配置している場合
RESTORE DATABASE [SUSDB] FROM DISK = N’C:\SUSDB.bak’ WITH FILE = 1, MOVE N’SUSDB’ TO N’C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SUSDB.mdf’, MOVE N’SUSDB_log’ TO N’C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SUSDB_log.ldf’, NOUNLOAD, STATS = 10
※ “C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\” のパスは SQL Server 2012 の既定のパスとなります。こちらは SUSDB の配置場所となりますので、お客様環境に応じてご変更ください。

6. この結果として、次のエラー メッセージが表示される場合があります。エラー メッセージを無視して、続行してください。

メッセージ 3605、レベル 16、状態 1、行 1
データベース ‘SUSDB’ のスキーマの検証が失敗しました。
メッセージ 3013、レベル 16、状態 1、行 1
RESTORE DATABASE が異常終了しています。

7. 移行先 WSUS サーバー (Windows Server 2012 R2) でコマンド プロンプトを [管理者として実行] にて開き、次のコマンドを実行します。

例) WSUS のインストール フォルダーが D:\WSUS で、WSUS 用 SQL サーバー名が WSUSSQL01、インスタンス名が SQLINSTANCE の場合
cd %programfiles%\Update Services\Tools
wsusutil postinstall sql_instance_name=WSUSSQL01\SQLINSTANCE content_dir=D:\WSUS
※ 既定のインスタンスを使用している場合は、WSUSSQL01\SQLINSTANCE の部分は WSUSSQL01 のみで問題ありません。

 

2.5. WSUS サーバー ID を変更する

移行先サーバーの WSUS サーバー ID は変更する必要があります。この手順を実行すると、移行プロセス中に WSUS 管理のクライアントは影響を受けなくなります。移行元サーバーと移行先サーバーが同じ ID を使用して実行されている場合、サーバーの一方に対して変更を行うと、クライアントとサーバー間の通信は失敗します。

1.移行先サーバーで、Windows PowerShell を [管理者として実行] にて開き、次のスクリプトを実行します。

$updateServer = get-wsusserver
$config = $updateServer.GetConfiguration()
$config.ServerId = [System.Guid]::NewGuid()
$config.Save()

2.サーバー ID が変更されたら、すぐにコマンド プロンプトを [管理者として実行] にて開き、次のコマンドを実行して新しい暗号化キーを生成します。

cd %programfiles%\Update Services\Tools
wsusutil postinstall sql_instance_name=WSUSSQL01\SQLINSTANCE
※ 既定のインスタンスを使用している場合は、WSUSSQL01\SQLINSTANCE の部分は WSUSSQL01 のみで問題ありません。

 

(任意) 2.6. ポート番号を変更する

Windows Server 2012 R2 の WSUS で使用される既定のポートは 8530 となりますが、ポート番号を 80 に変更する場合は、以下の手順を実施します。

WSUS 4.0 (Windows Server 2012) ポート番号変更について
http://blogs.technet.com/b/jpwsus/archive/2014/04/03/wsus-4-0-windows-server-2012.aspx

 

(任意) 2.7. インデックスを再構成する

移行前の WSUS データベースにてインデックスの再構成を定期的に実施していない場合は、インデックスの断片化が発生しており、クエリ パフォーマンスが劣化している可能性がございます。その場合は、インデックスを再構成することで、クエリ パフォーマンスを改善することができます。

コマンドを使ってインデックスの再構成を行う場合には、インデックス再構成用のスクリプトを sql ファイルに保存した上で、以下のコマンドを実行します。

例) C:\Temp\WsusDBMaintenance.sql に実行する SQL 文を保存しており、C:\Temp 配下に実行結果ログを出力する場合
sqlcmd -E -S <インスタンス名> -i C:\Temp\WsusDBMaintenance.sql -o C:\Temp\WsusDBMaintenance.out -f 65001
※ WSUS データベースに WID をご利用の場合、<インスタンス名> は、以下を指定します。

– Windows Server 2008 R2 以前
\\.\pipe\mssql$microsoft##ssee\sql\query
– Windows Server 2012 / 2012 R2
\\.\pipe\Microsoft##WID\tsql\query

出力ファイルに “Statistics for all tables have been updated” または”全テーブルの統計が更新されました” というメッセージが 表示されていれば、インデックスの再構成は完了しています。

~ 参考情報 ~
sqlcmd ユーティリティ
https://msdn.microsoft.com/ja-jp/library/ms162773.aspx

WSUS DB インデックスの再構成の手順について
http://blogs.technet.com/b/jpwsus/archive/2014/03/06/wsusdb.aspx

 

(任意) 2.8. 不足ファイルをダウンロードする

手順 2.1. でバイナリ ファイルは移行元からコピーされていますが、もし移行元で承認されていたにも関わらず、バイナリが不足している場合は、wsusutil reset コマンドで不足ファイルのみをダウンロードすることができます。もし、クライアントの接続確認の際に 80244019 エラー (HTTP status 404 File Not Found) が発生した場合は、サーバー側の WsusContent フォルダー配下に必要なファイルが不足している可能性がございますので、以下のコマンドの実行をお試しください。

cd /d “C:\Program Files\Update Services\Tools”
wsusutil reset

コマンド ラインからの WSUS の管理
https://technet.microsoft.com/ja-jp/library/cc720466(v=ws.10).aspx
—– 抜粋ここから —–
reset
データベースのすべての更新メタデータ行に、ファイル システムに格納されている対応する更新ファイルが含まれていることを確認します。更新ファイルが不足していたり壊れていた場合、WSUS は更新ファイルをもう一度ダウンロードします。
– WSUS データベースを復元した後
– トラブルシューティング時
—– 抜粋ここまで —–

 

3. 完了確認

移行先サーバーで WSUS 管理コンソールを起動し、初回の設定を必要に応じて行います。WSUS 管理コンソール起動後、更新プログラムの情報や承認情報、グループ情報が移行されていることをご確認ください。また、ダウンストリーム サーバーの接続や WSUS クライアントを移行先の WSUS サーバーと接続できるかどうか確認するためには、以下の内容をご確認ください。

3.5.セキュリティ設定を適用する
– ダウンストリーム サーバーを新しい WSUS サーバーに接続する
– WSUS クライアントを新しい WSUS サーバーに接続する
https://technet.microsoft.com/ja-jp/library/hh852349.aspx#BKMK_3_5


Comments (0)