После выхода четвёртого серис-пака для Enterprise Vault 8.0 я попытался его установить на текущий сервер Enterprise Vault и столкнулся с удивительной вещью – в одном из предыдущих сервис-паков из SCL пропала поддержка 32-битной версии Windows 2008, а в sp4 это ограничение появилось и в Deplyment Scanner’е. В итоге я оказался поставлен перед фактом – чтобы поставить sp4 (а в дальнейшем и перейти на версию 9.0) мне необходимо перейти либо на Windows 2008 R2, либо на 64-битную версию Windows 2008.
Процедура миграции выглядит следующим образом.
1. Необходимо очистить очередь MSMQ перед началом процесса миграции. Обычно очередь сама очищается после остановки сервиса Task Controller.
2. Как только очередь очистится – останавливаем все сервисы EV.
3. Экспортируем следующие ветки реестра:
- HKLMSoftwareKVSEnterprise VaultIndexing
- HKLMSoftwareKVSEnterprise VaultStorage
- HKLMSoftwareKVSEnterprise VaultExternal Filtering
и ключи:
- HKLMSystemCurrentControlSetServicesMRXSmbParametersOplocksDisabled
- HKLMSystemCurrentControlSetControlSession ManagerMemory ManagementPoolUsageMaximum
- HKLMSystemCurrentControlSetControlSession ManagerMemory ManagementPagedPoolSize
- HKLMSoftwareMicrosoftMSMQParametersKernelMemThreshold
- HKLMSystemCurrentControlSetServicesTcpipParametersEnableTCPChimney
- HKLMSystemCurrentControlSetServicesTcpipParametersEnableRSS
- HKLMSystemCurrentControlSetServicesTcpipParametersEnableTCPA
Если каких-то веток/ключей не будет – то создавать их на новом сервере не надо.
4. Устанавливаем ОС и EV на новый сервер. Устанавливаем все необходимые обновления. Имя сервера оставляем прежним, как и его сетевые настройки. EV ставим в ту же директорию, что и на старом сервере.
5. На новый сервер необходимо скопировать файлы в те же папки, где они находились на старом сервере:
- Vault Stores
- Indexing files
- Shopping files
- Reports
- Custom Filter Rules
Если часть файлов находится на внешнем хранилище – задача облегчается. Достаточно внешнее хранилище переподключить к новому серверу.
6. Импортируем на новый сервер ветки и ключи реестра, экспортированные в пункте 3.
7. Через консоль SQL подключаемся к базе EnterpriseVaultDirectory. В таблице StorageServiceEntry находим данные, связанные со старым сервером, в столбцах StorageArchive, StorageRestore, StorageReplayIndex, StorageSpool и удаляем их (если серверов несколько, то эти данные будут в одной строке). В таблице RetrievalTask находим данные, связанные со старым сервером, в столбцах RetrievalSpoolQueue, MessageQueue и удаляем их (если серверов несколько, то эти данные будут в одной строке). В таблице ArchivingRetrievalTask находим данные, связанные со старым сервером, в столбце MessageQueue и удаляем его. Если сервер только один, то можно использовать следующий скрипт:
USE EnterpriseVaultDirectory UPDATE StorageServiceEntry SET StorageArchive = ' ', StorageRestore = ' ', StorageReplayIndex = ' ', StorageSpool = ' ' UPDATE RetrievalTask SET RetrievalSpoolQueue = ' ', MessageQueue = ' ' UPDATE ArchivingRetrievalTask SET MessageQueue = ' '
8. На сервере EV запускаем Enterprise Vault Configuration. Выбираем создать новую директорию. После указания SQL-сервера, который содержит исправленную на предыдущем шаге базу, выскочит сообщение что сервер уже найден в базе и запустится процесс восстановления. По завершении которого будет восстановлена старая конфигурация.
9. Нужно проконтролировать, что сервисы EV Admin и Directory стартовали. Если нет – запускаем их вручную. После этого запускаем остальные сервисы EV.
10. Если использовался плагин для OWA, то необходимо повторно запустить скрипт owauser.wsf.
Оригинал инструкции находится здесь.
А у меня почему-то при запуске Enterprise Vault Configuration не создавались службы (Directory, Task Controller, Storage, Indexing, Shopping). Причем недавно переносил два раза и оба раза службы не создались. Пришлось службы создавать вручную, перенеся ветки реестра для каждой службы (например для IndexingService это были HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEnterpriseVaultIndexingService и HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRootLEGACY_ENTERPRISEVAULTINDEXINGSERVICE)
2Mykhaylo Khodorev
а точно сиквельная база чистилась от нужных записей? очень похоже на то, что не чистилась.
Чистилась. Хотя как это связано?
При запуске конфигуратор данные, необходимые для создания сервисов, берёт из сиквельной базы. Для того, чтобы он это сделал, а не создал новую базу нужно часть данных из сиквельной базы потереть. Какие? Те, что я указал выше.