Перенос базы Wsus на другой MS SQL сервер
* Migrate from Windows Internal Database to SQL Server
* Migrating from Windows Internal Database to SQL Server 2005
* WSUS 3.0 : Connecting, Managing and Moving SUSDB as Internal Database
* Moving WSUS Database
1. Останаваливаем IIS and Update Services - на сервере где установлен WSUS:
* Простой IIS может продлиться более 10 минут, ежели у вас там важные сайты то лучше остановить вручную сайт WSUS Administration либо проводить операцию в нерабочее время.
Код: :: Stop IIS and Update Services net stop WsusService iisreset /STOP :: |
2. Отключаем базу SUSDB на исходном SQL сервере:
* Используйте своё имя базы. Возможно Single User может не подойти.
Код: -- Detach SUSDB on source SQL Server USE master GO ALTER DATABASE SUSDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO exec sp_detach_db 'SUSDB' GO |
3. Копируем файлы базы на целевой MS SQL сервер:
* Скопируйте файлы базы в ваши соответствующие папки, тут я привёл лишь вариант как это можно сделать, сам я копирвал посредством Total Commander.
Код: copy SUSDB.mdf \\NewSQLServer\D$\SQLData\ copy SUSDB_log.ldf \\NewSQLServer\D$\SQLLogs\ |
4. Подключаем SUSDB базу на целевом MS SQL сервере:
* Используйте ваши имена базы, имена файлов и их местоположение.
Код: -- Attach SUSDB on destination SQL Server USE master; GO EXEC sp_attach_db @dbname = N'SUSDB', @filename1 = N'D:\SQLData\SUSDB.mdf', @filename2 = N'D:\SQLLogs\SUSDB_log.ldf' ; GO |
5. Создаём логин на целевом SQL сервере для WSUS сервера(в данном случае речь идёт об акаунте компьютера на котором установлен WSUS сервер):
* Измените CONTOSO\WSUSServerName$ на имя своего сервера на котором установлен WSUS сервер с указанием доменого имени и в конце добавив символ "$".
Код: -- Create WSUS Server login on destination SQL Server USE master GO CREATE LOGIN [CONTOSO\WSUSServerName$] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] GO CREATE LOGIN [CONTOSO\WSUS Administrators] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] |
6. Дать права созданному логину на SUSDB базу:
Код: -- Grant permission on SUSDB to created login USE SUSDB GO EXEC sp_grantdbaccess N'CONTOSO\WSUSServerName$', N'CONTOSO\WSUSServerName$' GO exec sp_addrolemember N'public', N'CONTOSO\WSUSServerName$' GO exec sp_addrolemember N'webService', N'CONTOSO\WSUSServerName$' |
7. Перенастроить WSUS на новое положение базы:
* Измените NewSQLSevrerName на имя своего нового SQL сервера или его IP.
Код: ::Point WSUS to new DB location reg export "HKLM\Software\Microsoft\Update Services" C:\UpdateService-bk.reg reg add "HKLM\Software\Microsoft\Update Services\Server\Setup" /t REG_EXPAND_SZ /v SqlServerName /d NewSQLSevrerName /f reg add "HKLM\Software\Microsoft\Update Services\Server\Setup" /t REG_DWORD /v wYukonInstalled /d 0 /f |
8. Запускаем IIS и Update Services - на сервере где установлен WSUS:
Код: ::Start IIS and Update Services iisreset /START net start WsusService :: |
* По этой инструкции я перевёл базу на своём сервере на соседний MS SQL той же врсии MS SQL 2008 R2.
* Некоторые части этой инструкции необходимо изменить под свои требования, имена компьютеров, положение файлов баз SUSDB.
* Права пользователю CONTOSO\WSUS Administrators не раздаются, т.к. он уже прописан в базе и у него права на базу есть.
* На шаге 6 пролетала ошибка что нельзя назначить роль public, но это можно игнорировать и возможно права лучше назначать через MS SQL MS.
Я в очередной раз столкнулся с тем что у Microsoft нет исчерпывающей инструкции по такой распространённой задаче.
В частности моя загвоздка была связана с тем что я незнал какой акаунт создавать на целевом MS SQL сервере - они его называли "WSUS server account" и только в одной статье мне удалось найти что это есть имя компьютера заканчивающееся знаком $ на котором установлен WSUS сервер, с указанием доменной части ежели есть домен - CONTOSO\WSUSServer$.
Буду рад интересным и подробным ссылкам по даному переносу.
Спасибо!