Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

Перенос Exchange 2010 с одного сервера на другой.


Некоторое время назад я уже писал, что по различным причинам, нам не удалось сконвертировать Exchange 2010 в виртуальную среду (4 иттерации и все безрезультатно, исправляешь ошибки появляются другие), в общем коллегиально было решено перенести «чангу» руками в виртуальную среду, тем более, была стандарт версия, поставили ентерпрайс.

Итак, вроде бы в отдаленном приближении все просто:

— Устанавливаем рядом сервер exchange;

— Мувим туда ящики;

— Переключаем коннекторы;

— Удаляем старый exchange;

Все бы не плохо, но старый exchange в этом случае не удалится. Посему решил детально описать процесс переноса. На некоторых вопросах, не буду останавливаться столь подробно, но суть постараюсь донести…

Итак, железный сервак у нас GOMAIL, новый виртуальный просто MAIL (процесс установки пропущу, о нем я писал ранее, да и нет тут ничего особенного, на чем стоило бы заострить внимание в данном посте, устанавливаем 3 роли как и на существующем сервере: mailbox, client access, hub transport, edge у нас отсутствовал ранее, в данном случае без него).

Далее накатываем SP2 (чтоб версии серверов были одинаковыми), вот тут нас черт дернул накатить Kaspersky for Exchange (будь проклят тот день, когда я сел за баранку этого пылесоса), чанга ребутнулась и половина служб отказалось стартовать. Дальше начались «танцы с бубном» и так и сяк, но каменный цветок никак не выходил, попытались удалить Каспера, но не тут-то было, Каспер категорически отказывался удаляться. После некоторых манипуляций, Каспера все-таки удалось «выщемить» из системы, но после перезагрузки сервера, нас снова ждал большой «кулак дружбы»: службы как не стартовали, так и не стартанули, журнал покрылся красными крестами. Попытались дозачистить реестр от Каспера, но после перезагрузки получили тот же самый эффект.

Итог: «Пристрелили» виртуалку с новым  только что установленным Exchange. Поэтому, если необходима стабильная работа чанги, НЕ РЕКОМЕДУЮ УСТАНАВЛИВАТЬ модуль Kaspersky for Exchange (да простит меня повелитель вирусов и троянов).

Далее восстанавливаем чангу в Recovery Mode

Для этого запускаем: Setup /m:RecoverServer
Подробнее читаем здесь: http://technet.microsoft.com/ru-ru/library/dd876880(v=exchg.141).aspx

Итак, наконец получаем полностью рабочую чангу на виртуалке.

Далее пришло время создать хранилища на новой чанге и смувить туда ящики, кстати после того, как ящики были смувлены, некоторым юзерам пришлось пересоздать профиля в аутглюке иначе ящик никак не цеплялся, но пересоздание профиля решает эту проблему.

Далее возникает вопрос в переносе общих папок, мы особо не эксплуатируем их, но пару департаментов их все таки юзают.

Итак переносим…

Дано GOMAIL и MAIL. Требуется: перенести базу общих папок (Public Folders) с сервера GOMAIL на MAIL, после чего с GOMAIL эта база удаляется навсегда. Без определенных действий с вашей стороны просто так в Exchange удалить базу общих папок не получится.

При попытке удаления выводится сообщение об ошибке

--------------------------------------------------------
Ошибка Microsoft Exchange
--------------------------------------------------------
Не удалось удалить базу данных общих папок 'Public Folder Database 0275183447'.
Public Folder Database 0275183447
Ошибка
Ошибка:
База данных общих папок "Public Folder Database 0275183447" содержит реплики папок.
Перед удалением базы данных общих папок удалите папки или переместите реплики в другую базу данных общих папок.
Дополнительные сведения об удалении базы данных общих папок
см. в статье http://go.microsoft.com/fwlink/?linkid=81409&clcid=0x419 (на английском языке).
--------------------------------------------------------
ОК
--------------------------------------------------------

