• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2432
  • Last Modified:

Exchange DAG environment - fails to mount passive copy

Hi

Running in test environment with a DAG group consisting of two DAG members.

Replication of the database works fine but is having issues when simulating failure. I have disconnected the server with the active copy of the database but the redundant server fails to mount the passive copy.

Here's the error message I get in event viewer:

PID 3920, Thread 15) Task Mount-Database writing error when processing record of index 0. Error: System.InvalidOperationException: Couldn't mount the database that you specified. Specified database: Mailbox Database 2143096883; Error code: An Active Manager operation failed. Error: The database action failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=1105)
 [Database: Mailbox Database 2143096883, Server: MAILSTORE-A.example.info]. ---> Microsoft.Exchange.Cluster.Replay.AmDbActionWrapperException: An Active Manager operation failed. Error: The database action failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=1105)
 ---> Microsoft.Exchange.Data.Storage.AmOperationFailedException: An Active Manager operation failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=1105)
 ---> Microsoft.Mapi.MapiExceptionCallFailed: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=1105)

   at Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32 hresult, SafeExInterfaceHandle iUnknown)
   at Microsoft.Mapi.ExRpcAdmin.MountDatabase(Guid guidStorageGroup, Guid guidMdb, Int32 ulFlags)
   at Microsoft.Exchange.Cluster.ActiveManagerServer.AmStoreHelper.Mount(Guid mdbGuid, MountFlags flags)
   at Microsoft.Exchange.Cluster.ActiveManagerServer.ActiveManagerCore.MountDatabaseDirect(Guid mdbGuid, MountFlags flags, AmDbActionCode actionCode)
   at Microsoft.Exchange.Cluster.ActiveManagerServer.AmRpcServer.<>c__DisplayClass19.<MountDatabaseDirect>b__18()
   at Microsoft.Exchange.Data.Storage.Cluster.HaRpcExceptionWrapperBase`2.RunRpcServerOperation(String databaseName, RpcServerOperation rpcOperation)
   --- End of inner exception stack trace (Microsoft.Mapi.MapiExceptionCallFailed) ---
   --- End of stack trace on server (MAILSTORE-A.example.info) ---
   at Microsoft.Exchange.Data.Storage.Cluster.HaRpcExceptionWrapperBase`2.ClientRethrowIfFailed(String databaseName, String serverName, RpcErrorExceptionInfo errorInfo)
   at Microsoft.Exchange.Data.Storage.ActiveManager.AmRpcClientHelper.RunRpcOperationWithAuth(AmRpcOperationHint rpcOperationHint, String serverName, String databaseName, NetworkCredential networkCredential, Nullable`1 timeoutMs, AmRpcClient& rpcClient, InternalRpcOperation rpcOperation)
   at Microsoft.Exchange.Data.Storage.ActiveManager.AmRpcClientHelper.MountDatabaseDirectEx(String serverToRpc, Guid dbGuid, AmMountArg mountArg)
   at Microsoft.Exchange.Cluster.ActiveManagerServer.AmDbAction.MountDatabaseDirect(AmServerName serverName, AmServerName lastMountedServerName, Guid dbGuid, MountFlags flags, AmDbActionCode actionCode)
   at Microsoft.Exchange.Cluster.ActiveManagerServer.AmDbPamAction.RunMountDatabaseDirect(AmServerName serverToMount, MountFlags mountFlags, Boolean fLossyMountEnabled)
   at Microsoft.Exchange.Cluster.ActiveManagerServer.AmDbPamAction.<>c__DisplayClass3.<AttemptMountOnServer>b__1(Object , EventArgs )
   at Microsoft.Exchange.Cluster.ActiveManagerServer.AmHelper.HandleKnownExceptions(EventHandler ev)
   --- End of inner exception stack trace (Microsoft.Exchange.Data.Storage.AmOperationFailedException) ---
   at Microsoft.Exchange.Cluster.ActiveManagerServer.AmDbOperation.Wait(TimeSpan timeout)
   at Microsoft.Exchange.Cluster.ActiveManagerServer.ActiveManagerCore.MountDatabase(Guid mdbGuid, MountFlags flags, DatabaseMountDialOverride mountDialOverride, AmDbActionCode actionCode)
   at Microsoft.Exchange.Cluster.ActiveManagerServer.AmRpcServer.<>c__DisplayClass4.<MountDatabase>b__3()
   at Microsoft.Exchange.Data.Storage.Cluster.HaRpcExceptionWrapperBase`2.RunRpcServerOperation(String databaseName, RpcServerOperation rpcOperation)
   --- End of stack trace on server (MAILSTORE-A.example.info) ---
   at Microsoft.Exchange.Data.Storage.Cluster.HaRpcExceptionWrapperBase`2.ClientRethrowIfFailed(String databaseName, String serverName, RpcErrorExceptionInfo errorInfo)
   at Microsoft.Exchange.Data.Storage.ActiveManager.AmRpcClientHelper.RunDatabaseRpcWithReferral(AmRpcOperationHint rpcOperationHint, Database database, String targetServer, AmRpcClient& rpcClient, InternalRpcOperation rpcOperation)
   at Microsoft.Exchange.Data.Storage.ActiveManager.AmRpcClientHelper.MountDatabase(Database database, Int32 flags, Int32 mountDialOverride)
   at Microsoft.Exchange.Management.SystemConfigurationTasks.MountDatabase.InternalProcessRecord()
   --- End of inner exception stack trace ---
0
dave558
Asked:
dave558
  • 8
  • 3
  • 2
  • +1
1 Solution
 
R--RCommented:
Check the event viewer and find the error events related to Exchange
0
 
MASTechnical Department HeadCommented:
what was the details of the passive copy.
i.e. 1.status of the content index state
      2.status of the database copy
   
If the content index state and status of the database copy is healthy it should mount automatically
0
 
dave558Author Commented:
Status of the database copy is healthy.

How do I find out the content index state? Thanks.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
dave558Author Commented:
I've ran the following command "Get-MailboxDatabaseCopyStatus –Server EX2 | fl Name,*Index*" and I get the content index state as failed.

Here's the details of what's happened:
SERVER-A - Passive copy (healthy), content index state (healthy)
SERVER-B - Active copy (mounted), content index state (healthy)

After disconnect SERVER-B, server goes in to the follow state:
SERVER-A - Dismounted (should now be active), content index state (failed)
SERVER-B - Server down

It doesn't show an error messages about the reason why failed content index state failed. Since content indexing should only occur when a database is mount, I'm thinking this failure message is as a result of the dismounted database.

Is this correct? Thanks.
0
 
dave558Author Commented:
Here's a few other messages I get when attempting to mount the DB:

Event 9519
While starting database Mailbox Database 2143096883, the following error occurred: 0x451.  
Start DB failed..

Event 9519
While starting database Mailbox Database 2143096883, the following error occurred: 0x451.  
Failed to configure MDB.

Event 1197
Database "Mailbox Database 2143096883" is too new to be upgraded.
0
 
MASTechnical Department HeadCommented:
please use this command to make content index state healthy

Update-MailboxDatabaseCopy "databasename\servername" -CatalogOnly
0
 
Manpreet SIngh KhatraSolutions Architect, Project LeadCommented:
How Many NIC's do you have on both servers ?
Is the Catalog health before the Failure you do ?
What if you suspend the Catalog ? Is the search service and others running after the Failure exercise done ?

- Rancy
0
 
dave558Author Commented:
There are two NICs on each server but the Mailbox server are on Virtual Machines with only a single virtual NIC attached.

Prior to simulating the failure, the catalog is in a healthy for the passive server (SERVER-A). It's only after I've simulated the failure that the catalog goes in the "failed" state.

Also as the passive server has now become the active server, I am no longer able to suspend or update the Catalog feature. Seems like it flagged SERVER-A as the active copy even without be able to mount the DB.

The previous active server (SERVER-B) is now stuck on "Disconnected and Resynchronizing" and has an a Copy Queue length that appears to be invalid.

Seems like I'd need to get the current failed server (SERVER-A) active again before the SERVER-B can get resychronised.
0
 
Manpreet SIngh KhatraSolutions Architect, Project LeadCommented:
How many Databases do you have ?

- Rancy
0
 
dave558Author Commented:
Two databases
0
 
dave558Author Commented:
It seems that the Version and Build as I've installed them from two different Exchange DVD's.

SERVER-A : Version 14.0 (Build 639.21)
SERVER-B : Version 14.1 (Build 218.15)

Looks like the DVD I installed from was Exchange with no Service Pack and the second one was an Exchange image from a production system had SP1 installed.

Anyone know how to force SERVER-B to the active copy now? Moving the active copy function isn't allowed, keeps saying the queue is too long to be valid.

Otherwise I'm going having to redo everything
0
 
dave558Author Commented:
Okay. Forced the server to mount the previous database using the following cmdlet:
Move-ActiveMailboxDatabase <DB> -ActivateOnServer <MB> -MountDialOverride BestEffort -SkipLagChecks -SkipClientExperienceChecks

Good thing this is only on a test environment. Thank you all for your help.
0
 
Manpreet SIngh KhatraSolutions Architect, Project LeadCommented:
I would say get them both to possibly SP2 or SP3 .... I guess there are many emails stuck in the Queue .... HUB or Copy\Replay queue

- Rancy
0
 
dave558Author Commented:
SP1 mailboxes are incompatible with standard Exchange
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

  • 8
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now