Перенос сервера wsus на другой компьютер

Обновлено: 06.07.2024

В процессе развёртывания WSUS 3.0 в конфигурации по умолчанию на сервер устанавливается специальный экземпляр Windows Internal Database, который не даёт возможности подключаться к данным БД WSUS (по умолчанию имя базы - SUSDB) с удалённых компьютеров. Если по какой-то причине возникает необходимость в удалённом подключении к базе данных WSUS, нам потребуется развернуть как минимум SQL Server 2005/2008 Express Edition и перенести SUSDB в этот экземпляр. Экземпляр SQL Server может быть как локальный (установленный на самом WSUS сервере) так и удалённый. Рассмотрим пошагово порядок переноса базы данных WSUS на удалённый экземпляр SQL Server 2008 R2.

Последовательность действий будет такая:

  • На WSUS сервер, работающий на Windows Internal Database, устанавливаем минимальный набор клиентских компонент SQL Server 2008 R2.
  • На WSUS сервере с помощью установленных клиентских компонент отсоединяем базу данных SUSDB.
  • На сервере c SQL Server 2008 R2 присоединяем базу данных SUSDB и настраиваем необходимые разрешения для доступа сервера WSUS к этой базе данных.
  • Настраиваем WSUS сервер на работу с экземпляром SUSDB на удалённом сервере c SQL Server 2008 R2

Скачиваем пакеты Microsoft SQL Server Native Client и Microsoft SQL Server 2008 R2 Command Line Utilities (sqlcmd) из состава Microsoft SQL Server 2008 R2 Feature Pack в соответствии с платформой нашего WSUS сервера. В нашем случае это будут файлы SqlCmdLnUtils.msi и sqlncli.msi для платформы X64. Сначала устанавливаем клиентские компоненты Microsoft SQL Server Native Client …

image

… затем устанавливаем пакет Microsoft SQL Server 2008 R2 Command Line Utilities …

image

На самом деле вместо этих двух пакетов можно скачать и установить Microsoft SQL Server 2008 R2 RTM - Management Studio Express и операцию отсоединения БД WSUS произвести в удобном GUI, но при этом размер загружаемого дистрибутива увеличится более чем в 8 раз (с 19,6Mb до 163Mb) поэтому данный вариант мы рассматривать не будем.

На сервере WSUS останавливаем системные службы Update Services и IIS Admin Service. Быстро сделать это можно, например, с помощью команды:

net stop WsusService & net stop IISADMIN

image

После того как службы успешно остановлены, с помощью утилиты sqlcmd выполняем подключение к локальному экземпляру Windows Internal Database на сервере WSUS и выполняем отсоединение БД WSUS с помощью следующей последовательности команд:

image

Обратите внимание на то, что на время нашей сессии первой командой мы добавляем в переменные окружения путь к каталогу, в котором расположена утилита sqlcmd (по умолчанию это ‘C:Program FilesMicrosoft SQL Server100ToolsBinn’)

C сервера WSUS файлы БД SUSDB.mdf и SUSDB_log.ldf (по умолчанию расположены в каталоге C:WSUSUpdateServicesDbFiles) переносим на сервер с установленным SQL Server 2008 R2, после чего на сервере баз данных открываем SQL Server Management Studio и выполняем присоединение скопированных файлов базы SUSDB

image

При присоединении имена файлов и базы данных оставляем без изменений.

image

После того как БД присоединена нам нужно настроить разрешения для возможности удалённого подключения к ней службы Update Services сервера WSUS. Так как эта служба на WSUS сервере по умолчанию работает от имени служебной учетной записи Network Service – нам необходимо добавить разрешение для доменной учетной записи компьютера - сервера WSUS дающее право на удалённое подключение к экземпляру SQL Server. Можно конечно явным образом добавить учетную запись сервера WSUS в список логинов SQL Server, но более правильно будет создать для этих целей специальную доменную группу безопасности. Создадим такую группу…

image

… и включим в эту группу учетную запись компьютера – сервера WSUS.

Далее добавляем на сервере SQL Server в список логинов созданную доменную группу следующей командой SQL:

CREATE LOGIN "DOMAINKOM-AD01-SRV-ADM-WSUS" FROM WINDOWS ;

GO

После выполнения команды проверяем то, что в SQL Server Management Studio (Security > Logins) списке логинов отображается добавленная группа безопасности.

image

