Corruption can exist at several different levels. At the top most level you have the 4K pages in the btree+ database. At this level, you're looking for the checksum of each page to determine if it is consistent with the data on the page.
Each page in a btree+ database can contain either data or indexes. The next level to scan is the indexes. Exchange is not like POP. Each message has a specific messageID, and is store only once in the database. You have majour inexes for messages and attachments, as well as indexes for views and such. Each "mailbox" is a collection of indexes representing folders, which contain indexes that point to entries in the message and attachment tables. Damage to an index would potentially impact more than one mailbox.
At the actual mailbox level, you can retrive the index for each folder and the item each pointer refrences for each email, attachment, etc. Finally, you can check the properties of each message to ensure they are consistent.
At the page level, you would use ESEUtil /k to check the consistency of the pages in the databases.
At the index level, you would use isinteg -test alltests to check all the indexes.
At the item level, you would read each item via MAPI; either move the mailbox to another store or exmerge the mailbox to a PST. An error will be logged in the application log for any items with corrupt properties. The text of the event will reference the corrupt item.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.