Le serveur Exchange est tombé en panne et il ne peut plus démarrer. Nous souhaitons monter la base de données de boîtes aux lettres sur un deuxième serveur Exchange. Malheureusement, il n'y a pas de bouton pour monter la base de données de boîtes aux lettres. Dans cet article, vous apprendrez comment restaurer une base de données de boîtes aux lettres Exchange Server sans aucune perte de données.
Introduction
Nous avons un Exchange Server 2019 (EX01-2019) en panne qui ne peut plus démarrer et un Exchange Server 2019 stable (EX03-2019).
Il existe deux bases de données de boîtes aux lettres :
- La base de données des boîtes aux lettresDB01est la seule base de données de boîtes aux lettres utilisée sur EX01-2019. Malheureusement, maintenant que EX01-2019 est hors ligne, l'état de montage de la boîte aux lettres de la base de données estInconnu(Hors ligne), et rien ne fonctionne.
- La base de données des boîtes aux lettresBase de données de boîtes aux lettresest monté sur EX03-2019 et n’est pas utilisé. C'est en bonne santé.

Alors, comment allons-nous restaurer la base de données de boîtes aux lettres Exchange sur le nouveau serveur Exchange EX03-2019 ?
Restaurer la base de données de boîtes aux lettres Exchange sur un nouveau serveur
Nous avons la base de données des boîtes aux lettresDB01(.edb). Mais comment monter le fichier de base de données de boîtes aux lettres (.edb) sur le nouveau serveur Exchange ? Il n'existe aucune option permettant de monter la base de données à partir d'un chemin de fichier dans le centre d'administration Exchange ou avec PowerShell.
Le serveur Exchange possède une fonctionnalité appeléePortabilité de la base de données. Cela permet à une base de données de boîtes aux lettres d'un serveur de boîtes aux lettres d'être déplacée et montée sur un autre serveur de boîtes aux lettres au sein de la même organisation.
Important:Lorsque vous utilisez la portabilité de base de données pour récupérer une base de données de boîtes aux lettres, la version du système d'exploitation et la version du serveur Exchange sur les serveurs Exchange source et cible doivent être identiques. Par exemple, si une base de données de boîtes aux lettres Exchange 2016 a été précédemment montée sur un serveur exécutant Windows Server 2016, la portabilité de la base de données ne fonctionnera que lors de la migration de la base de données vers un serveur exécutant également Windows Server 2016 et Exchange 2016.
Étape 1. Obtenir l'état d'arrêt de la base de données de boîtes aux lettres source
Nous devons vérifier l'état d'arrêt de la base de données pour décider quelle sera la prochaine étape.
Démarrez l’invite de commande et exécutez la commande ci-dessous.
eseutil /mh "C:BackupDB01DB01.edb"Vous pouvez également exécuter la commande ci-dessous pour afficher uniquement leÉtatpropriété.
eseutil /mh "C:BackupDB01DB01.edb" | findstr "State:"La sortie affichera la valeurArrêt propreou unArrêt sale.
State: Clean ShutdownÉtape 2. Effectuer une récupération logicielle de la base de données de boîtes aux lettres source
Si la base de données de boîtes aux lettres est dans un état d'arrêt propre ou si vous ne disposez pas des journaux de transactions, vous pouvez ignorer cette étape.
Avec une base de données dans un état d'arrêt incorrect et tous les fichiers journaux de transactions disponibles, effectuez une récupération logicielle de la base de données. Cela valide tous les journaux de transactions non validés dans la base de données afin d'éviter toute perte de données.
Exécutez la commande ci-dessous dans l'invite de commande pour effectuer une récupération logicielle sur la base de données de boîtes aux lettres.
- /r: préfixe du journal
- /l: chemin d'accès aux fichiers journaux
- /d: chemin d'accès au fichier de base de données
- /s : chemin d'accès au fichier de point de contrôle
eseutil /r E00 /l "C:BackupDB01 Logs" /d "C:BackupDB01" /s "C:BackupDB01 Logs"La sortie ci-dessous apparaît.
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.Étape 3. Créer une base de données de boîtes aux lettres cible
Exécutez Exchange Management Shell en tant qu'administrateur. Créez une nouvelle base de données de boîtes aux lettres sur le serveur Exchange que vous utiliserez pour monter la base de données. Spécifiez les chemins du fichier de base de données et des journaux de transactions.
Note:Il créera les dossiers dans les chemins, mais le fichier de base de données de boîtes aux lettres ou les journaux de base de données n'y apparaîtront pas. Il n'apparaîtra que lorsque vous monterez la base de données de boîtes aux lettres. Cependant, vous ne monterez pas la base de données maintenant car vous devrez la remplacer par la sauvegarde lors de l'une des étapes suivantes.
New-MailboxDatabase -Name "DB01-Recovered" -Server "EX03-2019" -EdbFilePath "E:DB01-RecoveredDB01.edb" -LogFolderPath "F:DB01-Recovered"La sortie ci-dessous apparaît.
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.Marquez la base de données comme pouvant être écrasée. Le-Autoriser la restauration de fichiersLe paramètre spécifie s’il faut autoriser la restauration d’une base de données à partir d’une sauvegarde.
Set-MailboxDatabase "DB01-Recovered" -AllowFileRestore:$trueImportant:Ne montez pas la base de données de boîtes aux lettres. Tout d’abord, vous devez déplacer les fichiers de la base de données de boîtes aux lettres source.
Étape 4. Déplacer la base de données de boîtes aux lettres source et les fichiers journaux
Récupérez la base de données de boîtes aux lettres à partir de la sauvegarde ou du serveur Exchange qui ne démarre pas.
Déplacez la base de données de boîtes aux lettres source et les fichiers journaux vers les chemins cibles que vous avez créés à l'étape précédente.
Copiez la base de données de boîtes aux lettresDB01.edb.

