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

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

Prerequisites

  • Экземпляр 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 —> щелкните "Отсоединить": снимок экрана SQL Server Management Studio с выбранным параметром
  2. Установите флажок "Удалить существующие подключения" и нажмите кнопку "ОК " (необязательно, если существуют активные подключения). Снимок экрана: диалоговое окно

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

Important

В этих шагах показано, как отсоединить базу данных 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.

Tip

Например, если папка экземпляра 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 в узле экземпляра щелкните правой кнопкой мыши базы данных и нажмите кнопку "Подключить". Снимок экрана: среда SQL Server Management Studio с выбранным параметром
  2. В поле "Присоединение баз данных " в разделе "Базы данных" нажмите кнопку "Добавить " и найдите файл SUSDB.mdf (скопированный из папки WID), а затем нажмите кнопку "ОК". Снимок экрана: диалоговое окно Снимок экрана: диалоговое окно

Tip

Это также можно сделать с помощью 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. Если это не так, необходимо добавить его, добавив новое имя входа.

Important

Если экземпляр SQL находится на другом компьютере с WSUS, учетная запись компьютера СЕРВЕРА WSUS должна быть указана в формате [полное доменное имя]\[WSUSComputerName]$. Если нет, приведенные ниже шаги можно использовать для добавления, заменив NT AUTHORITY\NETWORK SERVICE учетной записью компьютера WSUS Server ([FQDN]\[WSUSComputerName]$) Это будет в дополнение кпредоставлению прав NT AUTHORITY\NETWORK SERVICE

Добавление NT AUTHORITY\NETWORK SERVICE и предоставление прав
  1. Щелкните правой кнопкой мыши имена входа и нажмите кнопку "Создать имя входа" ...Снимок экрана: СРЕДА SQL Server Management Studio с именами > входа Выбран параметр
  2. На странице "Общие " введите имя входа (NT AUTHORITY\NETWORK SERVICE) и задайте для базы данных по умолчанию значение SUSDB. Снимок экрана: страница
  3. На странице "Роли сервера " убедитесь, что выбраны общедоступные и системные администраторы . Снимок экрана: страница
  4. На странице сопоставления пользователей :
    • В разделе "Пользователи, сопоставленные с этим именем входа": выберите SUSDB
    • В разделе "Членство в роли базы данных" для: SUSDB убедитесь, что проверяется следующее:
      • public
      • Снимок экрана веб-службы: страница
  5. Нажмите кнопку "ОК"

Теперь вы увидите NT AUTHORITY\NETWORK SERVICE в разделе "Имена входа". Снимок экрана: обозреватель объектов с N T AUTHORITY NETWORK SERVICE в разделе

Разрешения базы данных

  1. Щелкните правой кнопкой мыши SUSDB
  2. Выбор свойств
  3. Щелкните разрешения

Должна быть указана учетная запись NT AUTHORITY\NETWORK SERVICE.

  1. Если это не так, добавьте учетную запись.

  2. В текстовом поле "Имя входа" введите компьютер WSUS в следующем формате:

    [FQDN]\[WSUSComputerName]$

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

    Tip

    В следующем примере полное доменное имя — Contosto.com , а имя компьютера WSUS — WsusMachine:

    Снимок экрана: диалоговое окно входа, показывающее, что полное доменное имя — Contosto.com** и имя компьютера W S U S — W s u Machine.

  4. На странице "Сопоставление пользователей" выберите базу данных SUSDB в разделе "Пользователи", сопоставленные с этим именем входа.

  5. Проверьте веб-службу в разделе членства в роли базы данных: SUSDB: снимок экрана: страница сопоставления пользователей диалогового окна входа с выбранными параметрами SUSDB и webService.

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

    Note

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

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

Important

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

  1. Нажмите кнопку "Пуск", нажмите кнопку "Запустить", введите regedit и нажмите кнопку "ОК".

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

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

  4. Найдите следующий ключ: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\Role Services\UpdateServices-WidDatabaseСнимок экрана: диалоговое окно

  5. Переименуйте ключ в UpdateServices-Databaseснимок экрана диалогового окна редактора реестра с обновлением имени ключа в UpdateServices-Database.

    Note

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

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

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

    Start-Service IISADMIN
    Start-Service WsusService

Note

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

Warning

При удалении роли 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\Role Services\UpdateServices-Database