disater

 [20.05.21 17:21]

это ситуация конечно боль, но она случается. Конечно стыдно, но когда я только начал админить екчендж, была аналогичная ситуация и я освободил место, убив логи. Да, да... был не прав, дурак и все такое - по праву готов быть закинут камнями. В той ситуации я кончено обзавелся седыми волосами и получил пиз***ей, но восстановить базу удалось.


, [20.05.21 17:21]

Логов нет, база не монтируется.

Если бд не удается быстро поднять, то сначала нужно предоставить сервис почты пользователям, а затем пытаться восстановить бд


1.  Создаем новую БД, и пересаживаем на нее пользователей

Get-Mailbox -Database 'problem_db' | Set-Mailbox -Database 'new_db' 

У пользователей появляется новый (временный) почтовый ящик.

При открытии Outlook пользователей должно появится окно выбора:временный почтовый ящик или прежние данные.

Соответственно временный – это пустой ящик, для возможности получения/отправки писем. Прежние данные – это данные, которые закешированы в файле .ost. Если файл .ost в «нехорошем» состоянии или режим кеширования отключен, то доступа к старым письмам не будет.

! Заметка. Как показывает практика, не все в жизни идеально. Случается, что окно с выбором вовсе не появляется или Outlook при запуске выдает ошибку. Тогда создавать новую конфигурацию и довольствоваться новым пустым ящиком. 


2. Удаленные логи удалось восстановить с помощью утилиты Rstudio. Логи складываем в отдельную папку.


3.  Теперь восстановление базы. Тут все зависит от того, в каком она была состоянии. В нашем случае одна копия была Dismounted, другая FailedandSuspended. Все попытки монтирования или активации с дополнительными ключами не давали результата.

Прежде чем начать, более сложные действия с бд, необходимо сделать копии проблемных файлов .edb. Нужно много свободного места в том месте, где будем делать восстановления. После создания копий, начинаем работать с ними с помощью Eseutil. Здесь, в зависимости от ситуации, нужно использовать различные ключи.

eseutil /ml e06    #для проверки целостности всех лог файлов

eseutil /mh db06.edb   # для проверки целостности бд  

Обе копии были в состоянии неправильного отключения Dirty Shutdown. 

Одну из копий удалось поднять через ключи:

eseutil /r E06 /l:M:\Logs\DB06 /s:M:\Logs\DB06

Если в ходе появляются ошибки, то можно попробовать поставить ключ /i

Вторая копия поднялась через ключи:

eseutil /p DB06_.edb 

! ВАЖНО. Если какое-либо действие закончилось с ошибкой, то лучше работать с новой копией, на которой еще ничего не делались. Поэтому, в самом начале лучше сразу сделать несколько копий файлов .edb.

После проверки бд должна быть в состоянии Clean Shutdown.


4.  На предыдущем этапе восстановление не закончилось. Создаем новую базу данных recovery_db, НО НЕ МОНТИРУЕМ ЕЕ! Теперь берем какой-нибудь восстановленный файл .edb.  Копируем файл в папку вновь созданной бд.

! ВАЖНО. Для новой созданной бд необходимо установить флажок «Эту базу данных можно перезаписать при восстановлении.

Set-MailboxDatabase ‘recovery_db’ -AllowFileRestore:$true 

Теперь монтируем бд

 Mount-Database ‘recovery_db’


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

1)  Размонтируем базу recovery_db

2)  Перемещаем файл бд и логи recovery_db в отдельную новую папку temp

3)  Размонтируем базу new_db (в которой сейчас живут пользователи). ! У этих пользователей Outlook отключится.

4)  Перемещаем файл бд и логи new_db в папку recovery_db

5)  Перемещаем файл бд и логи из папки temp в папку new_db (по сути, меняем файлы баз местами)

6)  Монтируем базу new_db

7)  Монтируем базу recovery_db

8)  Объединяем данные почтовых ящиков:

$mailboxes = Get-Mailbox -Database 

$mailboxes | %{ New-MailboxRestoreRequest -SourceStoreMailbox $_.ExchangeGuid -SourceDatabase  -TargetMailbox $_ }

Процесс может начаться не сразу, возможно придется подождать около 20 минут.

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

Если есть проблемные пользователи, у которых не сцепилась почта или вовсе не поднялась, то можно попробовать восстановить

New-MailboxRepairRequest


 [20.05.21 17:21]

6.  База данных, которая была восстановлена с помощью eseutil – не является надежной. Так же она «none-supported» для Microsoft. Поэтому необходимо перенести всех восстановленных пользователей через New-MoveRequest в новую бд или в другие, уже существующие. А затем удалить все проблемные бд: recovery_db,new_db, problem_db

Комментарии

Популярные сообщения из этого блога

У вас нет прав для отправки сообщения вместо указанного пользователя. Ошибка: [0x80070005-0x0004dc-0x000524]

Поиск и удаление писем в ящиках Exchange Server

KSMG Подготовка конфигурационных файлов для подключения к LDAP