Introduction
Dans un environnement Exchange 2010 vous avez pu constater un cas de figure ou votre Dag à trois nœuds par exemple ne basculait pas en cas de panne des deux autres. Ceci ce produit si le serveur Exchange qui reprend les bases de données ne possède pas la majorité au sein du cluster.
Dans notre cas, nous avons positionné un cluster à trois nœuds avec un File Share Witness. Dans le cas d’un arrêt des deux serveurs sur le site principal voici la situation que nous avons constatée.
Le troisième serveur Exchange trouve le FileShareWitness mais ne montera pas les bases de données. Le dag comprenant trois nœuds plus un FSW ; lorsque les deux nœuds MRSEXC01, et MRSEXC02 sont arrêtés le serveur MRSEXC03 et le FSW ne forme que 50% du cluster. La remontée des bases de données doit donc être manuelle.
Pour Information notre configuration ne prenait pas en compte l’activation du mode Dag. Pour connaitre si votre DAG utilise le Mode d’activation Datacenter utiliser la commande suivante :
Get-DatabaseAvailabilityGroup | fl
RunspaceId : 04cb9450-f690-4cb4-a2c6-19f55c2e51ca
Name : MRSDAG01
Servers : {MRSEXC03, MRSEXC02, MRSEXC01}
WitnessServer : mrsscom01.unifiedit.priv
WitnessDirectory : F:\FSW-EX2K10-MRSDAG01
AlternateWitnessServer :
AlternateWitnessDirectory :
NetworkCompression : InterSubnetOnly
NetworkEncryption : InterSubnetOnly
DatacenterActivationMode : Off
StoppedMailboxServers : {}
StartedMailboxServers : {}
DatabaseAvailabilityGroupIpv4Addresses : {172.16.18.20}
DatabaseAvailabilityGroupIpAddresses : {172.16.18.20}
AllowCrossSiteRpcClientAccess : False
OperationalServers :
PrimaryActiveManager :
ServersInMaintenance :
ThirdPartyReplication : Disabled
ReplicationPort : 0
NetworkNames : {}
WitnessShareInUse :
AdminDisplayName :
ExchangeVersion : 0.10 (14.0.100.0)
DistinguishedName : CN=MRSDAG01,CN=Database Availability Groups,CN=Exchange Administrative Group
Exchange,CN=Services,CN=Configuration,DC=unifiedit,DC=priv
Identity : MRSDAG01
Guid : f1d389be-c78a-4e2a-8b39-14f3d9c1724e
ObjectCategory : unifiedit.priv/Configuration/Schema/ms-Exch-MDB-Availability-Group
ObjectClass : {top, msExchMDBAvailabilityGroup}
WhenChanged : 9/21/2011 4:28:42 PM
WhenCreated : 9/21/2011 4:28:42 PM
WhenChangedUTC : 9/21/2011 2:28:42 PM
WhenCreatedUTC : 9/21/2011 2:28:42 PM
OrganizationId :
OriginatingServer : MRSINF2K01.unifiedit.priv
IsValid : True
Si vous tentez de monter une base de données vous allez rencontrer l’erreur suivante :
[PS] C:\Windows\system32>Move-ActiveMailboxDatabase MRSDB01 -ActivateOnServer MRSEXC03 -MountDialOverride:GoodAvailability -confirm:$confirm
Error getting mailbox database copy status from server « mrsexc01 ». You can use –SkipActiveCopyChecks
to skip this validation check. Error: A server-side administrative operation has fa
iled. The Microsoft Exchange Replication service may not be running on server MRSEXC01.unifiedit.priv. Specific RPC error message: Error 0x71a (The remote procedure call was cancelled) f
rom cli_GetCopyStatusEx2
+ CategoryInfo : InvalidOperation: (MRSEXC01.unifiedit.priv:String) [Move-ActiveMailboxDatabase], ErrorMoveUnableToGetCopyStatusException
+ FullyQualifiedErrorId : 62FFCB32,Microsoft.Exchange.Management.SystemConfigurationTasks.MoveActiveMailboxDatabase
Remonter Les bases de données sur le serveur restant
Pour correctement monter la base de donnée sur le serveur du Dag restant vous devez utiliser les commandes suivantes sur le serveur restant
net stop clussvc
net start clussvc /forcequorum
Move-ActiveMailboxDatabase -SkipActiveCopyChecks -SkipLagChecks -MountDialOverride:besteffort -SkipClientExperienceChecks -ActivateOnServer MRSEXC03 -identity MRSDB03 -confirm:$confirm
On notera que dans cette commande, nous activons la base de données quelques soit le nombre de journaux perdus grâce au paramètre « MountDialOverride:besteffort »
Retour à la normal
Dans le cas précis nous allons remonter le serveur MRSEXC01 et vérifier le comportement de notre Dag
Comme vous pouvez le voir le serveur MRSEXC01 est de nouveau en ligne et la réplication est active. La Base est marqué comme Saine (Healthy) et pourra de nouveau être activée.
Je vous conseille d’utiliser un script Powershell pour repositionner les bases de données sur les serveurs qui ont remonté.
Move-ActiveMailboxDatabase MRSDB01 -ActivateOnServer MRSEXC01 -MountDialOverride:GoodAvailability -confirm:$confirm
Move-ActiveMailboxDatabase MRSDB03 -ActivateOnServer MRSEXC01 -MountDialOverride:GoodAvailability -confirm:$confirm
Move-ActiveMailboxDatabase MRSDB05 -ActivateOnServer MRSEXC01 -MountDialOverride:GoodAvailability -confirm:$confirm
Move-ActiveMailboxDatabase MRSDB07 -ActivateOnServer MRSEXC01 -MountDialOverride:GoodAvailability -confirm:$confirm
Move-ActiveMailboxDatabase MRSDB02 -ActivateOnServer MRSEXC02 -MountDialOverride:GoodAvailability -confirm:$confirm
Move-ActiveMailboxDatabase MRSDB04 -ActivateOnServer MRSEXC02 -MountDialOverride:GoodAvailability -confirm:$confirm
Move-ActiveMailboxDatabase MRSDB06 -ActivateOnServer MRSEXC02 -MountDialOverride:GoodAvailability -confirm:$confirm
Cordialement
Laurent Teruin