Далее нам нужно открыть свойства созданного SQL-Логина и на закладке User Mapping, cвязать логин с базой SUSDB и включить его в роль webService

image

Для присоединения удалённого экземпляра базы данных SUSDB к фронт-энд серверу WSUS нам потребуется на сервере WSUS внести некоторые изменения с системный реестр в ветку HKLMSOFTWAREMicrosoftUpdateServicesServerSetup

  • Значение ключа SqlServerName устанавливаем в SQLSERVERInstanceName
    Обратите внимание на то, что если используется инстанс по умолчанию, то есть MSSQLSERVER то его имя не указывается, а указывается только имя сервера, в противном случае WSUS не сможет подключиться к базе… Необъяснимо но факт :)
  • Значение ключа wYukonInstalled устанавливаем в 0
  • Значение ключа SqlInstanceIsRemote устанавливаем в 1

image

После правки реестра запускаем службы Update Services (WsusService) и IIS Admin Service (IISADMIN) и проверяем возможность корректного открытия и работы консоли WSUS.

После всего, если вы уверены в том, что теперь на сервере WSUS экземпляр Windows Internal Database не используется более никакими приложениями то, в принципе, можете произвести его удаление. Сделать это стандартным способом через оснастку Add/Remove Programs (appwiz.cpl) не получится и поэтому для удаления придётся воспользоваться инструкцией Update Management TechCenter - Uninstalling Windows Internal Database

Дополнительная информация по теме:

Похожее

Всего комментариев: 20 Комментировать

Спасибо! Однозначно в закладки. Скоро мне предстоит подобная операция по переносу базы WSUS, возьму на заметку.

Немного нелогичные действия.

Детачим, значит, через командную строки - типа удобно, а аттачим через GUI?

Как быть насчет SQL Express?? у мну поставленный из коропки SQL Express 2008 R2 не пущает на себя через MGMT Studio.
А через sqlcmd - пускает.
Если уж в командной строке делать - то все.

Мне не известно способа деаттачить базу данных Windows Internal Database через гуй, тем более что у него этого гуя попросту нет. Или Вы расскажете нам как это сделать и покажете нам всем этот волшебный гуй? По поводу SQL Express - его послеустановочная настройка это несколько иная тема для разговора и не относится к сути поста.

Я к тому, что раз начали через командную строку - через нее и имеет смысл продолжать доделывать. Чтоб кому нужно - потом скриптик дочеркали.
Про Express спросил - потому что в начале поста вы про него упомянули, что можно к томуж экспресс - бесплатный совсем. А у меня сходу не вышло и в тексте - нету инфо, что могут быть нюансы :)
Вышло, когда установил дефолтный Instance сразу и смешанную аутентификацию, почему-то. Встроенный MGMTStudio сразу увиделся.

Кроме того, есть еще нюанс, связанный с тем, что если вдруг у неподготовленного пользователя что-то пойдет не так, а база будет деаттачена - он не сможет корректно удалить роль WSUS через оснастку.

1. программой wsusutil (обычно лежит в папке c:program filesUpdateServicesTools)
делается экспорт базы данных.
wsusutil.exe export d:export.cab d:export.log
2. Сносим wsus с сервера через GUI оснастку. Чтобы не потерять прокачанные файлы - при удалении указываем (снимаем галочку) чтобы оставил обновления. Базу и логи пусть удаляет. Если не используется ничем другим Windows Internal DB - ее тоже удаляем
3. Ставим (если еще не установили) Windows 2008R2 SQL Express (Ну или любой другой SQL-сервер. для Express - первым ставим Default Instance и смешанную аутентификацию (у меня только так заработало). К нему - обяязательно комплектный Management Studio
4. Запускаем установку WSUS через роли, указываем при установке нужный нам SQL-сервер. Место установки - прежнее, чтобы подхватились скачанные файлы.
5. Не конфигурируя WSUS,делаем
wsusutil.exe import d:export.cab d:export.log
6. В будущем - сначала ставим SQL Express (или другой SQL), а потом в него устанавливаем WSUS. и другие службы. И ждем, пока MS соблаговолит проапдейтить Windows Internal Database до SQL2008R2 и позволит туда нормально ставить сторонние служебные базы. А заодно - и нормально работать с ней, а не то чтоб фиг поставишь - фиг удалишь :)

Можно еще сделать экспорт конфигурации старого WSUS и прикрутить к новому - но искать лениво команды, а мне не особо нужно, сорри. К тому ж он от старой установки все же подхватил настройки.

