none
Database dismounted after the following events 1002, 1013, 225, 4999 RRS feed

  • Question

  • We get the following events in the eventviewer. The database is dismounted and after a few seconds the database will mounted and dismounted. We use Exchange server 2016 with CU12. When we check the database with eseutil, the database is in a dirty state. We fix the status to clean shutdown and mount the database, the database will dismount and is in a dirty state.

    Event 1: 1002
    Unhandled exception (System.InvalidOperationException: Invalid table operation. operationType = Delete, table = PseudoIndexControl, partitionValues = null
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.Context.OnBeforeTableAccess(OperationType operationType, Table table, IList`1 partitionValues)
       at Microsoft.Exchange.Server.Storage.LogicalDataModel.LogicalContext.OnBeforeTableAccess(OperationType operationType, Table table, IList`1 partitionValues)
       at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetConnection.GetOpenTable(JET_DBID jetDatabase, Table table, String tableName, IList`1 partitionValues, OperationType operationType, Boolean allowDDL)
       at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.TryOpenJetCursorIfNecessary(OperationType operationType, Boolean checkForCorruptedPrimaryIndex, Boolean& primaryIndexCorrupted)
       at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.MoveFirst(Boolean positionForUpdate, OperationType operationType, Int32& rowsSkipped)
       at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetDeleteOperator.ExecuteScalar()
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.LogicalIndexInfo.DeleteIndexDefinition(Context context, MailboxState mailboxState)
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.FolderIndexCache.LoadFolderCache(Context context, MailboxState mailboxState)
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.FolderIndexCache..ctor(Context context, LogicalIndexCache logicalIndexCache, MailboxState mailboxState, ExchangeId folderId)
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.GetCacheForFolder(Context context, MailboxState mailboxState, ExchangeId folderId)
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.GetIndexesInScope(Context context, MailboxState mailboxState, ExchangeId folderId, LogicalIndexType indexType, Column conditionalIndexColumn, Boolean conditionalIndexValue, SearchCriteria restrictCriteria, SortOrder sortOrder, IList`1 nonKeyColumns, CategorizationInfo categorizationInfo, Table table, Boolean matchingOnly, Boolean existingOnly)
       at Microsoft.Exchange.Server.Storage.LogicalDataModel.MessageViewTable.GetViewIndexes(Context context, SearchCriteria findRowCriteria, Boolean matchingOnly)
       at Microsoft.Exchange.Server.Storage.LogicalDataModel.MessageViewTable.GetInScopePseudoIndexes(Context context, SearchCriteria findRowCriteria, IList`1& masterIndexes)
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.ViewTable.GetFindRowOperator(Context context, Bookmark startBookmark, SearchCriteria findRowCriteria, Boolean backwards, Int32& planCost, Int32& planCardinality)
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.ViewTable.FindRow(Context context, SearchCriteria findRowCriteria, Bookmark startBookmark, Boolean backwards)
       at Microsoft.Exchange.Server.Storage.LogicalDataModel.MessageViewTable.FindRow(Context context, SearchCriteria findRowCriteria, Bookmark startBookmark, Boolean backwards)
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.ViewTable.FindRow(Context context, SearchCriteria criteria, ViewSeekOrigin origin, Byte[] bookmark, Boolean backwards, Boolean& bookmarkPositionChanged)
       at Microsoft.Exchange.Protocols.MAPI.MapiViewTableBase.FindRow(MapiContext context, ViewSeekOrigin origin, Byte[] bookmark, Boolean backwards, Restriction restriction, Boolean& bookmarkPositionChanged, Properties& row)
       at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.FindRow(MapiContext context, MapiViewTableBase view, FindRowFlags flags, Restriction restriction, BookmarkOrigin bookmarkOrigin, Byte[] bookmark, FindRowResultFactory resultFactory)
       at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.FindRow(IServerObject serverObject, FindRowFlags flags, Restriction restriction, BookmarkOrigin bookmarkOrigin, Byte[] bookmark, FindRowResultFactory resultFactory)
       at Microsoft.Exchange.RpcClientAccess.Parser.RopFindRow.InternalExecute(IServerObject serverObject, IRopHandler ropHandler, ArraySegment`1 outputBuffer)
       at Microsoft.Exchange.RpcClientAccess.Parser.InputRop.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment`1 outputBuffer)
       at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops(List`1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment`1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)
       at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteOrBackoff(IList`1 inputBufferArray, ArraySegment`1 outputBuffer, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)
       at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.<>c__DisplayClass29_1.<DoRpc>b__0(MapiContext operationContext, MapiSession& session, Boolean& deregisterSession, AuxiliaryData auxiliaryData)  at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute(IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr& contextHandle, Boolean tryLockSession, String userDn, IList`1 dataIn, Int32 sizeInMegabytes, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, ExecuteDelegate executeDelegate)
       at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr& contextHandle, IList`1 ropInArraySegments, ArraySegment`1 ropOut, Int32& sizeRopOut, Boolean internalAccessPrivileges, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, Boolean fakeRequest, Byte[]& fakeOut)
       at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr& sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
       at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
       at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.<>c__DisplayClass48_0.<EcPoolSessionDoRpc>b__0()
       at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch[T](Action tryDelegate, GenericFilterDelegate filterDelegate, GenericCatchDelegate catchDelegate, T state)).

    Event 2: 1013
    The mailbox with mailbox guid dc3ce021-64fb-45f0-a99d-3bbd81fcd7e8 caused a crash or resource outage on database "DB" (e56f5767-199c-40e9-a2f2-98486533f303).      
    Version: 15.01.1713.001      
    Description: InvalidOperationException: MESSSCS.Context.OnBeforeTableAccess,MESSLDM.LogicalContext.OnBeforeTableAccess,MESSPAJ.JetConnection.GetOpenTable,MESSPAJ.JetTableOperator.TryOpenJetCursorIfNecessary,MESSPAJ.JetTableOperator.MoveFirst,MESSPAJ.JetDeleteOperator.ExecuteScalar,MESSLILIC.Logi    

    Event 3: 225

    At '6/5/2019 2:49:42 PM' the copy of database 'DB' on this server was unexpectedly dismounted. The error returned by failover was "There is only one copy of this mailbox database (DB). Automatic recovery is not available.".  For more specific information about the failures, consult the event log on the server for other "ExchangeStoreDb" events.


    We have also this errors on a DAG!

    Event 4: 4999
    Watson report about to be sent for process id: 50508, with parameters: E12, c-RTL-AMD64, 15.01.1713.005, M.E.Store.Worker, M.E.S.Storage.StoreCommonServices, M.E.S.S.S.Context.OnBeforeTableAccess, System.InvalidOperationException, 5bd9-dumptidset, 15.01.1713.004. ErrorReportingEnabled: True


    Is there someone with a solution here? We are in 3 weeks in contact with Microsoft but do not yet have a solution. We already have more than 18 databases down. For now we have a workaround, moving mailboxes to new databases, but who says this is the right solution. Problem can arise again, seems to be an Exchange bug.


    Wednesday, June 5, 2019 2:15 PM

