Як відновити базу даних поштової скриньки Exchange Server

Сервер Exchange вийшов з ладу, і він більше не може завантажитися. Ми хочемо змонтувати базу даних поштової скриньки на другому сервері Exchange. На жаль, немає кнопки для монтування бази даних поштової скриньки. У цій статті ви дізнаєтесь, як відновити базу даних поштової скриньки Exchange Server без втрати даних.

вступ

У нас є несправний Exchange Server 2019 (EX01-2019), який більше не може завантажуватися, і стабільний Exchange Server 2019 (EX03-2019).

Існує дві бази даних поштових скриньок:

  • База даних поштової скринькиDB01це єдина база даних поштових скриньок, яка використовувалася на EX01-2019. На жаль, тепер, коли EX01-2019 вимкнено, статус монтування поштової скриньки бази данихНевідомий(Офлайн), і нічого не працює.
  • База даних поштової скринькиБаза даних поштової скринькивстановлено на EX03-2019 і не використовується. Це в хорошому стані здоров'я.

Отже, як ми відновимо базу даних поштової скриньки Exchange на новому сервері Exchange Server EX03-2019?

У нас є база поштових скриньокDB01файл (.edb). Але як підключити файл бази даних поштової скриньки (.edb) до нового сервера Exchange? У центрі адміністрування Exchange або за допомогою PowerShell немає можливості підключити базу даних із шляху до файлу.

Сервер Exchange має функцію під назвоюПортативність бази даних. Це дозволяє базу даних поштових скриньок з одного сервера поштових скриньок переміщувати та монтувати на іншому сервері поштових скриньок у тій же організації.

Важливо:У разі використання портативності бази даних для відновлення бази даних поштової скриньки версія операційної системи та версія Exchange Server на вихідному та цільовому серверах Exchange мають бути однаковими. Наприклад, якщо база даних поштової скриньки Exchange 2016 була попередньо змонтована на сервері під керуванням Windows Server 2016, переносимість бази даних працюватиме лише під час міграції бази даних на сервер, на якому також працюють Windows Server 2016 і Exchange 2016.

Крок 1. Отримайте стан вимкнення вихідної бази даних поштової скриньки

Ми повинні перевірити стан вимкнення бази даних, щоб вирішити, яким буде наступний крок.

Запустіть командний рядок і виконайте наведену нижче команду.

eseutil /mh "C:BackupDB01DB01.edb"

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

Рекомендовано прочитати:Службі реплікації поштової скриньки не вдалося підключитися до віддаленого сервера

eseutil /mh "C:BackupDB01DB01.edb" | findstr "State:"

На виході буде показано значенняЧисте завершення роботиабо aБрудне вимкнення.

State: Clean Shutdown

Крок 2. Виконайте програмне відновлення вихідної бази даних поштової скриньки

Якщо база даних поштової скриньки перебуває в стані чистого вимкнення або у вас немає журналів транзакцій, ви можете пропустити цей крок.

Коли база даних перебуває в стані брудного завершення роботи та доступні всі файли журналу транзакцій, виконайте програмне відновлення бази даних. Це фіксує будь-які незафіксовані журнали транзакцій до бази даних, щоб уникнути втрати даних.

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

  • : префікс журналу
  • : шлях до файлів журналу
  • : шлях до файлу бази даних
  • : шлях до файлу контрольної точки
eseutil /r E00 /l "C:BackupDB01 Logs" /d "C:BackupDB01" /s "C:BackupDB01 Logs"

З'явиться наведений нижче результат.

Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
Version 15.02
Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating RECOVERY mode...
    Logfile base name: E00
            Log files: C:BackupDB01 Logs
         System files: C:BackupDB01 Logs
   Database Directory: C:BackupDB01

Performing soft recovery...
                      Restore Status (% complete)

          0    10   20   30   40   50   60   70   80   90  100
          |----|----|----|----|----|----|----|----|----|----|
          ...................................................

Operation completed successfully in 3.78 seconds.

Крок 3. Створіть цільову базу даних поштових скриньок

Запустіть командну оболонку Exchange від імені адміністратора. Створіть нову базу даних поштової скриньки на сервері Exchange Server, яку ви використовуватимете для підключення бази даних. Укажіть шляхи для файлу бази даних і журналів транзакцій.

Примітка:Він створить папки в шляхах, але файл бази даних поштової скриньки або журнали бази даних там не відображатимуться. Він з’явиться лише після монтування бази даних поштової скриньки. Однак ви не будете монтувати базу даних зараз, оскільки вам потрібно буде замінити її резервною копією в одному з наступних кроків.

