Share via


Step by Step Guide to perform Exchange Dial Tone Recovery

A disaster is always bound to happen and when it happens you need to be prepared for it. The last thing you need while you are trying to recover from a corrupted Mailbox database is frustrated users or the big boss on your shoulder waiting to see his emails the minute it goes down. Recovering with the native tools we normally use i.e. EseUtil and then defragmenting with New-MailboxRepairRequest take a considerate amount of time while the EDB database is down but there is a native alternative for this which has been around for a while thou with different forms. In the latest Exchange Server versions this has been improved and it’s now called Dial Tone recovery.  
 
In short what the Dial Tone recovery does is getting the users up and running with receiving and sending emails almost instantly by having a temporary empty mailbox and using the cached mode to view previous emails. If you have users with cached mode disabled, they will not be able to see their past emails and only the new ones. This way, the users can continue to work while you can relax and concentrate on restoring the corrupted mailbox store. In previous Exchange Server versions you would need another dedicated Exchange Server where you restore the corrupted database, export the data to PST and use ExMerge to copy the mailboxes to the production server which depending on the amount of data and the network performance could take several hours to your recovery time. So, here’s a step-by step guide on how to perform an Exchange dial-tone recovery. 
 
First things first, licensing and version. If you have Exchange Server Standard Edition you are allowed to have five databases on your setup. For the Dial Tone recovery you need to add an additional database. For the Enterprise Edition you have a maximum limit of 100 databases. So, before starting this guide, make sure that you are below the limit depending on the version installed. 
 
The right permissions must be assigned to the user performing the recovery. You must make sure that the user has the role of the Organization Management assigned. Check that you have ample space for the recovery process. If need be move, not delete the EDB and the respective logs and files to another location after dismounting it. Do not mount the database you need to recover from. 
 
Open the Exchange Management Shell and create the dial tone database using the NewMailboxDatabase cmdlet

New-MailboxDatabase –Name DTDB01 –EDBFilePath M:\DialTone\DTDB01 

Now we need to put a new home for all the users into the new temporary database by using the Set-Mailbox cmdlet and then mount the newly created database using the MountDatabase cmdlet

Get-Mailbox –Database DB01 | Set-mailbox –Database DTDB01 
Mount-Database –Identity DTDB01 

At this stage you should check that the users are able to connect to the server and are able to send and receive emails. At this stage you take a breath. 

Now we need to create a Recovery Database (RDB) and restore the database and logs containing the data we restored from the last healthy backup. You would need to restore the EDB file along with the log files from the backup to a location in your server. Once this is done we need to copy any log files from the corrupted database to the same folder of the recovered database/logs from backup. To create the database we need to create it using the New-MailboxDatabase cmdlet with the –recovery parameter as below. 

New-MailboxDatabase –Recovery –Name RDB01 –Server SRV-EXC-001 – EDBFilePath M:\RDB01 –LogFilePath M:\RDB01\Logs 

After creation of the database make sure that the database is not mounted. The database we restored from backup will be in a Dirty Shutdown state and we need to change it to clean shutdown. This can be done using the EseUtil with the /R parameter as below. 

Eseutil /R E00 /l<path to the log files> /d<path to the database file> /i /a

Once this is done run the ESEUtil with the /mh parameter to confirm that the state is Clean Shutdown. On the Maintenance tab make sure to tick This database can be overwritten by a restore. Mount the Recovery database and unmount it again to make sure that all is ok. Move the files of the Recovery database to a safe location. Want to know more about dirty shutdown can check this article.

Here we will find that we need the downtime for the users. You need to dismount the Dial Tone database and move them into the Recovery database location. Move the files from the recovery database you moved to the safe location to the location of our Dial Tone database (DTDB01) and mount the database DTDB01 using the line below. 

Mount-Database –Identity DTDB01 

Here the users will be back online using their original mailboxes from the last healthy backup. At this stage you would need to use the Get-Mailbox and NewMailboxRestoreRequest cmdlet to export the data from your Temporary Database we created into the active database. 

$mailboxes = Get-Mailbox -Database DTDB01 <br>$mailboxes | %{ New-MailboxRestoreRequest -SourceStoreMailbox $_.ExchangeGuid -SourceDatabase RDB01 -TargetMailbox $_ }

 

After the process is complete the users can continue to work with their recovered mailboxes and the new emails they had during the process. For the clean-up process you can dismount and remove the Recovery Database as below by using the Dismount-Database and Remove-MailboxDatabase cmdlet. 

Dismount-Database -Identity RDB1 
Remove-MailboxDatabase -Identity RDB1 

Now that the Dial Tone recovery process is complete, the users will be able to access their mailbox along with the new emails that they have sent and received during the process. This process take a considerate amount of time to complete and this is when all went good with no issues encountered. The other thing is that you are recovering from the last backup meaning the emails from the last minute of failure will be lost.