Answers

  • We have gone through the steps below to solve the problem. We did find that when we moved archive mailboxes to a newly created test Database the dismounting issue no longer occurred. I provided the below command to to disable the quarantine on all the databases for a particular server. 

    Disable-MailboxQuarantine -Server <Serverr> -IncludeAllDatabases

    1. Create New Drive 
    2. Create 2 New Archive Database
    3. Migrate users from 1 affected Database into the 2 new Archive Databases
    4. Delete the Affected Archive Database. 
    5. Continue steps one through 3 until the drive is empty 
    6. Continue all steps until all Archive Databases have been moved to new databases. 


      
    Wednesday, June 12, 2019 7:39 AM

All replies

  • We get the following events in the eventviewer. The database is dismounted and after a few seconds the database will mounted and dismounted. We use Exchange server 2016 with CU12. When we check the database with eseutil, the database is in a dirty state. We fix the status to clean shutdown and mount the database, the database will dismount and is in a dirty state. 

    Event 1: 1002

    Unhandled exception (System.InvalidOperationException: Invalid table operation. operationType = Delete, table = PseudoIndexControl, partitionValues = null

       at Microsoft.Exchange.Server.Storage.StoreCommonServices.Context.OnBeforeTableAccess(OperationType operationType, Table table, IList`1 partitionValues)
       at Microsoft.Exchange.Server.Storage.LogicalDataModel.LogicalContext.OnBeforeTableAccess(OperationType operationType, Table table, IList`1 partitionValues)
       at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetConnection.GetOpenTable(JET_DBID jetDatabase, Table table, String tableName, IList`1 partitionValues, OperationType operationType, Boolean allowDDL)
       at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.TryOpenJetCursorIfNecessary(OperationType operationType, Boolean checkForCorruptedPrimaryIndex, Boolean& primaryIndexCorrupted)
       at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.MoveFirst(Boolean positionForUpdate, OperationType operationType, Int32& rowsSkipped)
       at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetDeleteOperator.ExecuteScalar()
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.LogicalIndexInfo.DeleteIndexDefinition(Context context, MailboxState mailboxState)
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.FolderIndexCache.LoadFolderCache(Context context, MailboxState mailboxState)
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.FolderIndexCache..ctor(Context context, LogicalIndexCache logicalIndexCache, MailboxState mailboxState, ExchangeId folderId)
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.GetCacheForFolder(Context context, MailboxState mailboxState, ExchangeId folderId)
       at Microsoft.Exchange.Server.Storage.LazyIndexing.LogicalIndexCache.GetIndexesInScope(Context context, MailboxState mailboxState, ExchangeId folderId, LogicalIndexType indexType, Column conditionalIndexColumn, Boolean conditionalIndexValue, SearchCriteria restrictCriteria, SortOrder sortOrder, IList`1 nonKeyColumns, CategorizationInfo categorizationInfo, Table table, Boolean matchingOnly, Boolean existingOnly)
       at Microsoft.Exchange.Server.Storage.LogicalDataModel.MessageViewTable.GetViewIndexes(Context context, SearchCriteria findRowCriteria, Boolean matchingOnly)
       at Microsoft.Exchange.Server.Storage.LogicalDataModel.MessageViewTable.GetInScopePseudoIndexes(Context context, SearchCriteria findRowCriteria, IList`1& masterIndexes)
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.ViewTable.GetFindRowOperator(Context context, Bookmark startBookmark, SearchCriteria findRowCriteria, Boolean backwards, Int32& planCost, Int32& planCardinality)
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.ViewTable.FindRow(Context context, SearchCriteria findRowCriteria, Bookmark startBookmark, Boolean backwards)
       at Microsoft.Exchange.Server.Storage.LogicalDataModel.MessageViewTable.FindRow(Context context, SearchCriteria findRowCriteria, Bookmark startBookmark, Boolean backwards)
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.ViewTable.FindRow(Context context, SearchCriteria criteria, ViewSeekOrigin origin, Byte[] bookmark, Boolean backwards, Boolean& bookmarkPositionChanged)
       at Microsoft.Exchange.Protocols.MAPI.MapiViewTableBase.FindRow(MapiContext context, ViewSeekOrigin origin, Byte[] bookmark, Boolean backwards, Restriction restriction, Boolean& bookmarkPositionChanged, Properties& row)
       at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.FindRow(MapiContext context, MapiViewTableBase view, FindRowFlags flags, Restriction restriction, BookmarkOrigin bookmarkOrigin, Byte[] bookmark, FindRowResultFactory resultFactory)
       at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.FindRow(IServerObject serverObject, FindRowFlags flags, Restriction restriction, BookmarkOrigin bookmarkOrigin, Byte[] bookmark, FindRowResultFactory resultFactory)
       at Microsoft.Exchange.RpcClientAccess.Parser.RopFindRow.InternalExecute(IServerObject serverObject, IRopHandler ropHandler, ArraySegment`1 outputBuffer)
       at Microsoft.Exchange.RpcClientAccess.Parser.InputRop.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment`1 outputBuffer)
       at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops(List`1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment`1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)
       at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteOrBackoff(IList`1 inputBufferArray, ArraySegment`1 outputBuffer, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)
       at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.<>c__DisplayClass29_1.<DoRpc>b__0(MapiContext operationContext, MapiSession& session, Boolean& deregisterSession, AuxiliaryData auxiliaryData)  at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute(IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr& contextHandle, Boolean tryLockSession, String userDn, IList`1 dataIn, Int32 sizeInMegabytes, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, ExecuteDelegate executeDelegate)

       at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr& contextHandle, IList`1 ropInArraySegments, ArraySegment`1 ropOut, Int32& sizeRopOut, Boolean internalAccessPrivileges, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, Boolean fakeRequest, Byte[]& fakeOut)
       at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr& sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
       at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
       at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.<>c__DisplayClass48_0.<EcPoolSessionDoRpc>b__0()
       at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch[T](Action tryDelegate, GenericFilterDelegate filterDelegate, GenericCatchDelegate catchDelegate, T state)).

    Event 2: 1013

    The mailbox with mailbox guid dc3ce021-64fb-45f0-a99d-3bbd81fcd7e8 caused a crash or resource outage on database "DB" (e56f5767-199c-40e9-a2f2-98486533f303).      
    Version: 15.01.1713.001      
    Description: InvalidOperationException: MESSSCS.Context.OnBeforeTableAccess,MESSLDM.LogicalContext.OnBeforeTableAccess,MESSPAJ.JetConnection.GetOpenTable,MESSPAJ.JetTableOperator.TryOpenJetCursorIfNecessary,MESSPAJ.JetTableOperator.MoveFirst,MESSPAJ.JetDeleteOperator.ExecuteScalar,MESSLILIC.Logi    

    Event 3: 225

    At '6/5/2019 2:49:42 PM' the copy of database 'DB' on this server was unexpectedly dismounted. The error returned by failover was "There is only one copy of this mailbox database (DB). Automatic recovery is not available.".  For more specific information about the failures, consult the event log on the server for other "ExchangeStoreDb" events.

    We have also this errors on a DAG!

    Event 4: 4999
    Watson report about to be sent for process id: 50508, with parameters: E12, c-RTL-AMD64, 15.01.1713.005, M.E.Store.Worker, M.E.S.Storage.StoreCommonServices, M.E.S.S.S.Context.OnBeforeTableAccess, System.InvalidOperationException, 5bd9-dumptidset, 15.01.1713.004.

    ErrorReportingEnabled: True

    Is there someone with a solution here? We are in contact with Microsoft but do not yet have a solution. We already have more than 18 databases down.

    For now we have a workaround, moving mailboxes to new databases, but who says this is the right solution. Problem can arise again, seems to be an Exchange bug




    Wednesday, June 5, 2019 1:06 PM
  • Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.

    Move to a new database in a New Disk. Looks more like a logical corruption

    -- 

    Run eseutil p on the problematic database and merge back.

    http://www.azure365pro.com/how-to-restore-exchange-databases-from-a-storage-failure-exchange-200720102013/


    Satheshwaran Manoharan | Exchange 2003/2007/2010/2013 | Blog:http://www.azure365pro.com | Please mark it as an answer if it really helps you ------------- I do not represent the organisation I work for, all the opinions expressed here are my own. This posting is provided "AS IS" with no warranties or guarantees and confers no rights.


    Wednesday, June 5, 2019 2:20 PM
  • Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.

    Move to a new database in a New Disk. Looks more like a logical corruption

    -- 

    Run eseutil p on the problematic database and merge back.

    http://www.azure365pro.com/how-to-restore-exchange-databases-from-a-storage-failure-exchange-200720102013/


    Satheshwaran Manoharan | Exchange 2003-2019 | Blog: http://www.azure365pro.com | Please mark it as an answer if it really helps you ------------- I do not represent the organisation I work for, all the opinions expressed here are my own. This posting is provided "AS IS" with no warranties or guarantees and confers no rights.

    Wednesday, June 5, 2019 2:32 PM
    • What action are you taking to put the DB into a clean/consistent state?
    • Filter your APPLICATION and SYSTEM event logs for CRITICAL & ERROR events only and then look for anything referencing the Exchange DB or the Disk its on
    • What type of storage are you using for the EDB's?
    • Physical or Virtual machine?

    Search, Recover, Export Mailboxes, Contacts, Calendars, Tasks from ALL versions of Exchange Offline EDB's, On-Premises Exchange Databases & Office 365. Export, Migrate/Recover into On-Premises Exchange Server, Office 365 with Lucid8's DigiScope

    Wednesday, June 5, 2019 7:02 PM
  • For now we are indeed creating a new database on a new disk, after which we try to move the mailboxes via new-moverequest.

    ESEUTIL /P did not work, ESEUTIL crashed.

    Thursday, June 6, 2019 6:24 AM
  • - What action are you taking to put the DB into a clean/consistent state?

    1. eseutil softrepair
    2. eseutil check

    State: Dirty Shutdown

    3. eseutil hardrepair
    4. esutil crash

    - Filter your APPLICATION and SYSTEM event logs for CRITICAL & ERROR events only and then look for anything referencing the Exchange DB or the Disk its on.

    We find no error related to the DISK, only 1002, 1013, 225, 4999 errors.

    - What type of storage are you using for the EDB's?
    Shared storage HP 3PAR

    - Physical or Virtual machine?
    We run Exchange on VMWare, HP hardware



    Thursday, June 6, 2019 6:31 AM
  • Hi,

    Since you have asked the same question in the forum, we help you merge the thread.

    Does this Exchange 2016 is a DAG member as well? When does this issue occur, did the database work well before?

    Do other databases on the server have the same issue?

    Since you are using Exchange 2016 CU12, it requires Microsoft .NET Framework 4.7.1 or later versions. Please check .NET Framework version of you Exchange server.

    1.  Use Run, enter regedit, and then select OK.

    2.  In the Registry Editor, locate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full.

    3.  Check for a DWORD entry named Release. Contrast it with the table that lists the keys of released versions of the .NET Framework.

    For reference: Find newer .NET Framework versions (4.5 and later)

    Regards,

    Lydia Zhou


    Please remember to mark the replies as answers if they helped. If you have feedback for TechNet Subscriber Support, contact tnsf@microsoft.com.

    Click here to learn more. Visit the dedicated forum to share, explore and talk to experts about Microsoft Teams.

    Thursday, June 6, 2019 7:12 AM
    Moderator
  • Hi Lydia,

    The servers are members of a DAG. All the 4 databases included the copies are corrupted in the DAG after a switch over from the databases. The other server is a standalone server for the archive mailboxen. On this server is also the same database problems. But this server was not restarted, the problem suddenly appeared.

    We have .NET Framework 4.7.2 installed.

    Thursday, June 6, 2019 7:22 AM
  • Hi,

    From the event log information you provided, "The mailbox with mailbox guid dc3ce021-64fb-45f0-a99d-3bbd81fcd7e8 caused a crash or resource outage on database 'DB' (e56f5767-199c-40e9-a2f2-98486533f303)." indicates the database issue may be related to the mailbox with mailbox guid dc3ce021-64fb-45f0-a99d-3bbd81fcd7e8.

    You can use the following command to find out the mailbox:

    Get-Mailbox -Identity "<Mailbox GUID>"|fl displayname,emailaddresses

    Move the mailbox to other database, and mount the problematic database. Check if the problematic database will dismount again.

    Regards,

    Lydia Zhou


    Please remember to mark the replies as answers if they helped. If you have feedback for TechNet Subscriber Support, contact tnsf@microsoft.com.

    Click here to learn more. Visit the dedicated forum to share, explore and talk to experts about Microsoft Teams.

    Friday, June 7, 2019 9:18 AM
    Moderator
  • Thanks for the tip. Last weeks we have use this workaround, moving the quarantined mailboxes to new databases. But who says this is the right solution. It’s really strange that more than 18 databases are corrupted. We thinking the problem can arise again, seems to be an Exchange bug.
    Friday, June 7, 2019 9:46 AM
  • Hi,

    Are other databases in a DAG also corrupted due to problematic mailboxes?

    If it's a quarantined mailbox cause a crash on db, we have to find out what causes the mailbox issue. If a database is corrupted in a DAG, the system will activate a passive mailbox database copy. Since the problematic mailbox is still on the database, the db copy will be corrupted as well.

    You can monitor this case, and wait to see if the db problem is arose with the same cause (mailbox issue).

    Regards,

    Lydia Zhou


    Please remember to mark the replies as answers if they helped. If you have feedback for TechNet Subscriber Support, contact tnsf@microsoft.com.

    Click here to learn more. Visit the dedicated forum to share, explore and talk to experts about Microsoft Teams.

    Monday, June 10, 2019 10:13 AM
    Moderator
  • We have gone through the steps below to solve the problem. We did find that when we moved archive mailboxes to a newly created test Database the dismounting issue no longer occurred. I provided the below command to to disable the quarantine on all the databases for a particular server. 

    Disable-MailboxQuarantine -Server <Serverr> -IncludeAllDatabases

    1. Create New Drive 
    2. Create 2 New Archive Database
    3. Migrate users from 1 affected Database into the 2 new Archive Databases
    4. Delete the Affected Archive Database. 
    5. Continue steps one through 3 until the drive is empty 
    6. Continue all steps until all Archive Databases have been moved to new databases. 


      
    Wednesday, June 12, 2019 7:39 AM
  • Thanks for sharing the complete solution.
    Tuesday, June 18, 2019 10:09 AM