Om onderhoud te plegen aan één van de Exchange 2013 servers, kan de actieve database op één van de members van de DAG ge-activeerd worden op de passieve member. Dit kan op een aantal manieren:
- Server switchover
- Database activate
- Manual mount
Server Switchover:
Een server switchover zorgt ervoor dat alle actieve databases op een andere member geactiveerd wordt. Hiervoor worden de databases eerst uit de actieve mode gehaald en worden de database log-acties ‘afgespeeld’ op de passieve databases/servers. Nadat dit gereed is worden de databases actief op een andere member van de DAG. De originele server wordt dan passief (zonder actieve datastores) en dus kan er onderhoud op gepleegd worden.
De actie om dit te doen kan gevonden worden in de Exchange Admin Center (ecp) via het onderdeel Servers. Na een server gekozen te hebben (die lid is van de DAG) kan aan de rechterkant gekozen worden voor Server Switchover. Kies vervolgens voor ‘Automatically choose a target server’ en klik op ‘Save’ Database activate: ‘Database activate’ is een actie om een Exchange database actief te mounten op een andere members-servers van de DAG zodat onderhoud gepleegd kan worden aan de memberserver. Via powershell is het commando:
Move-ActiveMailboxDatabase -Server EXCHSRV
Database Activate:
Om een database te activeren op een andere server ga je in de Exchange Admin Center (ecp) naar ‘Servers’ en kies je voor ‘databases’. Klik op één van de databases in een DAG-member (DB01 of DB02) en aan de rechterkant kan dan onder de passieve server gekozen worden voor ‘Activate’. Kies voor ‘Yes’ om de actie uit te voeren. Als alle databases van de originele server passief zijn kan er onderhoud aan de server gepleegd worden. Via powershell:
Move-ActiveMailboxDatabase DB01 -ActivateOnServer EXCHSRV
Active Manager:
De active Manager is een Exchange process dat de status van de databases in de gaten houdt. Op een niet-DAG server zal de Active Manager in ‘stand-alone’ modus draaien en op een DAG-member draait de Active Manager in DAG-modus. Op elke member van de DAG draait de Active Manager, één server is de Primary Active Manager (PAM) en de overige servers zijn de Standby Active Managers (SAM). De server die de rol als PAM heeft wordt bepaald door de Quorum en kan via Powershell gevonden worden:
Get-DatabaseAvailabilityGroup -Status | fl Identity,PrimaryActiveManager
Elke PAM en SAM houdt de status van de mailbox-databases bij. Indien een failure gedetecteerd wordt zal de PAM ingelicht worden door de Active Manager en kan een fail-over geïnitieerd worden. Zodra één van de DAG-memberservers down is, zal de ‘bad copy count’ waarde oplopen. Deze waarde vind je in het Exchange Admin Center (ecp) naast de Database gegevens via ‘Servers’.
Zodra alle servers weer up zijn en de gegevens weer gekopieerd kunnen worden naar alle member-servers zal deze waarde op 0 staan. Het is mogelijk om passieve databases automatisch te mounten indien de ‘bad copy count’ boven een bepaalde waarde uitkomt. Dit heeft echter tot gevolg dat de database actief wordt zonder dat deze bijgewerkt wordt en er dus gegevens verloren kunnen gaan. Het is een afweging tussen geen mail beschikbaar hebben of kans op verlies van data.
Standaard staat de waarde op 2 en zal binnen enkele minuten een database actief gezet worden op één van de DAG-members. Echter zal bij een recovered server ook gekeken worden naar een aantal criteria waaronder de ‘copy queue length’ die immers het dataverlies aangeeft. Hoe minder het verlies hoe beter. Als deze waarde bij alle beschikbare servers gelijk is (bij voorkeur 0), zal verder gekeken worden en start het ‘Best Copy Selection’ (BCS) proces:
Activation Preference:
Met Powershell kan de waarde gevonden worden:
Get-MailboxDatabase | fl Identity,ActivationPreference
Deze geeft aan welke server de voorkeur heeft boven een andere server voor een bepaalde database. Hoe lager de waarde hoe hoger de voorkeur. Indien deze waardes niet gevonden (kunnen) worden of niet gelijk zijn, zal de volgende criteria tabel geraadpleegd worden:
Criteria Nr | Copy Queue Length | Replay Queue Length | Content Index Status | Database Status |
---|---|---|---|---|
1 | <10 | <50 | Healthy | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource |
2 | <10 | <50 | Crawling | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource |
3 | <50 | Healthy | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource | |
4 | <50 | Crawling | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource | |
5 | <50 | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource | ||
6 | <10 | Healthy | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource | |
7 | <10 | Crawling | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource | |
8 | Healthy | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource | ||
9 | Crawling | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource | ||
10 | Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing of SeedingSource |
Attempt Copy Last Logs:
Ervan uitgaande dat de database automatisch geactiveerd wordt, zal het ‘Attempt Copy Last Logs’ proces (ACLL), controleren welke server de beste kandidaat is om de log-files van te restoren. Buiten het feit dat de kandidaat een ‘Healthy’ status moet hebben wordt ook gekeken naar de waardes van LastLogInspected, te raadplegen met powershell:
Get-MailboxDatabaseCopyStatus DB01\EXCHSRV | fl Status,Last*
De server met de hoogste LastLogInspected waarde is de beste kandidaat. Indien alle logbestanden ge-restored zijn zal de database ge-mount worden. Mochten echter enige logfiles ontbreken, dan zal de parameter AutoDatabaseMountDial geraadpleegd worden om te bepalen hoeveel logfiles er mogen ontbreken om de database te mounten. De volgende settings zijn mogelijk:
- BestAvailability (default) = Mount de database indien de ‘copy queue length’ ≤ 12.
- GoodAvailability = Mount de database indien de ‘copy queue length’ ≤ 6.
- Lossless = Mount de database alleen indien de ‘copy queue length’ 0 is, zonder verlies van data dus.
Manual mount:
Om toch een passieve database actief te maken zonder deze bij te werken (met de log-files) naar de huidige status omdat bv. de ‘copy queue length’ te hoog is, kan met behulp van powershell het volgende commando gegeven worden:
Move-ActiveMailboxDatabase DB01 EXCHSRV -SkipClientExperienceChecks
(uiteraard is het beter om de log-files te restoren van een backup en dan de database bij te laten werken voordat deze gemount wordt)
Er is een uitzondering als de waarde van MaximumActiveDatabases bereikt is. Deze geeft aan hoeveel databases er maximaal actief mogen staan op een server. Powerhell:
Get-MailboxServer -Identity EXCHSRV | fl MaximumActiveDatabases