Solved

Microsoft Exchange 2003 Mailbox Store Shutdown State = Dirty (AP)

Posted on 2010-08-17
12
1,143 Views
Last Modified: 2012-05-10
Basically, one of our Exchange servers went down :(

Now it wont mount some of the exchange mailbox stores, when doing an ESEUTIL /MH on the mailbox store I am receiving these:

State: Dirty Shutdown
Log Required: 114128-114132 (0x1bdd0-0x1bdd4)

How do I find out which log files it actually needs and then how do I import them into the EDB file so I can mount the database?
0
Comment
Question by:tlcsupport
  • 5
  • 4
  • 3
12 Comments
 
LVL 5

Expert Comment

by:adaroc
Comment Utility
First see the application log to know the reason why it went to dirty shutdown.

  Then check the logs required for making this database into clean  shutdown i.e run eseutil /mh path of the database just below the status  you will logs required.

this article will help in identifing : http://support.microsoft.com/kb/240145
 
 Make sure that those logs are available if it is available then you need to go with eseutil /r

post back results
0
 
LVL 1

Author Comment

by:tlcsupport
Comment Utility
I did the /MH and got:

State: Dirty Shutdown
Log Required: 114128-114132 (0x1bdd0-0x1bdd4

but that doesn't match up with the filename format of the log files.

Here is the full outcome of the /mh

C:\Program Files\Exchsrvr\bin>eseutil /mh "S:\Exchsrvr\MDBDATA\Storage Group 3\M
ailbox Store 3.edb"

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

Initiating FILE DUMP mode...
         Database: S:\Exchsrvr\MDBDATA\Storage Group 3\Mailbox Store 3.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:11/23/2006 14:36:12 Rand:109826350 Computer:
         cbDbPage: 4096
           dbtime: 498246677 (0x1db2a415)
            State: Dirty Shutdown
     Log Required: 114128-114132 (0x1bdd0-0x1bdd4)
   Streaming File: Yes
         Shadowed: Yes
       Last Objid: 139629
     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: (0x1BB58,14F8,172)  08/17/2010 09:26:50
      Last Attach: (0x1BB58,14FA,CE)  08/17/2010 09:26:50
      Last Detach: (0x0,0,0)  00/00/1900 00:00:00
             Dbid: 2
    Log Signature: Create time:11/23/2006 14:36:10 Rand:109818909 Computer:
       OS Version: (5.2.3790 SP 2)

Previous Full Backup:
        Log Gen: 109205-109274 (0x1aa95-0x1aada)
           Mark: (0x1AA9A,4BA,13B)
           Mark: 08/13/2010 20:49:54

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.0 seconds.
0
 
LVL 5

Expert Comment

by:adaroc
Comment Utility
hi

you must convert the decimal  range that is listed in the  Log Required field to hexadecimal values. For example, if the Log Required value is 28217 – 28221, log files from 06E39 to 06E3D are required by this  database. In Exchange Server 2003 SP1, the Log Required field has been enhanced to report both decimal and hexadecimal values.

Note You can use the Scientific mode of the Windows Calculator to convert from decimal to hexadecimal. Start the Calculator, and then click Scientific on the View menu. Enter the decimal number, and then click Hex.

post back results
0
 
LVL 1

Author Comment

by:tlcsupport
Comment Utility
Ah-ha! Genius!

Ok, so I now have the 4 log files. It seems that all 5 stores in the Storage Group require these 4 log files.

How do I go about importing them into the 5 .edb files so I can get email back online and working?
0
 
LVL 5

Accepted Solution

by:
adaroc earned 250 total points
Comment Utility

1) Copy all the original database and log files to somewhere safe.   Then also copy them into a working directory.  Eseutil will modify the  files in situ so if it goes wrong you don't want your original files  modified.
You need to have a copy of the database files (*.edb and  *.stm) plus the transaction logs (Exx*.log where xx is a number  relating to the information store).  The location of the files is  available from exchange system manager, but you really should know where  they all are anyway.
I'm going to assume the temp directory for  the database files is e:\temp\data and they're called exchdb.edb,  exchdb.stm. If they reside in the 1st storage group, the transaction  logs will be called E00.log (this is the most recent base file) and  E00xxxx.log etc (these are the old logs).  Lets assume these are copied  to e:\temp\logs.  You need to replace these with your own  paths/filenames of course.
2) Check the database state and expected log files with
eseutil.exe /mh e:\temp\data\exchdb.edb
The  output will show a line State: which will be either clean or dirty  shutdown.  If it's clean, then you don't need this article :)
It  will also show which logs are required e.g. which hadn't yet been played  into the database when the dirty shutdown occured.  If you have any  missing then you will have lost email.  This generally only occurs if  you lost a log drive and have replicated copies of the logs you can use.
3) "Recover" the database.  This replays missing transaction logs into the database file - run:
eseutil.exe /r E00 /d"e:\temp\data\exchdb.edb"
You might receive an error that there is an outstanding database attachment.  In this case use the /i switch in the command
eseutil.exe /r E00 /d"e:\temp\data\exchdb.edb" /i
4) recheck the database state with the command in 2). If it still shows dirty shutdown you need to repair the database with:
eseutil /p e:\temp\data\exchdb.edb
5) Recheck the database once more and it should show clean shutdown.  At this point you should defrag the database
eseutil /d e:\temp\data\exchdb.edb
6)  The file is now in a clean state and is ready to be put back into  exchange so copy it back to the original location on your exchange  server but don't yet mount the file.  The last step before mounting the  file is to get rid of any remaining errors using isinteg.exe.   This tool requires the database to be in the original location on the  original exchange server.  It needs to be run several times until it no  longer reports any errors.
7) Once the database file has no more errors you can now remount it in exchange.

