Cómo restaurar la base de datos del buzón de Exchange Server
El servidor Exchange falló y ya no puede iniciarse. Queremos montar la base de datos del buzón en un segundo servidor Exchange. Desafortunadamente, no hay ningún botón para montar la base de datos del buzón. En este artículo, aprenderá cómo restaurar una base de datos de buzones de Exchange Server sin pérdida de datos.
Introducción
Tenemos un Exchange Server 2019 fallido (EX01-2019) que ya no puede iniciarse y un Exchange Server 2019 estable (EX03-2019).
Hay dos bases de datos de buzones:
- La base de datos de buzones de correo DB01 es la única base de datos de buzones de correo que estuvo en uso en EX01-2019. Desafortunadamente, ahora que EX01-2019 está sin conexión, el estado de montaje del buzón de la base de datos es Desconocido (sin conexión) y nada funciona.
- La base de datos de buzones Mailbox Database está montada en EX03-2019 y no está en uso. Goza de buena salud.
Entonces, ¿cómo restauraremos la base de datos del buzón de Exchange en el nuevo Exchange Server EX03-2019?
Restaurar la base de datos del buzón de Exchange en un nuevo servidor
Tenemos el archivo de base de datos de buzones DB01 (.edb). Pero, ¿cómo montamos el archivo de base de datos del buzón (.edb) en el nuevo servidor Exchange? No hay ninguna opción para montar la base de datos desde una ruta de archivo en el centro de administración de Exchange o con PowerShell.
El servidor Exchange tiene una función llamada Portabilidad de bases de datos. Esto permite mover y montar una base de datos de buzones de un servidor de buzones en otro servidor de buzones dentro de la misma organización.
Importante: Cuando se utiliza la portabilidad de la base de datos para recuperar una base de datos de buzones de correo, la versión del sistema operativo y la versión del servidor Exchange en los servidores Exchange de origen y de destino deben ser la misma. Por ejemplo, si una base de datos de buzones de correo de Exchange 2016 se montó previamente en un servidor que ejecuta Windows Server 2016, la portabilidad de la base de datos solo funcionará cuando se migre la base de datos a un servidor que también ejecute Windows Server 2016 y Exchange 2016.
Paso 1. Obtener el estado de cierre de la base de datos del buzón de origen
Tenemos que verificar el estado de cierre de la base de datos para decidir cuál será el siguiente paso.
Inicie el símbolo del sistema y ejecute el siguiente comando.
eseutil /mh "C:\Backup\DB01\DB01.edb"También puede ejecutar el siguiente comando para mostrar solo la propiedad Estado.
eseutil /mh "C:\Backup\DB01\DB01.edb" | findstr "State:"El resultado mostrará el valor Apagado limpio o Apagado sucio.
State: Clean ShutdownPaso 2. Realizar una recuperación parcial de la base de datos del buzón de origen
Si la base de datos del buzón de correo está en un estado de Apagado limpio o no tiene los registros de transacciones, puede omitir este paso.
Con una base de datos en un estado de apagado sucio y todos los archivos de registro de transacciones disponibles, realice una recuperación parcial de la base de datos. Esto confirma cualquier registro de transacciones no confirmadas en la base de datos para que no haya pérdida de datos.
Ejecute el siguiente comando en el símbolo del sistema para realizar una recuperación parcial en la base de datos del buzón.
- /r: prefijo de registro
- /l: ruta a los archivos de registro
- /d: ruta al archivo de base de datos
- /s: ruta al archivo de punto de control
eseutil /r E00 /l "C:\Backup\DB01 Logs" /d "C:\Backup\DB01" /s "C:\Backup\DB01 Logs"Aparece el siguiente resultado.
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:\Backup\DB01 Logs
System files: C:\Backup\DB01 Logs
Database Directory: C:\Backup\DB01
Performing soft recovery...
Restore Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
...................................................
Operation completed successfully in 3.78 seconds.Paso 3. Crear una base de datos de buzones de correo de destino
Ejecute el Shell de administración de Exchange como administrador. Cree una nueva base de datos de buzones de correo en Exchange Server que utilizará para montar la base de datos. Especifique las rutas para el archivo de base de datos y los registros de transacciones.
Nota: Creará las carpetas en las rutas, pero el archivo de la base de datos del buzón o los registros de la base de datos no aparecerán allí. Sólo aparecerá cuando monte la base de datos del buzón. Sin embargo, no montará la base de datos ahora porque necesitará reemplazarla con la copia de seguridad en uno de los siguientes pasos.
New-MailboxDatabase -Name "DB01-Recovered" -Server "EX03-2019" -EdbFilePath "E:\DB01-Recovered\DB01.edb" -LogFolderPath "F:\DB01-Recovered"Aparece el siguiente resultado.
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.Marque la base de datos como sobrescribible. El parámetro -AllowFileRestore especifica si se permite restaurar una base de datos a partir de una copia de seguridad.
Set-MailboxDatabase "DB01-Recovered" -AllowFileRestore:$trueImportante: No monte la base de datos del buzón. Primero, debe mover los archivos de la base de datos del buzón de origen.
Paso 4. Mover la base de datos del buzón de origen y los archivos de registro
Obtenga la base de datos del buzón de la copia de seguridad o del servidor Exchange que no arranca.
Mueva la base de datos del buzón de origen y los archivos de registro a las rutas de destino que creó en el paso anterior.
Copie la base de datos del buzón DB01.edb.
Pégalo en la ruta E:\DB01-Recovered en EX03-2019.
Copie la base de datos del buzón registros DB01. Si no tiene los registros de transacciones de la base de datos del buzón, puede omitir este paso.
Pégalo en la ruta F:\DB01-Recovered.
Paso 5. Montar la base de datos de destino
Monte la base de datos DB01-Recuperada.
Mount-Database "DB01-Recovered"Verifique que vea la base de datos del buzón DB01-Recovered montada en el centro de administración de Exchange.
Paso 6. Configurar la base de datos de buzones de correo de los usuarios
Reubiquemos los buzones de correo de DB01 al DB01-Recovered.
Obtenga los buzones de correo en la base de datos DB01.
Get-Mailbox -Database "DB01" -ResultSize UnlimitedMuestra a los usuarios que están conectados a EX01-2019, lo cual es completamente 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 UnlimitedDebe configurar el buzón con el nuevo nombre de base de datos DB01-Recovered.
Cambie la base de datos del buzón de correo para un solo usuario. Esto establecerá los atributos de la base de datos del buzón DB01-Recovered y también establecerá automáticamente el nombre del servidor EX03-2019.
Set-Mailbox -Identity "Boris.Campbell" -Database "DB01-Recovered" -ForceConfigúrelo para todos los usuarios.
Get-Mailbox -Database "DB01" -ResultSize Unlimited | Set-Mailbox -Database "DB01-Recovered" -ForceSi el entorno tiene problemas, el cmdlet Get-Mailbox no mostrará los buzones. Por lo tanto, debe utilizar el cmdlet Get-ADUser en su lugar.
Get-ADUser -Filter * -Properties msExchHomeServerName, homeMDB | Select-Object Name, msExchHomeServerName, homeMDB | Sort-Object Name | Out-GridViewEsto mostrará a todos los usuarios.
No todos los usuarios tienen un buzón y pueden estar en diferentes bases de datos. Entonces, filtremos solo por los usuarios de Exchange Server EX01-2019 y la base de datos de buzones de correo 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-GridViewAsí es como se ve la salida.
Configuremos la nueva base de datos de buzones de correo DB01-Recovered para todos los usuarios filtrados.
# 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
}Los comandos anteriores solo reubicaron los buzones de correo y no los buzones de archivo. Para reubicar los buzones de archivo, debe cambiar el valor del atributo msExchArchiveDatabaseLink.
Busque los buzones de archivo que se encuentran en la base de datos de buzones 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-GridViewConfiguremos la nueva base de datos de buzones DB01-Recovered para todos los buzones de archivo.
# 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
}Paso 7. Obtener el buzón en la base de datos de destino
Verifique que los buzones de correo estén alojados en la base de datos de buzones DB01-Recovered.
Get-Mailbox -ResultSize Unlimited -Database "DB01-Recovered"Get-Mailbox -ResultSize Unlimited | Where {$_.ArchiveDatabase -like "DB01-Recovered"}Verifique la base de datos DB01 para buscar buzones de correo y no habrá resultados.
Get-Mailbox -ResultSize Unlimited -Database "DB01" Get-Mailbox -ResultSize Unlimited | Where {$_.ArchiveDatabase -like "DB01"}¿Qué sigue?
La base de datos del buzón de correo DB01-Recovered está en línea y todos pueden conectarse al servidor Exchange y continuar con su trabajo.
Ahora puede recuperar el servidor EX01-2019. Siga uno de los siguientes artículos para recuperar Exchange Server:
- Recuperar Exchange Server (independiente)
- Recuperar el servidor miembro de Exchange DAG
Si no utiliza el modificador /Mode:RecoverServer, como se muestra en ambos artículos, instalará un nuevo servidor Exchange en la organización. Si bien este no es el método recomendado, funcionará. Sin embargo, debe eliminar el antiguo Exchange Server de ADSI Edit y configurar más configuraciones de publicación en Exchange Server.
¡Eso es todo!
Leer más: Comprobación del estado de Exchange Server con script de PowerShell »
Conclusión
Aprendió a restaurar la base de datos de buzones de Exchange Server. Siempre es fundamental tener una copia de seguridad de la base de datos del buzón porque ahí es donde se almacena toda la información del buzón. Siga los pasos para montar la base de datos del buzón de correo respaldado en otro servidor Exchange.
¿Disfrutaste este artículo? También te puede interesar Crear buzón de usuario en Exchange Server. No olvides seguirnos y compartir este artículo.







