Exchange database restore: Dirty Shutdown

I have a situation where an employee left the firm and deleted his email.  Since he was a trusted employee (mistake!) no one thought to check for this until after the retention period had expired.  I was asked to restore from backup and retrieve his mailbox from a previous date.  For some reason I cannot complete the eseutil /r process and replay the log files.  I keep getting errors:

Operation terminated with error -501 (JET_errLogFileCorrupt, Log file is corrupt) after 42.141 seconds.

The eseutil /mh reported a Dirty Shutdown and said I needed log file E0025286.  I retrieved that from backup on same day, renamed it to E00.log, but got the error.  So I thought, hmmmm....maybe the log file is truncated.  So I checked the backup from the next day and found a log file with the same name.  I tried that one, changing the name to E00.log but got the error.  I then tried using the older 25286 (original file name) with the newer 25286 renamed E00.log.  Got the error.

I decided screw it, I'm running a repair.  But the eseutil /p priv1.edb command now comes back with an error:

Error: Access to source database 'priv1.edb' failed with Jet error -1811.

Operation terminated with error -1811 (JET_errFileNotFound, File not found) afte
r 3.94 seconds.

The .edb file is there but I notice it now has a new date stamp with today's date.  I'm stumped.  I'm doing all of this utility work on an external USB drive.  I have performed this task once before and it worked but this time it is not going so well.

Any ideas?

thanks,
kevin
12vltmnAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
12vltmnConnect With a Mentor Author Commented:
I finally was able to successfully do a repair on the database.  I restored a backup from a different date.  It was in a dirty shutdown state and said it only required one log file.  Rather than restoring only that one log file, I restored all of the log files from that backup date.  I ran "eseutil /r E00 /i /d" and it successfully replayed the log files into the database.  After, I ran "eseutil /mh" and it returned a clean shutdown state.  So, contrary to what I have read in the article from Microsoft, instead of restoring only the transaction logs that are shown as "needed" and renaming the last log in the sequence to "E00.log" I restored all the log files and did not rename the last log in the sequence. The repair utility created a checkpoint file as well as a new E00.log file.  The repair was successful and I am now copying to the RSG so I can extract the mailbox using ExMerge.
0
 
ltswebCommented:
Run the utility from the directory where the file exists.  Also make sure you have 2x the amount of space available to allow for the temp file to be created.  

I believe you also need to make sure Information Store is not running.
0
 
R--RCommented:
File not found error means it is not finding the file to repair. please use the proper path.
0
Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

 
ash007Commented:
Please dont rename any log files and copy the missing log file to trnsaction logs location and then replay gain logs using Eseutil /r / e00 /i  command
0
 
12vltmnAuthor Commented:
@ltsweb:  I am running the utility from the same directory as the location of the database files and log file.  I placed the \bin folder in the search path so I can run it from anywhere on the server.  I have an external USB drive attached, a folder created on that drive, and the database files and log file in that folder.  From a DOS prompt in that folder I run the utility.  From everything I have read, nothing states I have to do anything with the information store.  Once the log files are replayed into the database I will copy to the Recovery Storage Group and use ExMerge to pull out the mailbox.

@R-R:  As stated, the database files and log file are in the same directory on a USB drive.  I  use this command from that directory:  eseutil /r E00 /i /d
When the process starts it says "database files in current directory | log files in current directory | system files in current directory

@ash007:  when I do not rename the log file I get an error saying the log file was not found.  I'm sure I read somewhere that I must rename the last log file in the sequence to "E00.log".  Since there is only one log file needed to replay, I renamed it E00.log.  I tried running the recovery without renaming and I get the error I just mentioned.  When you say copy to transaction logs location...you don't mean to live location, do you?  This is a recovery operation for the Recovery Storage Group.  I'm not messing with my live logs.
0
 
12vltmnAuthor Commented:
The results from eseutil /mh priv1.edb:

X:\092411>eseutil /mh priv1.edb

Microsoft(R) Exchange Server Database Utilities
Version 6.5
Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating FILE DUMP mode...
         Database: priv1.edb

        File Type: Database
   Format ulMagic: 0x89abcdef
   Engine ulMagic: 0x89abcdef
 Format ulVersion: 0x620,11
 Engine ulVersion: 0x620,11
Created ulVersion: 0x620,11
     DB Signature: Create time:09/23/2011 21:07:54 Rand:888357446 Computer:
         cbDbPage: 4096
           dbtime: 39898344 (0x260cce8)
            State: Dirty Shutdown
     Log Required: 193158-193158 (0x2f286-0x2f286)
   Streaming File: Yes
         Shadowed: Yes
       Last Objid: 10710
     Scrub Dbtime: 0 (0x0)
       Scrub Date: 00/00/1900 00:00:00
     Repair Count: 0
      Repair Date: 00/00/1900 00:00:00
 Old Repair Count: 0
  Last Consistent: (0x2F279,121A,105)  09/24/2011 16:24:58
      Last Attach: (0x2F279,1223,1C)  09/24/2011 16:26:42
      Last Detach: (0x0,0,0)  00/00/1900 00:00:00
             Dbid: 1
    Log Signature: Create time:07/14/2006 20:40:20 Rand:14496968 Computer:
       OS Version: (5.2.3790 SP 2)

Previous Full Backup:
        Log Gen: 0-0 (0x0-0x0)
           Mark: (0x0,0,0)
           Mark: 00/00/1900 00:00:00

Previous Incremental Backup:
        Log Gen: 0-0 (0x0-0x0)
           Mark: (0x0,0,0)
           Mark: 00/00/1900 00:00:00

Current Full Backup:
        Log Gen: 0-0 (0x0-0x0)
           Mark: (0x0,0,0)
           Mark: 00/00/1900 00:00:00

Current Shadow copy backup:
        Log Gen: 0-0 (0x0-0x0)
           Mark: (0x0,0,0)
           Mark: 00/00/1900 00:00:00

     cpgUpgrade55Format: 0
    cpgUpgradeFreePages: 0
cpgUpgradeSpaceMapPages: 0

       ECC Fix Success Count: none
   Old ECC Fix Success Count: none
         ECC Fix Error Count: none
     Old ECC Fix Error Count: none
    Bad Checksum Error Count: none
Old bad Checksum Error Count: none

Operation completed successfully in 3.312 seconds.
0
 
ltswebCommented:
The database is in a dirty state which means you need to repair it.

Microsoft will recommend you restore from backup.  

Your next step is eseutil /p. see http://technet.microsoft.com/en-us/library/aa997215(v=exchg.65).aspx

Note, you risk loosing data!

You will run it and then delete the old logs.  

You will also need to run isinteg -fix alltests to plug any errors in the file.


See http://www.msexchange.org/tutorials/exchange-isinteg-eseutil.html

For process.

Good luck.
0
 
12vltmnAuthor Commented:
@ltsweb:  This IS a database restored from backup.  I am trying to recover a mailbox using Recovery Storage Group.  The log files won't replay, and I have already run eseutil /p on the database and it is still in a dirty shutdown state so it will not mount in the RSG.  Do you know if there is any way to run a utility on the log files themselves to see if they are truly corrupted and possibly repair them?  Per my previous posts I have tried to repair using eseutil /r and I get errors stating the log files are corrupt.  I thought I could only run isinteg on the "active" information store.  Can it be applied to a database in the RSG?  My thinking is no since you can't actually tell the utility which store, it just runs on the active...I believe.
0
 
12vltmnAuthor Commented:
The responses I received were not clear nor concise.  After trying multiple possible solutions I seem to have hit on the one that works.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.