1. Первое что нужно сделать, это назначить права на соответствующие действия (но права у нас есть, поэтому не буду подробно останавливаться на них).

2. Второе действие — это создать на MAIL новую базу общих папок. Сделать можно это через консоль, с этим проблем тоже нет.

3. Третье, что нужно сделать, это проверить, есть ли реплики. Если база содержит в себе данные, удалить ее невозможно.

Проверим, что в данный момент у нас храниться в общих папках:

Get-PublicFolderStatistics -Server GOMAIL
Get-PublicFolderStatistics -Server MAIL

по выводу будет очевидно, что у нас содержится в общих папках.

4. Если у вас общая адресная книга распространяется через общие папки — нужно отключить это или пере нацелить на другую базу общих папок (скрин с одного рабочего сервера на нем были эти манипуляции):

snap1

 

5. Если база общих папок ассоциирована с какой либо базой данных почтовых ящиков — пере нацельте на другую базу данных общих папок (скрин с вполне рабочего сервера):.

snap2

 

6. Теперь переносим реплики. Это делается специальным скриптом.

“C:\Program Files\Microsoft\Exchange Server\V14>.\Scripts\MoveAllReplicas.ps1 -Server GOMAIL -NewServer MAIL”

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

7. Проверяем что получилось командами

Get-PublicFolderStatistics -Server GOMAIL
Get-PublicFolderStatistics -Server MAIL

в итоге вывод зеркально должен поменяться, то есть при выводе

Get-PublicFolderStatistics -Server GOMAIL

список должен быть пуст.

ПУСТОЙ СПИСОК ПРИ ВЫВОДЕ ЭТОГО КОМАНДЛЕТА — ЭТО ТО ЧТО МЫ ДОБИВАЛИСЬ

если он стал пустой, то можно перейти к следующему шагу.

8. Удаляем базу общих папок с сервера GOMAIL, теперь все получится.

 

Все тоже самое можно сделать и через Power Shell:

Первым делом смотрим, что происходит сейчас, т.е. где хранятся общие папки.
Get-PublicFolder -recurse |fl name,replicas

Затем добавляем в реплику наш второй сервак:
.\AddReplicaToPFRecursive.ps1 -Server GOMAIL -TopPublicFolder \ -ServerToAdd MAIL

После этого ждем, чтоб папки отреплицировались.
Проверяем этим командлетом:
Get-PublicFolderStatistics -Server GOMAIL
Правда после этого выдается куча инфы, статистика по всем папкам.

Затем перемещаем реплику:
MoveAllReplicas.ps1 —Server GOMAILNewServer MAIL


Удаляем реплику старого сервака:
.\RemoveReplicaFromPFRecursive.ps1 —Server MAILTopPublicFolder \ —ServerToRemove GOMAIL
Отключаем базу с общими папками на старом серваке, проверяем.

Но и на этом «танцы с бубном не заканчиваются», еще необходимо перенести так называемые системные ящики, здесь я воспользовался постом из блога Алекса

Перенос системных ящиков

http://www.alexxhost.ru/2011/04/system-mailbox-exchange-2010.html

 

System Mailbox в Exchange 2010

Системные почтовые ящики на сервере Exchange зачастую настолько не заметны, что на них мало кто обращает внимания. Но при этом, они несут на себе достаточно важные функции и неполадки с этими ящиками могут доставить много неудобств администраторам. Несмотря на то, что системные почтовые ящики являются «самодостаточной единицей», если можно так выразиться, и в большинстве случаев не требуют к себе внимания со стороны администраторов, все же бывают ситуации, когда у них что-то ломается и вмешательство становится уже просто необходимым. В связи с этим, я предлагаю в данной статье поговорить о том, зачем этот тип почтовых ящиков нужен и как их лечить в случае неприятностей.

Типы System Mailboxes