Collez-le dans le cheminE: DB01-Récupérésur EX03-2019.

Copiez la base de données de boîtes aux lettresJournaux DB01. Si vous ne disposez pas des journaux de transactions de la base de données de boîtes aux lettres, vous pouvez ignorer cette étape.

Collez-le dans le cheminF: DB01-Récupéré.

Étape 5. Monter la base de données cible
Monter la base de donnéesDB01-Récupéré.
Mount-Database "DB01-Recovered"Vérifiez que la base de données de boîtes aux lettres DB01-Recovered est montée dans le centre d'administration Exchange.

Étape 6. Définir la base de données de boîtes aux lettres sur les utilisateurs
Relogeons les boîtes aux lettres deDB01auDB01-Récupéré.
Récupérez les boîtes aux lettres sur la base de donnéesDB01.
Get-Mailbox -Database "DB01" -ResultSize UnlimitedCela montre aux utilisateurs qu'ils sont connectés à EX01-2019, ce qui est tout à fait normal.
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 UnlimitedVous devez définir la boîte aux lettres sur le nouveau nom de la base de donnéesDB01-Récupéré.
Modifiez la base de données de boîtes aux lettres pour un seul utilisateur. Cela définira les attributs de la base de données de boîtes aux lettresDB01-Récupéréet définit automatiquement le nom du serveurEX03-2019aussi.
Set-Mailbox -Identity "Boris.Campbell" -Database "DB01-Recovered" -ForceDéfinissez-le pour tous les utilisateurs.
Get-Mailbox -Database "DB01" -ResultSize Unlimited | Set-Mailbox -Database "DB01-Recovered" -ForceSi l'environnement a des problèmes, leObtenir la boîte aux lettresL'applet de commande n'affichera pas les boîtes aux lettres. Il faut donc utiliser leApportez-vous leapplet de commande à la place.
Get-ADUser -Filter * -Properties msExchHomeServerName, homeMDB | Select-Object Name, msExchHomeServerName, homeMDB | Sort-Object Name | Out-GridViewCela montrera tous les utilisateurs.
Voir aussi :Configurer le transfert d'e-mails pour la boîte aux lettres sur Exchange Server/Microsoft 365

Tous les utilisateurs ne disposent pas d'une boîte aux lettres et ils peuvent se trouver dans des bases de données différentes. Filtrons donc uniquement sur les utilisateurs d'Exchange Server EX01-2019 et de la base de données de boîtes aux lettres 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-GridViewVoici à quoi ressemble le résultat.

Définissons la nouvelle base de données de boîtes aux lettresDB01-Récupérépour tous les utilisateurs filtrés.
# 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
}Les commandes ci-dessus ont uniquement réhébergé les boîtes aux lettres et non les boîtes aux lettres d'archives. Pour reloger les boîtes aux lettres d'archives, vous devez modifier la valeur de l'attribut msExchArchiveDatabaseLink.
Recherchez les boîtes aux lettres d'archive qui se trouvent dans la base de données de boîtes aux lettres 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-GridViewDéfinissons la nouvelle base de données de boîtes aux lettresDB01-Récupérépour toutes les boîtes aux lettres d'archives.
# 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
}Étape 7. Obtenez la boîte aux lettres sur la base de données cible
Vérifiez que les boîtes aux lettres sont hébergées dans la base de données de boîtes aux lettres DB01-Recovered.
Get-Mailbox -ResultSize Unlimited -Database "DB01-Recovered"Get-Mailbox -ResultSize Unlimited | Where-Object {$_.ArchiveDatabase -like "DB01-Recovered"}Vérifiez la base de données DB01 pour les boîtes aux lettres et vous n'obtiendrez aucun résultat.
Get-Mailbox -ResultSize Unlimited -Database "DB01" Get-Mailbox -ResultSize Unlimited | Where-Object {$_.ArchiveDatabase -like "DB01"}Quelle est la prochaine étape ?
La base de données des boîtes aux lettresDB01-Récupéréest en ligne et tout le monde peut se connecter au serveur Exchange et continuer son travail.
Vous pouvez désormais récupérer le serveur EX01-2019. Suivez l'un des articles ci-dessous pour récupérer Exchange Server :
- Récupérer le serveur Exchange (autonome)
- Récupérer le serveur membre Exchange DAG
Si vous n'utilisez pas le/Mode : Récupérer le serveurcommutateur, comme indiqué dans les deux articles, vous installerez un nouveau serveur Exchange dans l’organisation. Bien que ce ne soit pas la méthode recommandée, elle fonctionnera. Cependant, vous devez supprimer l'ancien serveur Exchange d'ADSI Edit et configurer davantage de configurations de publication sur le serveur Exchange.
C'est ça!
Conclusion
Vous avez appris à restaurer la base de données de boîtes aux lettres Exchange Server. Il est toujours essentiel d’avoir une sauvegarde de la base de données des boîtes aux lettres car c’est là que sont stockées toutes les informations de la boîte aux lettres. Suivez les étapes pour monter la base de données de boîtes aux lettres sauvegardée sur un autre serveur Exchange.
Avez-vous apprécié cet article ? Vous aimerez peut-être également Créer une boîte aux lettres utilisateur dans Exchange Server. N’oubliez pas de nous suivre et de partager cet article.












