If your Exchange server’s stores won’t mount, try the following.
- Turn off all of your Exchange services, and copy the stores to a backup location of some sort, including both logs and .edb files if you have them both. We won't touch these.
- See if you can recover using the logs. Go to command prompt, CD to the location of the stores. If the logs are there, there will be a file with a short name in there, on many systems it's just "E00". The log files themselves have extension ".log", but not that one. Run the following command to try to recover using logs, where "AAA" needs to be replaced with that short three-letter name:
- We will now perform a step which repairs certain kinds of corruption in the database file(s). Run the following command for each .edb file you have, replacing “databasename.edb” with the name of the file:
- The next step is a “defragment” of the same database files. This is more than a defragment; this is really a rebuild of structure, and a means of eliminating more forms of corruption. Run the following command for each .edb file you have, replacing “databasename.edb” with the name of the file:
- Now start all of the appropriate Exchange services (usually, all the ones marked “automatic”), but do not yet try to mount the stores. We have more corruption cleanup to do which requires the Exchange services running, with stores unmounted. While the server is in this state, do this:
- Run the above command, replacing “servername” with the DNS hostname of your server. When run, it will give you the option of choosing each of your stores, if you have more than one. The first time you run it for a given store, it will probably say that it has corrected errors. Run the same command on the same store, over and over, until it reports that it did not correct anything. Do that to all of your stores. Then mount them, you are done!
ESEUTIL /R AAA
The above may or may not work, or be possible. The logs may also have been moved to a different location. And even if it does work, it’s a good idea to continue down this list.
ESEUTIL /P databasename.edb
ESEUTIL /D databasename.edb
isinteg -s servername -fix -test alltests