И еще раз извиняюсь, что встрял в разрез вашего поста - но все же по теме заголовка :) :) :)

P.S. А кстати более интересный вопрос есть - можно ли для разных серверов WSUS пользовать одну SUSDB на удаленном сервере? очхотлеосьбы, но рисковать и экспериментировать нет времени. А иначе - смысла уносить SUSDB на удаленный сервер не вижу. Express пользую - потому что Kaspersky AdminKit не лезет в Internal Database, а несколько движков держать - суть зло :) Да и бэкапить контроллируемо можно.

Маленькое уточнение к моему предыдущему посту.
Для SQLExpress режим аутентификации значения не имеет. А вот в недефолтный instance установитьWSUS все же не удалось.

собственно сервер существовал давно, был обновлен с версии 2 на 3, теперь необходимо заменить само железо на др. как корректно перетянуть? поднять еще один и подключить к тому?

Ответы

1. Поднять новый сервер wsus

2. Экспортировать БД на "старом": C:\Program Files\Update Services\Tools\wsusutil.exe export export.cab export.log

3. Перенести на "новый" директорию с обновлениями

4. Импортировать БД на "новом" C:\Program Files\Update Services\Tools\wsusutil.exe import export.cab export.log

5. Изменить GPO или скрипт для клиентов в целях перенаправления их на новый сервер

Все ответы

1. Поднять новый сервер wsus

2. Экспортировать БД на "старом": C:\Program Files\Update Services\Tools\wsusutil.exe export export.cab export.log

3. Перенести на "новый" директорию с обновлениями

4. Импортировать БД на "новом" C:\Program Files\Update Services\Tools\wsusutil.exe import export.cab export.log

5. Изменить GPO или скрипт для клиентов в целях перенаправления их на новый сервер

Добавлю, что если конфигурация расположения файлов точно такая же как на стратом сервере, то можно просто скопировать базу данных без экспорта-импорта (только сервисы нового WSUS и SQL остановите)/

сорри, отсутсвовал долго. спасибо за ответ! обязательно попробую, и отпишусь о рез-тах

Результат положительный, единственное импорт раз в 5 длился дольше чем экспорт и одобрения не выставляются приходится самому по памяти все восстанавливать.

вообщем сделал экспорт в лог файл, скопировал бд, причем у меня 2 папки, wsus и wsusdatabase (сначала был wsus2) устанавливаю wsus на новый сервер, выходит диалоговое окно с выбором вариантов установки,

где предлогается выбрать:

1. Существующую локальную базу данных виндовс (показываю то что скопировал) не прокатывает

2. Существующий сервер баз данных на этом компьюетер ( не активный)

3. Сервер баз данных на удаленном компьютере

теперб, если выбираю 1 пункт он пытается соединится с базой данных, типа SQl которого нет и ошибка. SQL у меня нет, не приобретали, что нужно? на др ведь функционирует! Ка развернуть локальную базу данных.

Если вы хотите взять старую базу, то сначала просто поставьте WSUS абсолютно точно так же как прежде - на тот же диск (в смысле по имени) и по тем же путям. После чего остановите WSUS и локальный SQL, подмените базу на старую и скопируйте старую папку с контентом WsusContent в новую. Запустите ранее остановленные сервисы.

все дело в том, что на новом сервере, куда хочу установить WSUS, стоял SQl2005, он был удален, и видимо из за него WSUS никак не хочет устанавливаться, т.е. настоятельно просит указать базу данных. Вернее, это был сервер SharePoint 3, и он функционировал на SQL, все было удалено, но при установке WSUS - он не разворачивает свою базу данных.

вообще так и не удалось по указанным причинам установить на этот сервер, сейчас устанавливаю на др, там все ровно пошло, так как не было Sharepoint.. Хоть он и был удален, но видимо все из за него, сейчас импортирую log

Что значит "скопировал БД" её нужно не копировать, а экспортировать также как и лог C:\Program Files\Update Services\Tools\wsusutil.exe export wsus.cab wsus.log

2. В качестве пути к базе не нужно указывать папку с экспортированными лог и БД, а просто укажите где вы хотите хранить файлы БД (директорию)

1. Поднять новый сервер wsus

2. Экспортировать БД на "старом": C:\Program Files\Update Services\Tools\wsusutil.exe export export.cab export.log

3. Перенести на "новый" директорию с обновлениями

