Solved

Exchange 2007 corruption

Posted on 2010-11-08
3
820 Views
Last Modified: 2012-08-14
Earlier today my Exchange 2007 box hung unexpectedly and after a reboot, we are now unable to mount the database.  The Exchange admin utility indicates that the database is in a dirty shutdown state.  The event viewer shows the following messages.

Event ID 4001
A transient failure has occurred. The problem may resolve itself in awhile. The service will retry in 56 seconds. Diagnostic information:

Cannot open mailbox /o=UC San Diego/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=DRAKE/cn=Microsoft System Attendant.
Microsoft.Exchange.Data.Storage.ConnectionFailedTransientException: Cannot open mailbox /o=UC San Diego/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=DRAKE/cn=Microsoft System Attendant. ---> Microsoft.Mapi.MapiExceptionNetworkError: MapiExceptionNetworkError: Unable to make connection to the server. (hr=0x80040115, ec=-2147221227)
Diagnostic context:
    ......
    Lid: 12696   dwParam: 0x6D9      Msg: EEInfo: Generation Time: 2010-11-08 23:54:12:152
    Lid: 10648   dwParam: 0x6D9      Msg: EEInfo: Generating component: 2
    Lid: 14744   dwParam: 0x6D9      Msg: EEInfo: Status: 1753
    Lid: 9624    dwParam: 0x6D9      Msg: EEInfo: Detection location: 501
    Lid: 13720   dwParam: 0x6D9      Msg: EEInfo: Flags: 0
    Lid: 11672   dwParam: 0x6D9      Msg: EEInfo: NumberOfParameters: 4
    Lid: 8856    dwParam: 0x6D9      Msg: EEInfo: prm[0]: Unicode string: ncacn_ip_tcp
    Lid: 8856    dwParam: 0x6D9      Msg: EEInfo: prm[1]: Unicode string: drake.AD.UCSD.EDU
    Lid: 12952   dwParam: 0x6D9      Msg: EEInfo: prm[2]: Long val: -1527653632
    Lid: 12952   dwParam: 0x6D9      Msg: EEInfo: prm[3]: Long val: 382312662
    Lid: 19778  
    Lid: 27970   StoreEc: 0x80040115
    Lid: 17730  
    Lid: 25922   StoreEc: 0x80040115
   at Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32 hresult, Int32 ec, DiagnosticContext diagCtx)
   at Microsoft.Mapi.ExRpcConnection.Create(ConnectionCache connectionCache, ExRpcConnectionCreateFlag createFlags, ConnectFlag connectFlags, String serverDn, String userDn, String user, String domain, String password, String httpProxyServerName, Int32 ulConMod, Int32 lcidString, Int32 lcidSort, Int32 cpid, Int32 cReconnectIntervalInMins, Int32 cbRpcBufferSize, Int32 cbAuxBufferSize)
   at Microsoft.Mapi.ConnectionCache.OpenMapiStore(String mailboxDn, Guid mailboxGuid, Guid mdbGuid, ClientIdentityInfo clientIdentity, String userDnAs, OpenStoreFlag openStoreFlags, CultureInfo cultureInfo, String applicationId)
   at Microsoft.Mapi.ConnectionCache.OpenMailbox(String mailboxDn, Guid mailboxGuid, Guid mdbGuid, WindowsIdentity windowsIdentityAs, String userDnAs, OpenStoreFlag openStoreFlags, CultureInfo cultureInfo, String applicationId)
   at Microsoft.Exchange.Data.Storage.ConnectionCachePool.OpenMailbox(String serverDn, String userDn, String mailboxDn, Guid mailboxGuid, Guid mdbGuid, Object identity, ConnectFlag connectFlag, OpenStoreFlag openStoreFlag, CultureInfo cultureInfo, String clientInfoString, Boolean secondTry)
   --- End of inner exception stack trace ---
   at Microsoft.Exchange.Data.Storage.ConnectionCachePool.OpenMailbox(String serverDn, String userDn, String mailboxDn, Guid mailboxGuid, Guid mdbGuid, Object identity, ConnectFlag connectFlag, OpenStoreFlag openStoreFlag, CultureInfo cultureInfo, String clientInfoString, Boolean secondTry)
   at Microsoft.Exchange.Data.Storage.ConnectionCachePool.OpenMailbox(String serverDn, String userDn, String mailboxDn, Guid mailboxGuid, Guid mdbGuid, Object identity, ConnectFlag connectFlag, OpenStoreFlag openStoreFlag, CultureInfo cultureInfo, String clientInfoString, Boolean secondTry)
   at Microsoft.Exchange.Data.Storage.ConnectionCachePool.OpenMailbox(String serverDn, String userDn, String mailboxDn, Guid mailboxGuid, Guid mdbGuid, Object identity, ConnectFlag connectFlag, OpenStoreFlag openStoreFlag, CultureInfo cultureInfo, String clientInfoString)
   at Microsoft.Exchange.Data.Storage.MailboxSession.Initialize(LogonType logonType, ExchangePrincipal owner, DelegateLogonUser delegateUser, Object identity, OpenMailboxSessionFlags flags)
   at Microsoft.Exchange.Data.Storage.MailboxSession.CreateMailboxSession(LogonType logonType, ExchangePrincipal owner, DelegateLogonUser delegateUser, Object identity, OpenMailboxSessionFlags flags, CultureInfo cultureInfo, String clientInfoString)
   at Microsoft.Exchange.Data.Storage.MailboxSession.OpenAsAdmin(ExchangePrincipal mailboxOwner, CultureInfo cultureInfo, String clientInfoString, Boolean useLocalRpc, Boolean ignoreHomeMdb)
   at Microsoft.Exchange.Data.Storage.MailboxSession.OpenAsAdmin(ExchangePrincipal mailboxOwner, CultureInfo cultureInfo, String clientInfoString)
   at Microsoft.Exchange.Servicelets.SystemAttendantMailbox.Servicelet.Work()

as well as Event 9518

Error Log file is corrupt starting Storage Group /DC=EDU/DC=UCSD/DC=AD/CN=Configuration/CN=Services/CN=Microsoft Exchange/CN=UC San Diego/CN=Administrative Groups/CN=Exchange Administrative Group (FYDIBOHF23SPDLT)/CN=Servers/CN=DRAKE/CN=InformationStore/CN=First Storage Group on the Microsoft Exchange Information Store.
Storage Group - Initialization of Jet failed.

The database would not mount so I tried to manually recover using the in-place "soft" recovery using "eseutil /r E00 /Lf:\logs" and got the following error message.

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

At the moment i'm making a copy of the transaction logs and .edb file before I attempt to recover from my latest DPM 2007 backups from earlier today.  Any other suggestions or tips?  

I also read the following...

Assuming you have only one database in the storage group, if the
"eseutil /mh" shows the dtabase to be in a consistent state you can
move (don't copy) all the log files and the chk file to another
directory and remount the database. That will start a new log file
generation. Make a backup of the storage group as soon as you can.

Wont this result in the loss of all messages in those transaction logs prior to the last backup?

0
Comment
Question by:tferro999
  • 2
3 Comments
 
LVL 32

Accepted Solution

by:
endital1097 earned 500 total points
ID: 34098469
your database is in a dirty shutdown state
the best option is to restore from backup to recover from this issue

if there is a corrupt log file, you need to determine which log it is and move it all all log files following it out of the directory and the checkpoint file
you can then rename the last log file e0x.log and attempt the soft recovery again

yes, you will lose some data, but with the corrupt log file you are most likely going to suffer some data loss
0
 

Author Comment

by:tferro999
ID: 34098673
eseutil /mh showed me the corrupted log, but the soft recovery still would not make the database mountable.  Ended up restoring from backups to a RSG and then merging into the database.  For some reason the merge only worked for about 30% of the mailboxes so I ended up moving out all the logs and .edb and mounting the database to create a fresh one and them merged the data from the rsg.  Took about 21 hours, not fun.
0
 

Author Closing Comment

by:tferro999
ID: 34098678
a little too late to help me last night but still correct
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Resolve Outlook connectivity issues after moving mailbox to new Exchange 2016 server
Disabling the Directory Sync Service Account in Office 365 will stop directory synchronization from working.
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…
The basic steps you have just learned will be implemented in this video. The basic steps are shown to configure an Exchange DAG in a live working Exchange Server Environment and manage the same (Exchange Server 2010 Software is used in a Windows Ser…

757 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

24 Experts available now in Live!

Get 1:1 Help Now