New-MailboxDatabase -Name "DB01-Recovered" -Server "EX03-2019" -EdbFilePath "E:DB01-RecoveredDB01.edb" -LogFolderPath "F:DB01-Recovered"

З'явиться наведений нижче результат.

Name                           Server          Recovery        ReplicationType
----                           ------          --------        ---------------
DB01-Recovered                 EX03-2019       False           None
WARNING: Please restart the Microsoft Exchange Information Store service on server EX03-2019 after adding new mailbox
databases.

Позначити базу даних як перезаписувану. The-AllowFileRestoreПараметр визначає, чи дозволяти відновлення бази даних із резервної копії.

Set-MailboxDatabase "DB01-Recovered" -AllowFileRestore:$true

Важливо:Не монтуйте базу даних поштової скриньки. По-перше, вам потрібно перемістити вихідні файли бази даних поштової скриньки.

Крок 4. Перемістіть вихідну базу даних поштової скриньки та файли журналу

Отримайте базу даних поштової скриньки з резервної копії або незавантажувального сервера Exchange.

Перемістіть вихідну базу даних поштової скриньки та файли журналу до цільових шляхів, створених на попередньому кроці.

Скопіюйте базу даних поштової скринькиDB01.edb.

Вставте його в шляхE:DB01-Відновленона EX03-2019.

Скопіюйте базу даних поштової скринькиЖурнали DB01. Якщо у вас немає журналів транзакцій бази даних поштової скриньки, ви можете пропустити цей крок.

Вставте його в шляхF:DB01-Відновлено.

Крок 5. Змонтуйте цільову базу даних

Змонтувати базу данихDB01-Відновлено.

Mount-Database "DB01-Recovered"

Переконайтеся, що ви бачите базу даних поштових скриньок DB01-Recovered як змонтовану в центрі адміністрування Exchange.

Крок 6. Налаштуйте базу даних поштових скриньок для користувачів

Перемістимо поштові скриньки зDB01доDB01-Відновлено.

Отримати поштові скриньки в базі данихDB01.

Get-Mailbox -Database "DB01" -ResultSize Unlimited

Він показує користувачам, що вони підключені до EX01-2019, що цілком нормально.

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Administrator             Administrator        ex01-2019        Unlimited
Max Fraser                Max.Fraser           ex01-2019        Unlimited
Richard Hunter            Richard.Hunter       ex01-2019        Unlimited
Boris Campbell            Boris.Campbell       ex01-2019        Unlimited
Alysia Maverick           Alysia.Maverick      ex01-2019        Unlimited
Christopher Payne         Christopher.Payne    ex01-2019        Unlimited
Nicholas Murray           Nicholas.Murray      ex01-2019        Unlimited
James Paterson            James.Paterson       ex01-2019        Unlimited
sharedmailboxonprem       sharedmailboxonprem  ex01-2019        Unlimited

Ви повинні встановити для поштової скриньки нове ім’я бази данихDB01-Відновлено.

Змінити базу даних поштової скриньки для одного користувача. Це встановить атрибути бази даних поштової скринькиDB01-Відновленоі автоматично встановити назву сервераEX03-2019теж.

Set-Mailbox -Identity "Boris.Campbell" -Database "DB01-Recovered" -Force

Встановити для всіх користувачів.

Get-Mailbox -Database "DB01" -ResultSize Unlimited | Set-Mailbox -Database "DB01-Recovered" -Force

Якщо в середовищі є проблеми,Get-Mailboxcmdlet не відображатиме поштові скриньки. Отже, вам потрібно використовуватиПринеслинатомість cmdlet.

Get-ADUser -Filter * -Properties msExchHomeServerName, homeMDB | Select-Object Name, msExchHomeServerName, homeMDB | Sort-Object Name | Out-GridView

Це покаже всіх користувачів.

Не всі користувачі мають поштову скриньку, і вони можуть бути в різних базах даних. Тож давайте відфільтруємо лише користувачів з Exchange Server EX01-2019 і бази даних поштових скриньок DB01.

# Define variables
$msExchHomeServerName = "/o=EXOIP/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=EX01-2019"
$homeMDB = "CN=DB01,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=EXOIP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exoip,DC=local"

# Get users matching the specified criteria
Get-ADUser -Filter {msExchHomeServerName -eq $msExchHomeServerName -and homeMDB -eq $homeMDB} -Properties msExchHomeServerName, homeMDB | Select-Object Name, msExchHomeServerName, homeMDB | Sort-Object Name | Out-GridView

