В рамках миграции на Lync Server 2010 возникла необходимость удаления старого сервера OCS2007 R2.
Гугл тут же подсказал, как удалить OCS 2007 R2.
Ужаснувшись данной последовательности действий, я посмотрел в официальную документацию по удалению, чтобы убедиться, что так дело и обстоит.
1) Сделайте бэкап базы RTC. Экспортируйте данные пользователей с помощью DBImpExp.exe;
2) Залогиньтесь на сервер с учетной записью/членом группы RTCUniversalServerAdmins и запустите оснастку OCS;
3) Удостоверьтесь, что на сервере не осталось пользователей. Если остались, мигрируйте их либо удалите с сервера OCS (при удалении пользователь теряет SIP и контакты).
4) Остановите все службы OCS и начинайте деактивацию ролей в следующем порядке:
- Conferencing Attendant
- Conferencing Announcement Service
- Response Group Service
- Outside Voice Control
- Application Host
- Application Sharing Server
- A/V Conferencing Server
- Web Conferencing Server
- Web Components Server
- Front End Server/Standard Server
Миграцию или удаление объектов конференций необходимо производить только перед деактивацией службы FrontEnd/Standard. Служба FrontEnd в момент миграции/удаления должна быть запущена.
FrontEnd не деактивируется, если живы конференции или пользователи.
5) Удаляйте компоненты OCS в следующем порядке:
- Microsoft Office Communications Server 2007 R2, Administrative Tools
- Microsoft Office Communications Server 2007 R2, Conferencing Attendant
- Microsoft Office Communications Server 2007 R2, Conferencing Announcement
Service - Microsoft Office Communications Server 2007 R2, Response Group Service
- Microsoft Office Communications Server 2007 R2, Outside Voice Control
- Microsoft Office Communications Server 2007 R2, Application Host
- Microsoft Office Communications Server 2007 R2, Application Sharing Server
- Microsoft Office Communications Server 2007 R2, Audio/Video Conferencing
Server - Microsoft Office Communications Server 2007 R2, Web Conferencing Server
- Microsoft Office Communications Server 2007 R2, Web Components Server.
Если при удалении Web Components выдается ошибка “Error 0×80070005 (Access is denied) binding to IIS metabase path IIS://localhost/W3SVC/1. Make sure the website exits.”, то вам необходимо отключить User Access Control.
- In an Enterprise Edition deployment,
Microsoft Office Communications Server 2007 R2, Front End Server - In a Standard Edition deployment, Microsoft Office Communications Server
2007 R2, Standard Edition server - Microsoft Office Communications Server 2007 R2, Core Components
- Microsoft Office Communications Server 2007 R2, Unified Communications
Managed API 2.0 Core Redistribution package - Microsoft Office Communications Server 2007 R2, Unified Communications
Managed API 2.0 Speech Redistribution package - Microsoft Office Communications Server 2007 R2, Unified Communications
Managed API 2.0 Windows Workflow Activities Redistribution package
6) Если вы дошли до этого шага без приключений – я вас поздравляю. Если нет, чуть дальше я опишу проблемы, с которыми я столкнулся.
7) В общем-то, все у меня было хорошо, пока я не начал удалять службу FrontEnd. Достаточно быстро я понял, что скрипт dbsetup.wsf шлет меня лесом и не хочет удалять базы в локальном SQL.
>cscript dbsetup.wsf
DBSetup.wsf (0,1) Windows Script Host: JScript
Операционная система сервера – Windows 2008 SP2 x64. Переставил C# 2008 и J#, перерегистрировал библиотеку jscript.dll – ошибка изменилась: теперь скрипт не может создать объект SQLDMO.
Еще погуглил – говорят, что для подключения к SQL32bit необходимо использовать c:\windows\syswow64\cscript.exe.
Этот выдает другую ошибку: DBSetup.wsf (0,1) Windows Script Host: VBScript.
Дальнейшее гугление подсказало, что для SQL32bit необходимо поставить пару патчей:
- Microsoft SQL Server 2005 Backward Compatibility Components (x64 package)
- Microsoft SQL Server 2005 Management Objects Collection (x64 package)
После этих патчей c:\windows\syswow64\cscript.exe продолжил выдавать старую ошибку, а вот c:\windows\system32\cscript.exe внезапно отработал.
После этого был эффект ухты 🙂
- запускаем удаление службы;
- “колдун” ругается и отправляет в лог;
- в логе смотрим, какой скрипт не запускается;
- запускаем этот скрипт в 64битном CScript и создаем пустой скрипт для “колдуна”;
- “колдун” радостно запускает пустой скрипт и идет к следующему скрипту;
- повторяем несколько раз;
- profit!
P.S. Впрочем, у меня очередь на удаление еще +100500 серверов, так что оставайтесь на связи 🙂
UPD1: решил удалить конференции на третьем этапе вместе с пользователями (на другом сервере). Служба Conference Attendant деактивироваться отказалась с ошибкой “pool not ready”. Нашлась статья про удаление OCS 2007 R2, подсказавшая, что нужен conference directory. Пришлось объект AD временно мигрировать с Lync на OCS, а затем обратно.
UPD2: при удалении Edge, Mediation, Archiving, Monitoring есть следующая последовательность…
- Microsoft Office Communications Server 2007 R2, Edge Server
- Microsoft Office Communications Server 2007 R2, Mediation Server
- Microsoft Office Communications Server 2007 R2, Archiving Server
- Microsoft Office Communications Server 2007 R2, Monitoring Server
- Microsoft Office Communications Server 2007 R2, Core Components
- Microsoft Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Core Redistribution package
UPD3: Об удалении давно снесенного сервера архивации\мониторинга OCS 2007 R2 написано тут.