# How to test the integrity of an Exchange database?

I would like to verify the integrity of my Exchange 2010 database backups and could use some guidance.

We have an Microsoft Small Business Server 2011 server that we backup but I don't know if the backups are any good yet. Since I don't have the hardware beefy enough to install SBS again and practice a restore, I thought maybe I could simply export a backed up copy of the Exchange database to a USB drive and run some tool on it to verify that it passes integrity checks. Pointers on how to do this or something similar would be much appreciated.

-
I hate to say it but until you've checked its integrity and restored the DB from backup on a test server and got it mounted, you haven't proven you can restore from it. I know that's not what you wanted to hear but if you're really worried about the data in that exchange DB then better to know now than be told "too bad, you shoulda..." in the middle of a crisis, right? –  RobM Mar 14 '11 at 19:29
@Robert Moir, I am sure we can all agree that is true, but sometimes the resources are not available to actually do a full test. I think this question is about how to test as much as you can without the ability to do a complete restore. –  Zoredache Mar 14 '11 at 19:32
Fair enough, i appreciate the need to be pragmatic, just wanted to make sure you weren't getting something that you thought you were –  RobM Mar 14 '11 at 20:18

You'll want to use ESEUtil. Not much has changed in it over the past 3 Exchange versions.

Here is one guide about how to use ESEUtil to do some basic database checks in Exchange 2010: http://msexchangeguru.com/2009/07/12/exchange-database-recovery-using-eseutil-commands/

For example, to run an integrity check on a database named priv1.edb located in D:\Restore, try:

ESEUTIL /G "D:\Restore\priv1.edb“


ISINTEG is designed especially to check integrity of Exchange stores, but I believe it only works on databases in a running Exchange system. ESEUtil only requires the database files.

-
ESEUTIL isn't going to help him verify the integrity of his backups, restores, or the process itself. It can be run on an unmounted Mailbox database but not on a backup file (unless the backup is an actual copy of the edb file). In addition, verifying the integrity of the Mailbox database tells him nothing about his backups or the ability to restore those backups. –  joeqwerty Mar 14 '11 at 19:57
Well, he did state that he wanted to try to "simply export a backed up copy of the Exchange database to a USB drive," which should give him the edb file. This is just a database integrity check, yes, but it's about all I know that he can do for free without buying a specialized product or a test server. I agree though, a test like this is no substitute for periodic full-restore testing. –  Hyppy Mar 14 '11 at 20:00
True, but an exported copy of the backup could be anything. Is it an actual copy of the edb file, a copy of a bkf file, etc.? –  joeqwerty Mar 14 '11 at 20:05
Exchange 2010 only supports VSS backups, and VSS backups are volume snapshots, so there actually is a .edb file inside your backup, whatever backup software you are using. Tested it myself with DPM 2010. –  Massimo Mar 15 '11 at 14:32
I haven't forgotten about this question. I've restored a exchange database copy from three backup products and ESEUtil hasn't told me anything comforting yet. :-( Next I'll try to figure out the recovery database method in the answer from Evan. –  sandymac Mar 22 '11 at 18:17

You could restore the database to a recovery database and attempt to restore some items out of it. You can do this "live" on your existing server computer without disrupting production operations (though you may be soaking up a lot of your I/O bandwidth).

-
This appears to be a process available to SDK developers. Beyond my abilities here. –  sandymac Mar 15 '11 at 15:36
@sandymac: I just dropped on an edit and changed the link to something more user-friendly. The linked document has some links to direct you on how to create the recovery database and restore data into it and then, using the Restore-Mailbox cmdlet, restore mailboxes. –  Evan Anderson Mar 15 '11 at 16:13

If you are willing to spend some money you may want to take a look at Ontrack PowerControls. It allows you to open the Exchange database backup offline and restore individual mailboxes. You can use it from a workstation provided you have enough storage. Being able to extract/restore individual mailboxes and messages will strongly indicate that the entire database is probably in a good state.

-