次の方法で共有


WID から SQL への WSUS データベースの移行

次の手順を使用して、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] を右クリックし、>、[デタッチ] の順にクリックします。>
  2. [既存の接続を削除する] をオンにして、[OK] をクリックします (アクティブな接続が存在する場合は省略可能)。 [既存の接続の削除] オプションが選択され、[OK] オプションが強調表示されている [データベースのデタッチ] ダイアログ ボックスのスクリーンショット。

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

重要

次の手順では、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 で、[インスタンス] ノードの [データベース] を右クリックして、[アタッチ] をクリックします。 >
  2. [データベースのアタッチ] ボックスの [アタッチするデータベース] の下にある [追加] ボタンをクリックし、SUSDB.mdf ファイル (WID フォルダーからコピー) を見つけて、[OK] をクリックします。 [データベースのアタッチ] ダイアログ ボックスのスクリーンショット。[追加] オプションが強調表示されています。 [データベース ファイルの検索] ダイアログ ボックスのスクリーンショット。S U S D B M D F ファイルが強調表示されています。

ヒント

これは 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. [ログイン] を右クリックし、[新しいログイン...] をクリックします。>
  2. [全般] ページで、[ログイン名] (NT AUTHORITY\NETWORK SERVICE) を入力し、[既定のデータベース] を SUSDB に設定します。 [ログイン名] と [Defualt データベース] フィールドが設定されている [ログイン] ダイアログ ボックスの [全般] ページのスクリーンショット。
  3. [サーバー ロール] ページで、[public][sysadmin] が選択されていることを確認します。 [ログイン] ダイアログ ボックスの [サーバー ロール] ページのスクリーンショット。パブリック オプションと sysadmin オプションが選択されています。
  4. [ユーザー マッピング] ページで、次の手順を実行します。
    • [このログインにマップされたユーザー] で、[SUSDB] を選択します。
    • [SUSDB のデータベース ロール メンバーシップ] で、次のチェック ボックスをオンにします。
      • 公共
      • webService[ログイン] ダイアログ ボックスの [ユーザー マッピング] ページで [public] と [webService] のオプションが選択されたスクリーンショット。
  5. [OK]

[ログイン] の下に [NT AUTHORITY\NETWORK SERVICE] が表示されます。 [ログイン] の [N T AUTHORITY NETWORK SERVICE] を示すオブジェクト エクスプローラーのスクリーンショット。

データベース権限

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

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

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

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

    [FQDN]\[WSUSComputerName]$

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

    ヒント

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

    FQDN が Contosto.com** で、W S U S マシン名が Ws u s Machine であることを示す [ログイン] ダイアログ ボックスのスクリーンショット。

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

  5. [SUSDB のデータベース ロール メンバーシップ] で、[webservice] をオンにします。[ログイン] ダイアログ ボックスの [ユーザー マッピング] ページで [SUSDB] と [webService] のオプションが選択されたスクリーンショット。

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

    変更を有効にするために、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 を検索します。[レジストリ エディター] ダイアログ ボックスで UpdateServices-WidDatabase キーが強調表示されたスクリーンショット。

  5. キーの名前を UpdateServices-Database に変更します。[レジストリ エディター] ダイアログ ボックスでキー名が UpdateServices-Database に更新されたスクリーンショット。

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

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

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

    Start-Service IISADMIN
    Start-Service WsusService

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