4. Импортировать БД на "новом" C:\Program Files\Update Services\Tools\wsusutil.exe import export.cab export.log

5. Изменить GPO или скрипт для клиентов в целях перенаправления их на новый сервер

все ок, только надо одобрения заново устанавливать. впринципе вопрос решен, только не удалось установить на ту машину где раньше жил Sharepoint на SQL

Только обновления видятся как "одобрено" но не "скачено". Как WSUS должен увидеть что обновления скачены?

5. убедиться, что новые клиенты пошли на новый сервер (для ускорения процесса - wuauclt /resetauthorization и wuauclt /detect now)

Как перенести базу и каталог WSUS на другой диск я уже рассказывал, на этот раз задача немного сложнее — нужно перенести WSUS с Windows Server 2008 (x86) на 2008 R2 (x64). Когда я взялся за решение этой задачи, то был уверен, что мой прошлый опыт переноса WSUS мне поможет и процесс займет не более часа. Но я ошибся, на новом сервере не удалось запустить WSUS со старой базой. Может не хватало какого-нибудь апдейта, либо разрядность сервера сказалась, но WSUS не заработал. Разбираться в причине мне не хотелось, да и в времени особо не было. А если честно, то я даже не расстроился. Т.к. был отличный повод попробовать перенести WSUS новый для меня способом. Что я и сделал…

Реплика WSUS

Основная идея этого способа — это развернуть новый сервер WSUS, сделать его репликой основного сервера, подождать пока идет синхронизация между ними, отключить реплицирование и сделать новый сервер WSUS основным.

Сделать сервер репликой можно в мастере настройки WSUS, либо в настройках самого Update Services. Для этого нужно задать с каким сервером WSUS синхронизироваться и поставить галку возле «This server is a replica of the upstream server»

wsus replice 1 thumb Перенос WSUS на новый сервер

После этого начнется синхронизация серверов, скачаются все доступные обновление с основного сервера обновлений. Скорость синхронизации зависит от пропускной способности сети, в моем случае 27 ГБ скачалось примерно за 2 часа

wsus replice 2 thumb Перенос WSUS на новый сервер

После завершения синхронизации нужно снять галку репликации и настроить синхронизацию WSUS на сервера обновлений Microsoft Windows Update (см. скриншот 1). Новый сервер WSUS готов к работе.

Следующим шагом нужно сделать так, чтобы клиентские компьютеры обращались к новому серверу. Этого можно достичь разными способами, один из них — это удалить старый сервер из AD и назвать новый тем же именем. Еще можно сделать Alias в DNS, либо через GPO задать всем клиентам новый сервер WSUS. Я воспользовался первым способом, просто переименовал новый сервер.

Есть один неприятный момент в этом методе, т.к. сервер новый, то все клиентские компьютеры при обращении к нему попадут в группу Unassigned Computers. Откуда их придется вручную, либо с помощью правил WSUS перенести в нужные группы. Если иерархия групп несложная, то это не займет много времени, а вот если сложная — то придется повозиться.

Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!

Для начала нужно перенести папки, содержащие контент сервера WSUS, т.е. обновления. Перед переносом создаём в новом месте папку, в которую будем переносить данные. Я назвал её просто WSUS.

Перенос осуществляется при помощи утилиты wsusutil.exe, которая обычно находится по адресу C:\Program Files\Update Services\Tools. Утилита работает только с NTFS-дисками. Запустим командную строку и перейдем в необходимый нам каталог:

В нашем примере мы перенесем папки с обновлениями на диск M, поэтому команда будет выглядеть следующим образом:

Если же жесткий диск (раздел) вышел из строя, и скопировать данные невозможно, то команда должна иметь следующий вид:

Это изменит пути хранения данных без копирования файлов.

wsusutil.exe перенесет и все права доступа, связанные с разделами.

После переноса файлов нам необходимо перенести базу данных WSUS. Сделать это удобно через Microsoft SQL Server. Бесплатный Microsoft SQL Server 2008 R2 Management Studio Express можно взять отсюда.

Как перенести WSUS на другой диск или раздел

Как перенести WSUS на другой диск или раздел

Отсоединение базы данных WSUS

Как перенести WSUS на другой диск или раздел

После отсоединения базу данных (а точнее, папку UpdateServicesDbFiles, где она находится) можно перенести на новое место. В нашем примере это M:\WSUS.

Как перенести WSUS на другой диск или раздел

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

Читайте также: