John Yassa's Blog

Home » Posts tagged 'exchange 2013'

Tag Archives: exchange 2013


How to Restore the Exchange Database from A Backup File in state of inconsistency?

For restoring the database on Exchange Server, the user needs to have an up-to-date and usable backup in hand, because an incomplete or even no backup can create a troublesome situation during the database the process of restoration. Additionally, Microsoft Information Store needs to be in a healthy state to mount the database successfully.

With an unmounted Exchange Store, the users face several issues such as restricted access to the data and the mail flow. In order to smoothly restore your database on Exchange Server, it is important to perform certain tests to verify the database consistency.

Pre-assessment Phase: Verify the State of the Database on Exchange

Use the following steps to verify the state of the database:

  1. Launch a command prompt.
  2. Move to the Drive:\Program Files\Exchsrvr\Bin

(The default location of the of Exchange 2000 Server program files are located in this folder)


Move to Drive:\Program Files\Microsoft\Exchange Server\V15\Bin

(When using Exchange 2013/2016, then use the above-mentioned default path)


  1. Enter the below-mentioned command:

eseutil /mh “drive:\program files\exchsrvr\mdbdata\database_name.edb”

Note: The default location of database files is on this Drive:\Program Files\Exchsrvr\MDBDATA folder. The public database file can be found with the name: “Public.edb”, whereas the mailbox store database file can be found with the name: “Priv1.edb”.

  1. Read the Output, in order to verify the state of the database. If the database appears in the state of inconsistency, then the output will appear, as:

State: Dirty Shutdown

Restoration Phase: How to Restore the database from a backup file

Upon using the pre-assessment phase, if the database appears in a consistent state, then simply restore the backup using the file.

Steps to Restore Database in A Consistent State:

Implement the following steps to restore the database from the backup file.

  1. Transfer the E00.log file to an another path or simply rename it.

The default location of E00.log file can be found on this Drive:\Program Files\Exchsrvr\MDBDATA folder.

  1. Restore the storage group and the log files from the backup file.

Note: Do not remove the existing log files, until you have performed the restore operation. Upon completing the restore operation, the log files are restored, and replay inside the restored database. This is how, the user can bring the database into a consistent state without involving the E00.log file.

  1. Once the storage group is restored, you can successfully mount the databases in the storage group.

Steps to Restore Database in an Inconsistent State:

  1. Launch the command prompt.
  2. Reach to the location – Drive:\Program Files\Exchsrvr\Bin folder.
  3. Enter the following command in the command prompt:

eseutil /p “drive:\program files\exchsrvr\mdbdata\database_file_name.edb”

  1. To use the database in a productive environment, try to defragment and then rebuild the database. Use the below mentioned command to proceed:

eseutil /d /t:x “drive:\program files\exchsrvr\mdbdata\database_file_name.edb”

Note: ‘x’ is a temporary drive location in the above-mentioned command.

  1. To determine the state of the database, enter the following command, and then read the output:

eseutil /mh “drive:\program files\exchsrvr\mdbdata\database_file_name.edb”

When database is consistent, the output will appear, as:

State: Clean Shutdown

  1. Use the Microsoft’s Store Integrity utility (Isinteg.exe) to fix the logical corruption issues in the database. Use the following commands to repair it:

Isinteg –s exchange_server_name –fix –test alltests

After executing the command, the user is prompted to choose the database in the utility. Repeat the aforementioned command until no errors or fixes are appeared in the output.

However, if zero errors are not displayed for a database that  you want to repair, then the other option is to rebuild the database. To do that create a new mailbox store on either the existing Exchange server or new server and then transfer all the mailboxes to that one. However, if you are still unable to create a new mailbox store, then try to rebuild the database from the following method. To do it, try to export all mailbox information to PST files, and delete the database, and finally import the data.

  1. Repeat the steps from 3 to 6 for each database in the storage group.
  2. Mount the databases.

