O Exchange Server travou e não consegue mais inicializar. Queremos montar o banco de dados da caixa de correio em um segundo servidor Exchange. Infelizmente, não há botão para montar o banco de dados da caixa de correio. Neste artigo, você aprenderá como restaurar um banco de dados de caixa de correio do Exchange Server sem perda de dados.
Introdução
Temos um Exchange Server 2019 com falha (EX01-2019) que não consegue mais inicializar e um Exchange Server 2019 estável (EX03-2019).
Existem dois bancos de dados de caixa de correio:
- O banco de dados da caixa de correioDB01é o único banco de dados de caixa de correio em uso em EX01-2019. Infelizmente, agora que EX01-2019 está offline, o status de montagem da caixa de correio do banco de dados éDesconhecido(Off-line) e nada funciona.
- O banco de dados da caixa de correioBanco de dados de caixa de correioestá montado em EX03-2019 e não está em uso. Está com boa saúde.

Então, como iremos restaurar o banco de dados de caixas de correio do Exchange para o novo Exchange Server EX03-2019?
Temos o banco de dados da caixa de correioDB01(.edb) arquivo. Mas como montamos o arquivo de banco de dados de caixa de correio (.edb) no novo Exchange Server? Não há opção para montar o banco de dados a partir de um caminho de arquivo no centro de administração do Exchange ou com o PowerShell.
O Exchange Server possui um recurso chamadoPortabilidade de banco de dados. Isso permite que um banco de dados de caixa de correio de um servidor de caixa de correio seja movido e montado em outro servidor de caixa de correio dentro da mesma organização.
Importante:Ao usar a portabilidade de banco de dados para recuperar um banco de dados de caixa de correio, a versão do sistema operacional e a versão do Exchange Server nos servidores Exchange de origem e de destino devem ser iguais. Por exemplo, se um banco de dados de caixa de correio do Exchange 2016 tiver sido montado anteriormente em um servidor que executa o Windows Server 2016, a portabilidade do banco de dados só funcionará ao migrar o banco de dados para um servidor que também execute o Windows Server 2016 e o Exchange 2016.
Etapa 1. Obtenha o estado de desligamento do banco de dados da caixa de correio de origem
Temos que verificar o estado de encerramento do banco de dados para decidir qual será o próximo passo.
Inicie o prompt de comando e execute o comando abaixo.
eseutil /mh "C:BackupDB01DB01.edb"Você também pode executar o comando abaixo para mostrar apenas oEstadopropriedade.
eseutil /mh "C:BackupDB01DB01.edb" | findstr "State:"A saída mostrará o valorDesligamento limpoou umDesligamento Sujo.
State: Clean ShutdownEtapa 2. Execute a recuperação suave do banco de dados da caixa de correio de origem
Se o banco de dados da caixa de correio estiver em estado de desligamento limpo ou você não tiver os logs de transações, poderá pular esta etapa.
Com um banco de dados em estado de desligamento incorreto e todos os arquivos de log de transações disponíveis, execute uma recuperação suave do banco de dados. Isso confirma todos os logs de transações não confirmados no banco de dados para que não haja perda de dados.
Execute o comando abaixo no prompt de comando para realizar uma recuperação suave no banco de dados da caixa de correio.
- /r: prefixo de registro
- /eu: caminho para arquivos de log
- /d: caminho para o arquivo do banco de dados
- /s: caminho para o arquivo de ponto de verificação
eseutil /r E00 /l "C:BackupDB01 Logs" /d "C:BackupDB01" /s "C:BackupDB01 Logs"A saída abaixo aparece.
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.Etapa 3. Criar banco de dados de caixa de correio de destino
Execute o Shell de Gerenciamento do Exchange como administrador. Crie um novo banco de dados de caixa de correio no Exchange Server que você usará para montar o banco de dados. Especifique os caminhos para o arquivo de banco de dados e os logs de transações.
Observação:Ele criará as pastas nos caminhos, mas o arquivo de banco de dados da caixa de correio ou os logs do banco de dados não aparecerão lá. Ele só aparecerá quando você montar o banco de dados da caixa de correio. Entretanto, você não montará o banco de dados agora porque precisará substituí-lo pelo backup em uma das próximas etapas.
New-MailboxDatabase -Name "DB01-Recovered" -Server "EX03-2019" -EdbFilePath "E:DB01-RecoveredDB01.edb" -LogFolderPath "F:DB01-Recovered"A saída abaixo aparece.
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 o banco de dados como substituível. O-AllowFileRestoreparâmetro especifica se é permitido que um banco de dados seja restaurado a partir de um backup.
Set-MailboxDatabase "DB01-Recovered" -AllowFileRestore:$trueImportante:Não monte o banco de dados de caixa de correio. Primeiro, você precisa mover os arquivos do banco de dados da caixa de correio de origem.
Etapa 4. Mover o banco de dados da caixa de correio de origem e os arquivos de log
Obtenha o banco de dados de caixa de correio do Exchange Server de backup ou que não inicializa.
Mova o banco de dados da caixa de correio de origem e os arquivos de log para os caminhos de destino criados na etapa anterior.
Copie o banco de dados da caixa de correioDB01.edb.

