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 の使用

  1. [SUSDB] を右クリックし、[タスク][デタッチ] の順にクリックします。Screenshot of SQL Server Management Studio showing the SUSDB > Tasks > Detach option selected.
  2. [既存の接続を削除する] をオンにして、[OK] をクリックします (アクティブな接続が存在する場合は省略可能)。 Screenshot of the Detach Database dialog box with the Drop Existing Connections option selected and the OK option highlighted.

コマンド プロンプトを使用

重要

次の手順では、sqlcmd ユーティリティを使用して、WSUS データベース (SUSDB) を Windows Internal Database インスタンスからデタッチする方法を示します。 sqlcmd ユーティリティの詳細については、「sqlcmd ユーティリティ」を参照してください。

  1. 管理者特権でコマンド プロンプトを開きます
  2. 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 にコピーする

  1. SUSDB.mdfSUSDB_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 インスタンスにアタッチする

  1. SQL Server Management Studio で、[インスタンス] ノードの [データベース] を右クリックして、[アタッチ] をクリックします。 Screenshot of SQL Server Management Studio showing the Databases > Attach option selected.
  2. [データベースのアタッチ] ボックスの [アタッチするデータベース] の下にある [追加] ボタンをクリックし、SUSDB.mdf ファイル (WID フォルダーからコピー) を見つけて、[OK] をクリックします。 Screenshot of the Attach Databases dialog box with the Add option highlighted.Screenshot of the Locate Database Files dialog box with the S U S D B M D F file highlighted.

ヒント

これは 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 のインスタンスに対するログイン権限があることを確認します。

  1. SQL Server Management Studio を起動します。
  2. インスタンスを開きます。
  3. [セキュリティ] をクリックします。
  4. [ログイン] をクリックします。

NT AUTHORITY\NETWORK SERVICE アカウントが表示されます。 それ以外の場合は、新しいログイン名を追加する必要があります。

重要

SQL インスタンスが WSUS とは別のコンピューター上にある場合、WSUS サーバーのコンピューター アカウントは [FQDN]\[WSUSComputerName]$ の形式で表示されます。 それ以外の場合は、NT AUTHORITY\NETWORK SERVICE を WSUS サーバーのコンピューター アカウント ([FQDN]\[WSUSComputerName]$) に置き換えて、次の手順を使用して追加できます。これは、NT AUTHORITY\NETWORK SERVICE への権限の付与に "加えて" 行います。

NT AUTHORITY\NETWORK SERVICE の追加と権限の付与
  1. [ログイン] を右クリックし、[新しいログイン...] をクリックします。Screenshot of SQL Server Management Studio showing the Logins > New Login option selected.
  2. [全般] ページで、[ログイン名] (NT AUTHORITY\NETWORK SERVICE) を入力し、[既定のデータベース] を SUSDB に設定します。 Screenshot of the General page of the Login dialog box showing the Login name and Defualt database fields populated.
  3. [サーバー ロール] ページで、[public][sysadmin] が選択されていることを確認します。 Screenshot of the Server Roles page of the Login dialog box showing the public and sysadmin options selected.
  4. [ユーザー マッピング] ページで、次の手順を実行します。
    • [このログインにマップされたユーザー] で、[SUSDB] を選択します。
    • [SUSDB のデータベース ロール メンバーシップ] で、次のチェック ボックスをオンにします。
      • public
      • webServiceScreenshot of the User Mapping page of the Login dialog box showing the public and webService options selected.
  5. [OK]

[ログイン] の下に [NT AUTHORITY\NETWORK SERVICE] が表示されます。 Screenshot of the Object Explorer showing N T AUTHORITY NETWORK SERVICE under Logins.

データベース権限

  1. [SUSDB] を右クリックします。
  2. [プロパティ] を選択します。
  3. [アクセス許可] をクリックします。

NT AUTHORITY\NETWORK SERVICE アカウントが表示されます。

  1. それ以外の場合は、アカウントを追加します。

  2. [ログイン名] ボックスに、次の形式で WSUS マシンを入力します。

    [FQDN]\[WSUSComputerName]$

  3. [既定のデータベース][SUSDB] に設定されていることを確認します。

    ヒント

    次の例では、FQDN は Contosto.com、WSUS マシン名は WsusMachine です。

    Screenshot of the Login dialog box showing that the FQDN is Contosto.com** and the W S U S machine name is W s u s Machine.

  4. [ユーザー マッピング] ページの [このログインにマップされたユーザー] で、[SUSDB] データベースを選択します。

  5. [SUSDB のデータベース ロール メンバーシップ] で、[webservice] をオンにします。Screenshot of the User Mapping page of the Login dialog box showing the SUSDB and webService options selected.

  6. [OK] をクリックして設定を保存します。

    Note

    変更を有効にするために、SQL サービスの再起動が必要な場合があります。

レジストリを編集して WSUS を SQL Server インスタンスにポイントする

重要

慎重にこのセクションの手順に従います。 レジストリを正しく変更しないと、重大な問題が発生する可能性があります。 変更する前に、問題が発生した場合に復元するためにレジストリをバックアップします。

  1. [スタート] ボタン、 [ファイル名を指定して実行] の順にクリックし、「regedit」と入力して [OK] をクリックします。

  2. キー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\UpdateServices\Server\Setup\SqlServerName を検索します。

  3. [値] テキスト ボックスに「[ServerName]\[InstanceName]」と入力し、[OK] をクリックします。 インスタンス名が既定のインスタンスの場合は、「[ServerName]」と入力します。

  4. キー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\Installed Role Services\UpdateServices-WidDatabase を検索します。Screenshot of the Registry Editor dialog box with the UpdateServices-WidDatabase key highlighted.

  5. キーの名前を UpdateServices-Database に変更します。Screenshot of the Registry Editor dialog box showing the key name update to UpdateServices-Database.

    Note

    このキーを更新しない場合、WsusUtil は、移行した SQL インスタンスではなく、WID のサービスに対して試行されます。

WSUS サーバーで IIS サービスと WSUS サービスを開始する

PowerShell (管理者特権) から、次を実行します。

    Start-Service IISADMIN
    Start-Service WsusService

Note

WSUS コンソールを使用している場合は、閉じてから再起動します。

警告

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 が存在することを確認してください。