none
Recovery Scenario: Corrupted DB --> eseutil /p --> Dial Tone DB --> RSG RRS feed

  • Question

  • Ok -- I have a client without good backups and a corrupt Exchange 2007 DB (SBS 2008).  I have provided them with an empty mailbox db to be able to send and receive emails until I can get their mail recovered from the the old DB, but I have some questions:

    My plan was as follows:

    1) eseutil /p to repair the DB

    2) mount the repair DB  in the Recovery Storage Group

    3) merge the old mail into the new DB.

    My questions are:

    1)  Will I run into any problems mounting the repaired DB in the RSG?  Can anyone point to an example on the web where someone documents doing that?

    2)  it's usually suggested that you run eseutil /d and isinteg /fixall after running eseutil /p.  Is that necessary if I am only going use it in the RSG and not as a production DB.  it seems that the whitespace isnt an issue so the defrag shouldn't be necessary.  I I don't ren a defrag then the logical counters should still be correct.  I am right in thinking that?

    3)  My other option is a 3rd party recovery tool.  I've looked at 3 so far.

    - Lipide.  Indian product -- seems a little cheesy and flakey Pretty fast, but seems to foul up the messages and contacts more than I'd like

    - Stellar.  Another Indian product -- also seems cheesy and flakey.  Its much slower than Lipide but seems to do a better job.

    - Lucid8 Digiscope -- this one looks very promising and seems like a professional mature product.  Still evualating.

    Anyone used one of these or a product like it and what was their experience? (please no marketing shill answers)

    Final thought:

    - eseutil /p is crazy slow.  It took 10 hours for 144GB DB to get the "Deleting Unicode Fixup Table Stage" when run on the Exchange Server.  Tried it on a fast workstation and it has took 4 hours to get the same stage.  Both have instance have been stuck at that stage for a number of hours.  Surely there is a better product for repairing the ESE jet DBs

    Thank You,

    Jason

    Wednesday, January 21, 2015 1:02 PM

Answers

  • Hi,

    Since you have run the ESEUTIL /P for about 20 hours, why don't you want to run Eseutil /d and ISInteg after you run Eseutil /P?

    Repairing databases involves the following three stages, in this order:

    1. Eseutil is run in /P mode to perform a database page-level and table-level repair

    2. Eseutil is run in /D mode to fully rebuild indexes and defragment the database

    3. ISInteg is then run to repair the database at the application level

    You need to run Eseutil /d and ISInteg after you run Eseutil /P.

    Best regards,


    Belinda Ma
    TechNet Community Support

    Friday, January 23, 2015 1:37 AM
    Moderator
  • Hi,

    1) This is based on your enviroment, it's hard to estimate what prblems you will encounter.

    2) Eseutil is run in /D mode to fully rebuild indexes and defragment the database. It's recommended to run Eseutil /d and ISInteg after you run Eseutil /P.

    https://technet.microsoft.com/en-gb/library/aa996773(v=exchg.65).aspx

    3) I'm not familar with these thrid party products, you can contact the third party vendor.

    Best regards,


    Belinda Ma
    TechNet Community Support

    Thursday, January 22, 2015 6:37 AM
    Moderator
  • Hi,

    Yes, I understand that you don't want to spend more time if it's a waste of time.

    But you need to run Eseutil /d and ISInteg after you run Eseutil /P, in event of any potencial issues. Thanks for your kind understanding.

    Best regards,


    Belinda Ma
    TechNet Community Support

    Monday, January 26, 2015 2:22 AM
    Moderator

All replies

  • Hi,

    1) This is based on your enviroment, it's hard to estimate what prblems you will encounter.

    2) Eseutil is run in /D mode to fully rebuild indexes and defragment the database. It's recommended to run Eseutil /d and ISInteg after you run Eseutil /P.

    https://technet.microsoft.com/en-gb/library/aa996773(v=exchg.65).aspx

    3) I'm not familar with these thrid party products, you can contact the third party vendor.

    Best regards,


    Belinda Ma
    TechNet Community Support

    Thursday, January 22, 2015 6:37 AM
    Moderator
  • Thanks Belinda,

    Not to be snarky, but I said in #2 that I realize that "ESEUTIL /D" and "ISINTEG /FIXALL" is recommended after "ESEUTIL /P". It's my understanding from the several hours I've spent researching the issue, that this recommendation stems from the fact that /P removes the corrupt regions from the mdb leaving whitespace.  The result is, possibly, a badly fragmented mdb file. /D removes the whitespace and rebuilds the indexes but doesn't correct the logical pointers.  Isinteg corrects the logical pointers.

    All of this is great if you plan to continue using the database rather than just moving the data after a repair.

    Actually I purchased Digiscope and it is doing a great job of pulling the data from the "dirty" database (I don't really think it's corrupt, but one of the log files needed for the rollup was damaged and fails the checksum eval) and loading it into the clean MDB.

    My plan is to stay with the new MDB after I have populated it with the old data using Digiscope, but I would like to have a mountable copy of the mdb in the RSG -- just in case.

    So...my real question is if the data in the "repaired" mdb is reliable without running /D and ISINTEG.  Performance of the MDB isn't really a concern for me at this point, but after 20+ hours running /P, I am not all that eager to run /D and ISINTEG if I don't have to.

    Sorry for the lengthy posts,

    Jason

    PS -- For anyone that stumbles on this post researching a similar issue, http://msexchangeguru.com/2011/03/02/databse-repair/ has a great discussion of what actually happens with these commands

    • Edited by JDWilson Thursday, January 22, 2015 3:55 PM Added the postscript for posterity
    Thursday, January 22, 2015 3:46 PM
  • Hi,

    Since you have run the ESEUTIL /P for about 20 hours, why don't you want to run Eseutil /d and ISInteg after you run Eseutil /P?

    Repairing databases involves the following three stages, in this order:

    1. Eseutil is run in /P mode to perform a database page-level and table-level repair

    2. Eseutil is run in /D mode to fully rebuild indexes and defragment the database

    3. ISInteg is then run to repair the database at the application level

    You need to run Eseutil /d and ISInteg after you run Eseutil /P.

    Best regards,


    Belinda Ma
    TechNet Community Support

    Friday, January 23, 2015 1:37 AM
    Moderator
  • Are you reading my posts? You keep repeating what I've already said. I'm going to do it, but a sneaking suspicion its a waste of time.
    Friday, January 23, 2015 8:01 PM
  • Hi,

    Yes, I understand that you don't want to spend more time if it's a waste of time.

    But you need to run Eseutil /d and ISInteg after you run Eseutil /P, in event of any potencial issues. Thanks for your kind understanding.

    Best regards,


    Belinda Ma
    TechNet Community Support

    Monday, January 26, 2015 2:22 AM
    Moderator