Cole no caminhoE:DB01-Recuperadoem EX03-2019.

Copie o banco de dados da caixa de correioRegistros DB01. Se você não tiver os logs de transações do banco de dados de caixa de correio, poderá pular esta etapa.

Cole no caminhoF:DB01-Recuperado.

Etapa 5. Montar banco de dados de destino
Monte o banco de dadosDB01-Recuperado.
Mount-Database "DB01-Recovered"Verifique se você vê o banco de dados de caixa de correio DB01-Recovered montado no centro de administração do Exchange.

Etapa 6. Definir banco de dados de caixa de correio para usuários
Vamos realocar as caixas de correio deDB01para oDB01-Recuperado.
Obtenha as caixas de correio no banco de dadosDB01.
Get-Mailbox -Database "DB01" -ResultSize UnlimitedMostra aos usuários que eles estão conectados ao EX01-2019, o que é 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 UnlimitedVocê deve definir a caixa de correio com o novo nome do banco de dadosDB01-Recuperado.
Altere o banco de dados de caixa de correio para um único usuário. Isso definirá os atributos para o banco de dados da caixa de correioDB01-Recuperadoe definir automaticamente o nome do servidorEX03-2019também.
Set-Mailbox -Identity "Boris.Campbell" -Database "DB01-Recovered" -ForceConfigure-o para todos os usuários.
Get-Mailbox -Database "DB01" -ResultSize Unlimited | Set-Mailbox -Database "DB01-Recovered" -ForceSe o ambiente tiver problemas, oObter caixa de correiocmdlet não mostrará as caixas de correio. Então, você precisa usar oTrouxe ocmdlet em vez disso.
Get-ADUser -Filter * -Properties msExchHomeServerName, homeMDB | Select-Object Name, msExchHomeServerName, homeMDB | Sort-Object Name | Out-GridViewIsso mostrará todos os usuários.
Veja também:Configurar o encaminhamento de email para caixa de correio no Exchange Server/Microsoft 365

Nem todos os usuários possuem uma caixa de correio e podem estar em bancos de dados diferentes. Portanto, vamos filtrar apenas os usuários do Exchange Server EX01-2019 e do banco de dados de caixa de correio 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-GridViewEsta é a aparência da saída.

Vamos configurar o novo banco de dados de caixa de correioDB01-Recuperadopara todos os usuários 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
}Os comandos acima apenas realojaram as caixas de correio e não as caixas de correio de arquivo morto. Para realocar as caixas de correio de arquivo morto, você deve alterar o valor do atributo msExchArchiveDatabaseLink.
Localize as caixas de correio de arquivo morto que estão no banco de dados de caixa de correio 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-GridViewVamos configurar o novo banco de dados de caixa de correioDB01-Recuperadopara todas as caixas de correio de arquivo.
# 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
}Etapa 7. Obtenha a caixa de correio no banco de dados de destino
Verifique se as caixas de correio estão hospedadas no banco de dados de caixas de correio DB01-Recovered.
Get-Mailbox -ResultSize Unlimited -Database "DB01-Recovered"Get-Mailbox -ResultSize Unlimited | Where-Object {$_.ArchiveDatabase -like "DB01-Recovered"}Verifique se há caixas de correio no banco de dados DB01 e não haverá resultados.
Get-Mailbox -ResultSize Unlimited -Database "DB01" Get-Mailbox -ResultSize Unlimited | Where-Object {$_.ArchiveDatabase -like "DB01"}O que vem a seguir?
O banco de dados da caixa de correioDB01-Recuperadoestá online e todos podem se conectar ao Exchange Server e continuar seu trabalho.
Agora você pode recuperar o servidor EX01-2019. Siga um dos artigos abaixo para recuperar o Exchange Server:
- Recuperar Exchange Server (autônomo)
- Recuperar servidor membro do Exchange DAG
Se você não usar o/Modo:RecoverServerswitch, conforme mostrado em ambos os artigos, você instalará um novo Exchange Server na organização. Embora este não seja o método recomendado, funcionará. No entanto, você deve remover o antigo Exchange Server do ADSI Edit e definir mais configurações posteriores no Exchange Server.
É isso!
Conclusão
Você aprendeu como restaurar o banco de dados de caixa de correio do Exchange Server. É sempre essencial ter um backup do banco de dados da caixa de correio porque é onde todas as informações da caixa de correio são armazenadas. Siga as etapas para montar o banco de dados de caixa de correio de backup em outro Exchange Server.
Você gostou deste artigo? Você também pode gostar de Criar caixa de correio de usuário no Exchange Server. Não se esqueça de nos seguir e compartilhar este artigo.













