Перенос базы данных WSUS из WID в SQL

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016

Выполните следующие действия, чтобы перенести базу данных WSUS (SUSDB) из экземпляра внутренняя база данных Windows в локальный или удаленный экземпляр SQL Server.

Предварительные требования

  • экземпляр SQL. Это может быть MSSQLServer по умолчанию или настраиваемый экземпляр.
  • SQL Server Management Studio.
  • WSUS с установленной ролью WID
  • СЛУЖБЫ IIS (обычно они включаются при установке WSUS через диспетчер сервера). Он еще не установлен, он должен быть.

Перенос базы данных WSUS

Остановка служб IIS и WSUS на сервере WSUS

В PowerShell (с повышенными привилегиями) выполните следующую команду:

    Stop-Service IISADMIN
    Stop-Service WsusService

Отключение SUSDB от внутренняя база данных Windows

Использование SQL Management Studio

  1. Щелкните правой кнопкой мыши SUSDB ->Tasks (>Отсоединить):Screenshot of SQL Server Management Studio showing the SUSDB > Tasks > Detach option selected.
  2. Установите флажок "Удалить существующие подключения" и нажмите кнопку "ОК " (необязательно, если существуют активные подключения). Screenshot of the Detach Database dialog box with the Drop Existing Connections option selected and the OK option highlighted.

Использование командной строки

Важно!

В этих шагах показано, как отключить базу данных WSUS (SUSDB) от экземпляра внутренняя база данных Windows с помощью служебной программы sqlcmd. Дополнительные сведения о служебной программе sqlcmd см. в разделе sqlcmd Utility.

  1. Откройте командную строку с повышенными привилегиями
  2. Выполните следующую команду SQL, чтобы отключить базу данных WSUS (SUSDB) от экземпляра внутренняя база данных Windows с помощью служебной программы sqlcmd:
        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.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

  1. В SQL Server Management Studio в узлеэкземпляра щелкните правой кнопкой мыши базы данных и выберите команду "Присоединить". Screenshot of SQL Server Management Studio showing the Databases > Attach option selected.
  2. В поле "Присоединение баз данных " в разделе "Базы данных" нажмите кнопку "Добавить " и найдите файл SUSDB.mdf (скопированный из папки WID), а затем нажмите кнопку "ОК". 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 должна быть указана в формате [полное доменное имя]\[WSUSComputerName]$. Если нет, приведенные ниже действия можно использовать для добавления, заменив NT AUTHORITY\NETWORK SERVICE учетной записью компьютера сервера WSUS ([полное доменное имя]\[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. На странице " Роли сервера " убедитесь, что выбраны общедоступные и системные администраторы . 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. Нажмите кнопку ОК.

Теперь вы увидите 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 в следующем формате:

    [полное доменное имя]\[WSUSComputerName]$

  3. Убедитесь, что для базы данных по умолчанию задано значение SUSDB.

    Совет

    В следующем примере полное доменное имя — 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:Screenshot of the User Mapping page of the Login dialog box showing the SUSDB and webService options selected.

  6. Нажмите кнопку "ОК" , чтобы сохранить параметры.

    Примечание

    Чтобы изменения вступили в силу, может потребоваться перезапустить службу SQL.

Измените реестр, чтобы указать wsus на экземпляр SQL Server

Важно!

Внимательно выполните действия, описанные в этом разделе. Неправильное изменение реестра может привести к серьезным проблемам. Перед внесением изменений создайте резервную копию реестра для его восстановления в случае возникновения проблем.

  1. Нажмите кнопку Пуск, выберите пункт Выполнить, введите regedit и нажмите кнопку ОК.

  2. Найдите следующий ключ: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\UpdateServices\Server\Setup\SqlServerName

  3. В текстовом поле "Значение" введите [Имя_сервера]\[Имя_экземпляра], а затем нажмите кнопку "ОК". Если имя экземпляра является экземпляром по умолчанию, введите [Имя_сервера].

  4. Найдите следующий ключ: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\Installed Role Services\UpdateServices-WidDatabaseScreenshot of the Registry Editor dialog box with the UpdateServices-WidDatabase key highlighted.

  5. Переименование ключа в UpdateServices-DatabaseScreenshot of the Registry Editor dialog box showing the key name update to UpdateServices-Database.

    Примечание

    Если вы не обновите этот ключ, WsusUtil попытается обслуживать WID, а не экземпляр SQL, на который вы перенесены.

Запуск служб IIS и WSUS на сервере WSUS

В PowerShell (с повышенными привилегиями) выполните следующую команду:

    Start-Service IISADMIN
    Start-Service WsusService

Примечание

Если вы используете консоль WSUS, закройте и перезапустите ее.

Предупреждение

При удалении роли WID также удаляется папка базы данных (%SystemDrive%\Program Files\Update Services\Database), содержащая скрипты, необходимые WSUSUtil.exe для задач после установки. Если вы решили удалить роль 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