Exchange-serveren krasjet, og den kan ikke starte opp lenger. Vi ønsker å montere postboksdatabasen på en andre Exchange-server. Dessverre er det ingen knapp for å montere postboksdatabasen. I denne artikkelen vil du lære hvordan du gjenoppretter en Exchange Server-postboksdatabase uten tap av data.
Introduksjon
Vi har en feilslått Exchange Server 2019 (EX01-2019) som ikke kan starte opp lenger og en stabil Exchange Server 2019 (EX03-2019).
Det er to postboksdatabaser:
- PostkassedatabasenDB01er den eneste postboksdatabasen som var i bruk på EX01-2019. Dessverre, nå som EX01-2019 er frakoblet, er databasens postboksmonteringsstatusUkjent(Offline), og ingenting fungerer.
- PostkassedatabasenPostboksdatabaseer montert på EX03-2019 og ikke i bruk. Den er ved god helse.

Så hvordan skal vi gjenopprette Exchange-postboksdatabasen til den nye Exchange Server EX03-2019?
Gjenopprett Exchange-postboksdatabase til ny server
Vi har postkassedatabasenDB01(.edb) fil. Men hvordan monterer vi postboksdatabasefilen (.edb) til den nye Exchange Server? Det er ingen mulighet for å montere databasen fra en filbane i Exchange administrasjonssenter eller med PowerShell.
Exchange Server har en funksjon kaltDatabaseportabilitet. Dette gjør at en postboksdatabase fra én postboksserver kan flyttes og monteres på en annen postboksserver i samme organisasjon.
Viktig:Når du bruker databaseportabilitet for å gjenopprette en postboksdatabase, må operativsystemversjonen og Exchange Server-versjonen på kilde- og mål-Exchange-serveren være den samme. For eksempel, hvis en Exchange 2016-postboksdatabase tidligere var montert på en server som kjører Windows Server 2016, vil databaseportabilitet bare fungere når databasen migreres til en server som også kjører Windows Server 2016 og Exchange 2016.
Trinn 1. Få avslutningsstatus for kildepostkassedatabasen
Vi må sjekke databaseavslutningstilstanden for å bestemme hva neste trinn vil være.
Start ledeteksten og kjør kommandoen nedenfor.
eseutil /mh "C:BackupDB01DB01.edb"Du kan også kjøre kommandoen nedenfor for bare å viseTilstandeiendom.
eseutil /mh "C:BackupDB01DB01.edb" | findstr "State:"Utgangen vil vise verdienRen nedleggelseeller aSkitten avstengning.
State: Clean ShutdownTrinn 2. Utfør myk gjenoppretting av kildepostkassedatabasen
Hvis postboksdatabasen er i en ren avslutningstilstand eller du ikke har transaksjonsloggene, kan du hoppe over dette trinnet.
Med en database i en skitten avslutningstilstand, og alle transaksjonsloggfilene tilgjengelig, utfør en myk gjenoppretting av databasen. Dette forplikter alle uforpliktede transaksjonslogger til databasen slik at det ikke er tap av data.
Kjør kommandoen nedenfor i ledeteksten for å utføre en myk gjenoppretting på postboksdatabasen.
- /r: loggprefiks
- /l: bane til loggfiler
- /d: bane til databasefil
- /s: bane til sjekkpunktfil
eseutil /r E00 /l "C:BackupDB01 Logs" /d "C:BackupDB01" /s "C:BackupDB01 Logs"Utgangen nedenfor vises.
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.Trinn 3. Opprett målpostboksdatabase
Kjør Exchange Management Shell som administrator. Opprett en ny postboksdatabase på Exchange Server som du skal bruke til å montere databasen. Angi banene for databasefilen og transaksjonsloggene.
Note:Det vil opprette mappene i banene, men postboksdatabasefilen eller databaseloggene vil ikke vises der. Den vises kun når du monterer postboksdatabasen. Du vil imidlertid ikke montere databasen nå fordi du må erstatte den med sikkerhetskopien i ett av de neste trinnene.
New-MailboxDatabase -Name "DB01-Recovered" -Server "EX03-2019" -EdbFilePath "E:DB01-RecoveredDB01.edb" -LogFolderPath "F:DB01-Recovered"Utgangen nedenfor vises.
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.Merk databasen som overskrivbar. De-AllowFileRestoreparameter angir om en database skal gjenopprettes fra en sikkerhetskopi.
Set-MailboxDatabase "DB01-Recovered" -AllowFileRestore:$trueViktig:Ikke monter postboksdatabasen. Først må du flytte kildepostkassedatabasefilene.
Trinn 4. Flytt kildepostboksdatabase og loggfiler
Hent postboksdatabasen fra sikkerhetskopien eller den ikke-oppstartende Exchange-serveren.
Flytt kildepostkassedatabasen og loggfilene til målbanene du opprettet i forrige trinn.
Kopier postboksdatabasenDB01.edb.