Once the database is restored and you can also perform an online backup of the storage group. However, if the database is not restored or rebuilt in the state of inconsistency, then try using a third-party Exchange recovery software like Kernel for Exchange Server to perform accurate recovery of lost information from corrupt EDB and STM files, and without requiring log files. The Exchange mailbox items can be successfully restored to live Exchange Server, Office 365 mailbox or to Outlook PST files.

Article Summary:

When Exchange database creates mounting troubles, then try to investigate the issues hampering the restore operation. Verifying the shutdown state (whether consistent or inconsistent) of the database becomes important, and Eseutil can be helpful in this scenario, but with certain restrictions.

Litigation Hold vs In Place Hold

In the previous versions of Exchange (Exchange 2010) and Exchange online (Office 365) previous service version , the term litigation hold is introduced

Litigation Hold , is to allow you to immutably preserve mailbox content to meet long term preservation and eDiscovery requirements. When a mailbox is placed on Litigation Hold, mailbox content is preserved indefinitely.

In the new version of Exchange (Exchange 2013) and Exchange online (Office 365) existing service version , a new term has been released which is In Place Hold

In Place Hold, is called query-based and time-based In-Place Hold for the mailbox

After the release of Exchange 2013 and the new Exchange Online, there were some documentation that mentioned that Litigation Hold was being deprecated , this is not true and both terms are available 

Both types are available for use and you should use the hold feature that best meets your needs.  Here are some scenarios to help you choose between the two holds.



Source : TechNet Blogs


How To Find Which Store Worker Process Is Responsible For A Mailbox Database

Microsoft has introduced two new processes as part of the managed store concept:

1- First is the Store Worker Process(Microsoft.Exchange.Store.Worker.Exe) which does the same job that store.exe handled in previous versions. The only difference in 2013 is that a single Store Worker Process is only responsible for one database.

2- The second one is the Store Service Process(Microsoft.Exchange.Store.Service.Exe) & it is the process that controls the different store worker processes. When a database gets dismounted, it is the store service process which terminates the store worker process that was responsible for that database. Similarly, when a database gets mounted, the store service process brings a new store worker process for that database. The store service process is a controller of all the other store worker process

The Question is how to determine which store worker process handled a mailbox database

First I have 4 Mailbox Databases on my server as shown below:



Now , I have a single store service process and four worker processes.



Till now i couldn’t determine which worker process belong to which DB
So all you need is to get the Details Tab in the task manager and you will see the below



Now you know which Store Worker Process and its PID cause high CPU or Memory
Now you can run the below command and the result will show as below
Get-MailboxDatabase -Status | ft name, workerprocessid 



Now that you have the store worker process & the process id from the task manager and database name & process id from the Shell, it is easy to find out which worker process is handling which database.

If you find that one store worker process is hot on CPU or memory, you can find the database behind it this way and take administrative action.

Exchange 2013 Server Role Requirements Calculator

Finally Exchange 2013 server role requirements calculator

The calculator has been improved in several ways for high availability architectures:

  • You can now specify the Witness Server location, either primary, secondary, or tertiary datacenter.
  • The calculator allows you to simulate WAN failures, so that you can see how the databases are distributed during the worst failure mode.
  • The calculator allows you to name servers and define a database prefix which are then used in the deployment scripts.
  • The distribution algorithm supports single datacenter HA deployments, Active/Passive deployments, and Active/Active deployments.
  • The calculator includes a PowerShell script to automate DAG creation.
  • In the event you are deploying your high availability architecture with direct attached storage, you can now specify the maximum number of database volumes each server will support. For example, if you are deploying a server architecture that can support 24 disks, you can specify a maximum support of 20 database volumes (leaving 2 disks for system, 1 disk for Restore Volume, and 1 disks as a spare for AutoReseed).


You can read the full article from here

You can download the calculator from here


what’s new and the new architecture of Exchange 2013

I have found these 2 videos on Tech-Net

The first video shows what is the new features in exchange 2013 and you can see the video here

The second video talks about:
1- New architecture of exchange 2013
2- High availability
3- Co-existence with exchange 2007 and exchange 2010
4- Upgrade path from exchange 2007 and exchange 2010

You can check the second video here

%d bloggers like this: