WID から SQL への WSUS データベースの移行
適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2012、Windows Server 2012 R2、Windows Server 2016
次の手順を使用して、WSUS データベース (SUSDB) を Windows Internal Database インスタンスから SQL Server のローカル インスタンスまたはリモート インスタンスに移行します。
前提条件
- SQL インスタンス。 既定の MSSQLServer またはカスタム インスタンスを指定できます。
- SQL Server Management Studio
- WID ロールがインストールされた WSUS
- IIS (これは通常、サーバー マネージャーを通して WSUS をインストールする場合は含まれています)。 まだインストールされていない場合は、インストールする必要があります。
WSUS データベースの移行
WSUS サーバーで IIS サービスと WSUS サービスを停止する
PowerShell (管理者特権) から、次を実行します。
Stop-Service IISADMIN
Stop-Service WsusService
SUSDB を Windows Internal Database からデタッチする
SQL Management Studio の使用
- [SUSDB] を右クリックし、[タスク]、[デタッチ] の順にクリックします。
- [既存の接続を削除する] をオンにして、[OK] をクリックします (アクティブな接続が存在する場合は省略可能)。
コマンド プロンプトを使用
重要
次の手順では、sqlcmd ユーティリティを使用して、WSUS データベース (SUSDB) を Windows Internal Database インスタンスからデタッチする方法を示します。 sqlcmd ユーティリティの詳細については、「sqlcmd ユーティリティ」を参照してください。
- 管理者特権でコマンド プロンプトを開きます
- sqlcmd ユーティリティを使用して、WSUS データベース (SUSDB) を Windows Internal Database インスタンスからデタッチするには、次の SQL コマンドを実行します。
sqlcmd -S \\.\pipe\Microsoft##WID\tsql\query
use master
GO
alter database SUSDB set single_user with rollback immediate
GO
sp_detach_db SUSDB
GO
SUSDB ファイルを SQL Server にコピーする
- SUSDB.mdf と SUSDB_log.ldf を WID データ フォルダー (%SystemDrive%\Windows\WID\Data) から SQL インスタンス データ フォルダーにコピーします。
ヒント
たとえば、SQL インスタンス フォルダーが C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL、WID データ フォルダーが C:\Windows\WID\Data の場合は、SUSDB ファイルを C:\Windows\WID\Data から C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data にコピーします。
SUSDB を SQL インスタンスにアタッチする
- SQL Server Management Studio で、[インスタンス] ノードの [データベース] を右クリックして、[アタッチ] をクリックします。
- [データベースのアタッチ] ボックスの [アタッチするデータベース] の下にある [追加] ボタンをクリックし、SUSDB.mdf ファイル (WID フォルダーからコピー) を見つけて、[OK] をクリックします。
ヒント
これは Transact-Sql を使用して実行することもできます。 手順については、データベースのアタッチに関する SQL ドキュメントを参照してください。
例 (前の例のパスを使用):
USE master;
GO
CREATE DATABASE SUSDB
ON
(FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\SUSDB.mdf'),
(FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log\SUSDB_Log.ldf')
FOR ATTACH;
GO
SQL Server とデータベース ログインおよび権限を確認する
SQL Server ログイン権限
SUSDB をアタッチした後、次の手順に従って、NT AUTHORITY\NETWORK SERVICE に、SQL Server のインスタンスに対するログイン権限があることを確認します。
- SQL Server Management Studio を起動します。
- インスタンスを開きます。
- [セキュリティ] をクリックします。
- [ログイン] をクリックします。
NT AUTHORITY\NETWORK SERVICE アカウントが表示されます。 それ以外の場合は、新しいログイン名を追加する必要があります。
重要
SQL インスタンスが WSUS とは別のコンピューター上にある場合、WSUS サーバーのコンピューター アカウントは [FQDN]\[WSUSComputerName]$ の形式で表示されます。 それ以外の場合は、NT AUTHORITY\NETWORK SERVICE を WSUS サーバーのコンピューター アカウント ([FQDN]\[WSUSComputerName]$) に置き換えて、次の手順を使用して追加できます。これは、NT AUTHORITY\NETWORK SERVICE への権限の付与に "加えて" 行います。
NT AUTHORITY\NETWORK SERVICE の追加と権限の付与
- [ログイン] を右クリックし、[新しいログイン...] をクリックします。
- [全般] ページで、[ログイン名] (NT AUTHORITY\NETWORK SERVICE) を入力し、[既定のデータベース] を SUSDB に設定します。
- [サーバー ロール] ページで、[public] と [sysadmin] が選択されていることを確認します。
- [ユーザー マッピング] ページで、次の手順を実行します。
- [このログインにマップされたユーザー] で、[SUSDB] を選択します。
- [SUSDB のデータベース ロール メンバーシップ] で、次のチェック ボックスをオンにします。
- public
- webService
- [OK]
[ログイン] の下に [NT AUTHORITY\NETWORK SERVICE] が表示されます。
データベース権限
- [SUSDB] を右クリックします。
- [プロパティ] を選択します。
- [アクセス許可] をクリックします。
NT AUTHORITY\NETWORK SERVICE アカウントが表示されます。
それ以外の場合は、アカウントを追加します。
[ログイン名] ボックスに、次の形式で WSUS マシンを入力します。
[FQDN]\[WSUSComputerName]$
[既定のデータベース] が [SUSDB] に設定されていることを確認します。
ヒント
次の例では、FQDN は Contosto.com、WSUS マシン名は WsusMachine です。
[ユーザー マッピング] ページの [このログインにマップされたユーザー] で、[SUSDB] データベースを選択します。
[SUSDB のデータベース ロール メンバーシップ] で、[webservice] をオンにします。
[OK] をクリックして設定を保存します。
Note
変更を有効にするために、SQL サービスの再起動が必要な場合があります。
レジストリを編集して WSUS を SQL Server インスタンスにポイントする
重要
慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。
[スタート] ボタン、 [ファイル名を指定して実行] の順にクリックし、「regedit」と入力して [OK] をクリックします。
キー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\UpdateServices\Server\Setup\SqlServerName を検索します。
[値] テキスト ボックスに「[ServerName]\[InstanceName]」と入力し、[OK] をクリックします。 インスタンス名が既定のインスタンスの場合は、「[ServerName]」と入力します。
キー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\Installed Role Services\UpdateServices-WidDatabase を検索します。
キーの名前を UpdateServices-Database に変更します。
Note
このキーを更新しない場合、WsusUtil は、移行した SQL インスタンスではなく、WID のサービスに対して試行されます。
WSUS サーバーで IIS サービスと WSUS サービスを開始する
PowerShell (管理者特権) から、次を実行します。
Start-Service IISADMIN
Start-Service WsusService
Note
WSUS コンソールを使用している場合は、閉じてから再起動します。
WID ロールのアンインストール (非推奨)
警告
WID ロールを削除すると、WSUSUtil.exe によるインストール後のタスクで必要なスクリプトが含まれるデータベース フォルダー (%SystemDrive%\Program Files\Update Services\Database) も削除されます。 WID ロールをアンインストールする場合は、事前に %SystemDrive%\Program Files\Update Services\Database フォルダーをバックアップしてください。
PowerShell を使用して、次の操作を実行します。
Uninstall-WindowsFeature -Name 'Windows-Internal-Database'
WID ロールが削除された後、レジストリ キー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\Installed Role Services\UpdateServices-Database が存在することを確認してください。