Lim den inn i banenE:DB01-Gjenopprettetpå EX03-2019.

Kopier postboksdatabasenDB01 logger. Hvis du ikke har transaksjonsloggene for postboksdatabasen, kan du hoppe over dette trinnet.

Lim den inn i banenF:DB01-Recovered.

Trinn 5. Monter måldatabasen
Monter databasenDB01-gjenopprettet.
Mount-Database "DB01-Recovered"Kontroller at du ser postboksdatabasen DB01-Recovered som montert i Exchange-administrasjonssenteret.

Trinn 6. Sett postboksdatabase på brukere
La oss flytte postkassene fraDB01tilDB01-gjenopprettet.
Få postkassene på databasenDB01.
Get-Mailbox -Database "DB01" -ResultSize UnlimitedDen viser brukerne at de er koblet til EX01-2019, noe som er helt normalt.
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 UnlimitedDu må sette postkassen til det nye databasenavnetDB01-gjenopprettet.
Endre postboksdatabasen for en enkelt bruker. Dette vil angi attributtene til postboksdatabasenDB01-gjenopprettetog angi servernavnet automatiskEX03-2019også.
Set-Mailbox -Identity "Boris.Campbell" -Database "DB01-Recovered" -ForceSett den for alle brukerne.
Get-Mailbox -Database "DB01" -ResultSize Unlimited | Set-Mailbox -Database "DB01-Recovered" -ForceHvis miljøet har problemerGet-Mailboxcmdlet vil ikke vise postkassene. Så du må brukeFå brakt dencmdlet i stedet.
Get-ADUser -Filter * -Properties msExchHomeServerName, homeMDB | Select-Object Name, msExchHomeServerName, homeMDB | Sort-Object Name | Out-GridViewDette vil vise alle brukerne.
Se også:Konfigurer videresending av e-post for postboks på Exchange Server/Microsoft 365

Ikke alle brukerne har en postkasse, og de kan være i forskjellige databaser. Så la oss filtrere kun på brukerne fra Exchange Server EX01-2019 og postboksdatabasen 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-GridViewSlik ser utgangen ut.

La oss sette den nye postkassedatabasenDB01-gjenopprettetfor alle filtrerte brukere.
# 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
}Kommandoene ovenfor flyttet bare postkassene og ikke arkivpostkassene. For å gjenopprette arkivpostboksene, må du endre msExchArchiveDatabaseLink-attributtverdien.
Finn arkivpostboksene som er på postboksdatabasen 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-GridViewLa oss sette den nye postkassedatabasenDB01-gjenopprettetfor alle arkivpostkassene.
# 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
}Trinn 7. Få postboks på måldatabasen
Kontroller at postboksene ligger i postboksdatabasen DB01-Recovered.
Get-Mailbox -ResultSize Unlimited -Database "DB01-Recovered"Get-Mailbox -ResultSize Unlimited | Where-Object {$_.ArchiveDatabase -like "DB01-Recovered"}Sjekk databasen DB01 for postbokser, og det vil ikke være noen resultater.
Get-Mailbox -ResultSize Unlimited -Database "DB01" Get-Mailbox -ResultSize Unlimited | Where-Object {$_.ArchiveDatabase -like "DB01"}Hva er det neste?
PostkassedatabasenDB01-gjenoppretteter online, og alle kan koble seg til Exchange Server og fortsette arbeidet sitt.
Du kan nå gjenopprette EX01-2019-serveren. Følg en av artiklene nedenfor for å gjenopprette Exchange Server:
- Gjenopprett Exchange Server (frittstående)
- Recover Exchange DAG member server
Hvis du ikke bruker/Mode:RecoverServerswitch, som vist i begge artiklene, vil du installere en ny Exchange Server i organisasjonen. Selv om dette ikke er den anbefalte metoden, vil den fungere. Du må imidlertid fjerne den gamle Exchange Server fra ADSI Edit og sette opp flere postkonfigurasjoner på Exchange Server.
Det er det!
Konklusjon
Du lærte hvordan du gjenoppretter Exchange Server-postboksdatabasen. Det er alltid viktig å ha en sikkerhetskopi av postkassedatabasen fordi det er der all postkasseinformasjonen er lagret. Følg trinnene for å montere den sikkerhetskopierte postboksdatabasen til en annen Exchange-server.
Likte du denne artikkelen? Du kan også like Opprett brukerpostboks i Exchange Server. Ikke glem å følge oss og dele denne artikkelen.