post back results
0
 
LVL 1

Author Comment

by:tlcsupport
Comment Utility
Ok, it looks like its after 5 log files, E021BDD0 to E021BDD4

BDD0,1,2,3 are in the log folder, but BDD4 is not. Ideas?
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 28

Expert Comment

by:sunnyc7
Comment Utility
You are in good hands @adaroc's last post. Its complete

I have a few things to add.
A) make sure you have 1.5x free space of your edb size.
If your edb is 10gb then you need 15gb free space
0
 
LVL 1

Author Comment

by:tlcsupport
Comment Utility
This is the outcome with the /i switch on:

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

Initiating RECOVERY mode...
    Logfile base name: E02
            Log files: <current directory>
         System files: <current directory>
   Database Directory: C:\logs\powa.edb

Performing soft recovery...



Operation terminated with error -528 (JET_errMissingLogFile, Current log file mi
ssing) after 1.16 seconds.
0
 
LVL 28

Assisted Solution

by:sunnyc7
sunnyc7 earned 250 total points
Comment Utility
I clicked post before I could finish...sorry.

a) Make sure you take a backup of EDB's and log files on a external HDD before you attempt the eseutil /p /d

b) You need to try the soft-recovery option first using adaroc's point # 3

3) "Recover" the database.  This replays missing transaction logs into the database file - run:
eseutil.exe /r E00 /d"e:\temp\data\exchdb.edb"
You might receive an error that there is an outstanding database attachment.  In this case use the /i switch in the command
eseutil.exe /r E00 /d"e:\temp\data\exchdb.edb" /i

Please post back the results.
0
 
LVL 28

Expert Comment

by:sunnyc7
Comment Utility
Can you try that

eseutil /r e00 /i /l"c:\ PATH TO LOG FILEs..." /d"g:\...PATH TO DATABASE"
0
 
LVL 5

Expert Comment

by:adaroc
Comment Utility
hi

whats the state of play pls ?
0
 
LVL 1

Author Comment

by:tlcsupport
Comment Utility
In the end we got hold of Microsoft and had to do a restore of the exchange backup as the database was "corrupt beyond repair"
0

Featured Post

Are your corporate email signatures appalling?

Is it scary how unprofessional your email signatures look? Do users create their own terrible designs and give themselves stupid job titles? You can make this a lot easier for yourself by choosing an email signature management solution from Exclaimer today.

Join & Write a Comment

Marketers need statistics and metrics like everybody else needs oxygen. In this article we explain how to enable marketing campaign statistics for Microsoft Exchange mail.
Restoring deleted objects in Active Directory has been a standard feature in Active Directory for many years, yet some admins may not know what is available.
In this video we show how to create a User Mailbox in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >> Mailb…
In this video we show how to create an Address List in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Organization >> Ad…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now