Ось так виглядає вихід.

Давайте налаштуємо нову базу даних поштової скринькиDB01-Відновленодля всіх відфільтрованих користувачів.

# Define variables
$msExchHomeServerName = "/o=EXOIP/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=EX01-2019"
$homeMDB = "CN=DB01,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=EXOIP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exoip,DC=local"

# Get users matching the specified criteria
$users = Get-ADUser -Filter {msExchHomeServerName -eq $msExchHomeServerName -and homeMDB -eq $homeMDB} -Properties SamAccountName, msExchHomeServerName, homeMDB

# Iterate through each user and set the mailbox database
foreach ($user in $users) {
    Set-Mailbox -Identity $user.SamAccountName -Database "DB01-Recovered" -Force
    Write-Host "Mailbox database set for user $($user.SamAccountName)" -ForegroundColor Green
}

Наведені вище команди переналаштували лише поштові скриньки, а не архівні поштові скриньки. Щоб перемістити архівні поштові скриньки, потрібно змінити значення атрибута msExchArchiveDatabaseLink.

Знайдіть архівні поштові скриньки в базі даних поштових скриньок DB01.

$msExchArchiveDatabaseLink = "CN=DB01,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=EXOIP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exoip,DC=local"

# Get users matching the specified criteria
Get-ADUser -Filter { msExchArchiveDatabaseLink -eq $msExchArchiveDatabaseLink } -Properties SamAccountName, msExchArchiveDatabaseLink, msExchHomeServerName | Select-Object Name, msExchArchiveDatabaseLink, msExchHomeServerName | Sort-Object Name | Out-GridView

Давайте налаштуємо нову базу даних поштової скринькиDB01-Відновленодля всіх архівних скриньок.

# Define variable
$msExchArchiveDatabaseLink = "CN=DB01,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=EXOIP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exoip,DC=local"
$msExchArchiveDatabaseLinkNew = "CN=DB01-Recovered,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=EXOIP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exoip,DC=local"

# Get users matching the specified criteria
$users = Get-ADUser -Filter { msExchArchiveDatabaseLink -eq $msExchArchiveDatabaseLink } -Properties msExchArchiveDatabaseLink

# Update the msExchArchiveDatabaseLink attribute for each user
foreach ($user in $users) {
    Set-ADUser -Identity $user -Replace @{msExchArchiveDatabaseLink = $msExchArchiveDatabaseLinkNew }
    Write-Host "Mailbox database set for user $($user.SamAccountName)" -ForegroundColor Green
}

Крок 7. Отримайте поштову скриньку в цільовій базі даних

Переконайтеся, що поштові скриньки розміщено в базі даних поштових скриньок DB01-Recovered.

Get-Mailbox -ResultSize Unlimited -Database "DB01-Recovered"
Get-Mailbox -ResultSize Unlimited | Where-Object {$_.ArchiveDatabase -like "DB01-Recovered"}

Перевірте базу даних DB01 на поштові скриньки, результатів не буде.

Get-Mailbox -ResultSize Unlimited -Database "DB01" 
Get-Mailbox -ResultSize Unlimited | Where-Object {$_.ArchiveDatabase -like "DB01"}

Що далі?

База даних поштової скринькиDB01-Відновленоє онлайн, і кожен може підключитися до сервера Exchange Server і продовжити свою роботу.

Тепер ви можете відновити сервер EX01-2019. Дотримуйтеся однієї зі статей нижче, щоб відновити Exchange Server:

  • Відновити сервер Exchange (автономний)
  • Відновлення членського сервера Exchange DAG

Якщо ви не використовуєте/Mode:RecoverServerперемикач, як показано в обох статтях, ви встановите новий сервер Exchange в організації. Хоча це не рекомендований метод, він буде працювати. Однак ви повинні видалити старий сервер Exchange Server із редагування ADSI та налаштувати додаткові конфігурації публікації на сервері Exchange.

Ось і все!

Висновок

Ви дізналися, як відновити базу даних поштової скриньки Exchange Server. Завжди важливо мати резервну копію бази даних поштової скриньки, оскільки саме там зберігається вся інформація про поштову скриньку. Виконайте кроки, щоб підключити резервну копію бази даних поштової скриньки до іншого сервера Exchange.

Вам сподобалася ця стаття? Вам також може сподобатися Створення поштової скриньки користувача в Exchange Server. Не забудьте підписатися на нас і поділитися цією статтею.

Related Posts