No announcement yet.

Exchange 2007 corrupted database

  • Filter
  • Time
  • Show
Clear All
new posts

  • Exchange 2007 corrupted database

    Hello everybody,

    I will need some help and I think an exchange Guru or more, an exchange Yoda master will be better.

    This morning I had a server crash and the exchange 2007 database didn't want to mount.

    I ran the following command:
    * eseutil /mh : the status was "clean shutdown"
    * eseutil /g: the database is corrupted so I need to provide correction to the database.
    * eseutil /p: the database was corrected

    I was able to mount the database but when I started outlook, I saw that I had per example 230 unread messages but no message (read or unread) appears in the inbox.

    Thinking it was a kind of index issue I ran the following command
    * eseutil /d: to defragment
    * isinteg -fix: to fix the database.

    My database is 40 GB in size but all user mailboxes appears as ... empty or few messages as I mounted the database.

    It seems that I lost all messages inside the mailbox EDB database.

    My question is: what did I do wrong ? Why is the EDB file 40 GB in size but all the mailbox appearing empty ?

    Question 1: In case I will have to recover the backup database (the one from Tuesday or Monday), how do I mount it ?

    Qustion 2: If I recover the backup database, will I be able to replay the transaction LOG files to refill the database with the last messages received ?

    For now I am really lost and do not know what do to recover a functional exchange server with all the emails. Any help will be welcome.

    Thank you for the answer.


  • #2
    Re: Exchange 2007 corrupted database

    I am by no means yoda but may be able to offer a little help.
    The actions you have performed look ok, the normal procedure is:
    To run Eseutil /P first.
    Then you run Eseutil /D.
    Then run Isinteg -fix -test alltests

    Using your existing working database backup and log files you could:
    Soft Recovery
    In the most common soft recovery scenario, an external event unexpectedly stops an Exchange database, but the database and log files remain intact and in place. When the database is mounted again, Exchange reads the checkpoint file and begins to replay the transaction log that is listed as the checkpoint log. If no checkpoint file exists, replay begins at the oldest log file available in the transaction log folder for the storage group.

    Exchange writes completed transactions to the database files. These are transactions that are found in the log file and that have not already been written. Exchange then reverses any incomplete transactions. Exchange never begins writing a transaction into the database files until all the operations composing it are secured to the log files. You do not have to physically undo or stop a transaction in the database if all uncommitted transaction logs that exist when the unexpected stop occurs also exist when replay begins.
    A fundamental assumption of the soft recovery process is that no database or log files have been moved, deleted, or destroyed either by the failure or by the administrator after the failure.

    For more info:

    Good luck and make sure you have good backups and can completely revert to the point you started at with no data loss.

    This may be of use to you:
    Last edited by uk_network; 29th September 2013, 11:32.
    Please remember to award reputation points if you have received good advice.
    I do tend to think 'outside the box' so others may not always share the same views.

    MCITP -W7,
    MCSA+Messaging, CCENT, ICND2 slowly getting around to.


    • #3
      Re: Exchange 2007 corrupted database

      Thank you UK_network for your answer. So after all the eseutil /p, my database was full on emptiness, no user were able to get their email. I had to work with Microsoft support to get the database bask.
      We ran several time the command isinteg -fix to correct all the error. I was then able to mount the database and the emails labelled "received :none" disappeared. But the database was in a so bad shape we were unable to work with it as the main database.

      We mounted a 3 days previous good database, had to run the eseutil /r command to replay the LOGs. Once this database in cleanshutdown mode, it was installed as mail default database.

      Then we mounted the repaired database in the recovery storage group and merged the emails to the main database. Almost all users got their emails back with some few emails lost.

      Users who lost some emails were those with a local OST file so I will take their OST file, purge it from all unwanted emails to kept only the wanted days and I will re-inject them into exchange.

      Next time, I won't play with eseutil /p Commande line and will try to find another way to repair the database.

      Case closed.

      thank you. Have a nice day


      • #4
        Re: Exchange 2007 corrupted database

        Thanks for keeping us informed. I'm glad that you have gotten this issue resolved.
        Please remember to award reputation points if you have received good advice.
        I do tend to think 'outside the box' so others may not always share the same views.

        MCITP -W7,
        MCSA+Messaging, CCENT, ICND2 slowly getting around to.