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
Комментарии
Отправить комментарий