In het eerste deel van deze blog hebben we gekeken naar de theorie en enkele voorbeelden. In deze blog gaan we verder met het configureren en beheren van een DAG.
In deze situatie hebben we twee multirole Exchange 2013 servers. Omdat dit een even aantal is hebben we ook een file share witness nodig. Idealiter zou deze file share witness geplaatst worden op een andere Exchange server (bijvoorbeeld een CAS) maar deze kan ook op een generieke server worden geplaatst.
De eerste stap is het maken van de FSW. Het is van belang dat de Exchange Trusted Subsystem lid is van de local administrator groep van de server. Dit omdat Exchange deze account onderwater gebruikt om de nodigde acties uit te voeren.
Als de server niet de File Server feature bevat dan dient deze geïnstalleerd te worden m.b.v. het volgende cmdlet:
Add-WindowsFeature FS-FileServer
Als deze acties zijn uitgevoerd kunnen we verder gaan met het configureren van de DAG.
Als je bekend met met de DAG van Exchange 2010 dien je op te letten voor de volgende stap. Je dient namelijk het Cluster Name Object (CNO) van te voren aan te maken. Open ADUC en maak een computeraccount aan die gelijk is aan de naam van de DAG, bijvoorbeeld DAG01. Nadat het object is aangemaakt dient het object uitgeschakeld te worden en dienen de eigenschappen van het object opgevraagd te worden. Select de security tab en voeg de computeraccount van de computer die als eerst aan de DAG wordt toegevoegd toe. Herhaal deze stap voor de Exchange Trusted Subsystem beveiligings groep.
Natuurlijk kun je dit ook met een script doen. Mede The UC Architects lid Michel de Rooij heeft een script gemaakt wat hier gevonden kan worden.
De volgende stap is het aanmaken van de DAG, we gebruiken hiervoor de Exchange Management Shell:
New-DatabaseAvailabilityGroup -Name Exchange_DAG01 -WitnessServer FS01 -WitnessDirectory C:\Exchange_DAG01 -DatabaseAvailabilityGroupIpAddresses 192.168.1.90
Door gebruik te maken van het bovenstaande cmdlet maken we een DAG aan met de naam DAG01 en wijzen we FS01 toe als witness server. Op de FS01 wordt een directory aangemaakt Exchange_DAG01. Als laatste stap wijzen we een IP adres aan de DAG toe 192.168.1.90.
Als de DAG is aangemaakt is het tijd om de mailbox servers toe te voegen. Dit kan gedaan worden door gebruik te maken van het Add-DatabaseAvailabilityGroupServer cmdlet:
Add-DatabaseAvailabilityGroupServer -Identity DAG01 -MailboxServer EX01
Opmerking: wanneer de Windows Failover Clustering componenten ontbreken dan zal het cmdlet deze automatisch toevoegen. Houd er rekening mee dat de Exchange server misschien herstart moet worden. Dit server moet hierna mogelijk herstart worden. In dit geval is het noodzakelijk om het cmdlet nogmaals uit te voeren. Uit de praktijk weet ik dat het soms niet nodig is om te herstarten. In dat geval wordt de server direct aan de DAG toegevoegd.
Zodra de eerste server is toegevoegd dient deze stap nogmaals uitgevoerd te worden voor de andere server:
Add-DatabaseAvailabilityGroupServer -Identity DAG01 -MailboxServer EX02
Om de configuratie van de DAG aft e ronden dienen we de additionele kopieën toe te voegen van de databases. Om additionele kopieën toe te voegen maken we gebruik van het Add-MailboxDatabaseCopy cmdlet:
Add-MailboxDatabaseCopy -Identity MBDB01 -MailboxServer EX02 -ActivationPreference 2

Nadat de copy is toegevoegd dient de Microsoft Exchange Information Store service herstart te worden op de server waar de kopie is toegevoegd. Dit heeft te maken met de ”Managed Store” zoals deze geïntroduceerd is in Exchange 2013. Collega Exchange MVP Tony Redmond heeft een mooie blog hierover gepubliceerd. Dus als je wil weten waarom dit daadwerkelijk nodig is bezoek dan deze site.
In dit geval wordt een kopie van de database MBDB01 toegevoegd op de server EX02 met aan activation preference van 2.
Herhaal de stappen voor de database gehost by EX02:
Add-MailboxDatabaseCopy -Identity MBDB02 -MailboxServer EX01 -ActivationPreference 2
Zodra deze cmdlets zijn uitgevoerd kun je gebruik maken van het Get-MailboxDatabaseCopyStatus cmdlet om de status van de databases en kopieën te controleren.

In het bovenstaande voorbeeld is te zien dat de eerste kopie is gemount en de content index healthy is. De kopie van de database heeft echter een content index status van FailedAndSuspended. In dit voorbeeld zal een *over als gevolg hebben dat de gebruikers problemen zullen ondervinden met het zoeken in de mailbox.
Om dit probleem op te lossen dien je gebruik te maken van het Update-MailboxDatabaseCopy cmdlet:
Update-MailboxDatabaseCopy -Identity MBDB01\EX02 –CatalogOnly
Nadat je bevestigd dat catalog geupdate dient te worden zal de catalog bijgewerkt worden op de tweede kopie:

Laten we kijken naar nog een issue:

In dit geval zijn zowel de database als content index van de tweede kopie in verkeerde status:
Update-MailboxDatabaseCopy -Identity MBDB02\EX01

Na de bevestiging zullen zowel de database als de content index gereseed worden en zullen beide de status healthy krijgen.
Wanneer we onderhoud uit willen voeren op één van de DAG servers zullen we de server in maintenance mode moeten plaatsen. Dit kan gedaan worden door gebruik te maken van het StartDagServerMaintenance script wat gevonden kan worden in de standaard scripting directory van Exchange.

Door de parameter Server toe te voegen kunnen we de server opgeven die we in onderhoud willen nemen. Als het script wordt uitgevoerd zal het controleren of de server de PAM rol bezit en welke databases geactiveerd zijn op de server en deze vervolgens verplaatsen naar een andere DAG server.
Als het onderhoud aan de EX02 klaar is kunnen we de server terug in productie nemen. Dit kan gedaan worden door gebruik te maken van het StopDagServerMaintenance script:
.\StopDagServerMaitenance.ps 1 –Server EX02
Als het script is uitgevoerd is het verstandig om de status van de database te controleren met het Get-MailboxDatabaseCopyStatus cmdlet. Het script zal overigens niet de databases automatisch opnieuw verdelen dit zal handmatig gedaan moeten worden. Om een actieve database te verplaatsen dienen we het Move-ActiveDatabase cmdlet te gebruiken:
Move-ActiveMailboxDatabase MBDB02 –ActivateOnServer EX02

Nadat we dit hebt bevestigd zal de database geactiveerd worden op de EX02.
Hier eindigt het tweede deel van het Exchange Alfabet over Database Availability Groups. In dit deel hebben we gekeken hoe we een DAG kunnen maken en hoe we diverse cmdlets kunnen gebruiken om de DAG te beheren.