Что касается сервера Exchange 2010, то тут есть три типа системных почтовых ящиков:

  • Message Approval — SystemMailbox {1f05a927-xxxx- xxxx — xxxx -xxxxxxxxxxxx}

Где х – это случайное число

  • Discovery — SystemMailbox {e0dc1c29-89c3-4034-b678-e6c29d823ed9}
  • Federated E-mail — FederatedEmail 4c1f4d8b-8179-4148-93bf-00a95fa1e042

Из названий очевидно для чего каждый из них служит. Подробнее про типы получателей в Exchange 2010 можно почитать здесь.

Через графическую консоль управления Exchange (EMC), увидеть системные ящики невозможно. Чтобы получить их список, даже командлета Get-Mailbox не достаточно, понадобится ещё параметр –Arbitration:

Get-Mailbox –Arbitration

snap3

 

Рис.1: Список системных почтовых ящиков.

Здесь нужно заметить, что кроме этих трех системных почтовых ящиков, есть так называемый «специальный» почтовый ящик – Discovery Search Mailbox, его не нужно путать с озвученным выше системным ящиком. Системный почтовый ящик Discovery используется механизмом Multi-Mailbox Search для хранения метабазы поиска, а в Discovery Search Mailbox копируются результаты поиска. При этом, в отличие от системных почтовых ящиков, создать дополнительный Discovery Search Mailbox нет ни каких проблем, нужно просто c командлетом New-Mailbox использовать параметр –Discovery.

Если смотреть на данные почтовые ящики со стороны Active Directory, то не трудно заметить, что учетные записи, связанные с ними находятся в отключенном состоянии:

snap4

 

Рис.2: Учетные записи Active Directory, ассоциированные с системными почтовыми ящиками.

Восстановление System Mailbox

Со стороны Exchange`a, повредить системные почтовые ящики достаточно не просто, хотя бы потому, что их не видно при обычном просмотре. Но это реально, и для того, чтобы вернуть их на место нужно просто заново активировать почтовый ящик для соответствующих учетных записей. Делается это при помощи командлета Enable-Mailbox:

Enable-Mailbox “SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}” -Arbitration

В результате будет пересоздан почтовый ящик и все будет хорошо.

Проблема усложнится, если были удалены соответствующие учетные записи в Active Directory.

Дело в том, что учетные записи системных почтовых ящиков автоматически создаются во время установки сервера Exchange, а если быть точнее, то создаются они во время подготовки базы данных Active Directory. Раз так, то восстановить их можно будет просто ещё раз выполнивPrepareAD, для этого надо найти дистрибутив, с которого был установлен Exchange и запустить setup c ключом PrepareAD:

Setup.com /PrepareAD

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

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

Перенос системных ящиков возможен.
1 получаем список ящиков Get-Mailbox –Arbitration | fl
2 Находим для каждого ящика параметр ExchangeGuid и выписываем его куда-нибудь, чтоб не запутаться (ибо по name перенос нет идет — мешают скобки воспринимаемые как команды)
3 создаем команду new-moverequest -identity (ExchangeGuid нужного ящика) -targetdatabase (имя БД, в которую надо перенести)
4 закрываем запрос на перенос в консоли Эксчендж

Системные ящики у нас переехали только со второй попытки, но переехали и это главное.

Далее перенастраиваем коннекторы отправки получения на новом серваке, меняем айпишники (если они изменились конечно, в нашем случае они изменились).

Далее заходим в Панель Управления-Установка и удаление программ на старом серваке и корректно удаляем старую «чангу» (при том при удалении снимаем галки это тоже может ввести в заблуждение). Если все нормально удаляется, значит сервер спокойно деинсталируется и после перезагрузки выключив сервак из домена можем спокойно отключить его из продакшин среды. Если сервак не удалиться, то будет ругаться на причину, а это значит, что в ходе моего повествования вы что-то пропустили.

Всем хорошей работы!!!

23.01.2013 - Posted by | ms exchange mail server 2010

Sorry, the comment form is closed at this time.