Refer newer version –
https://www.azure365pro.com/create-dag-database-availability-group-in-exchange-2016/
Well, Creating Database Availability Group (DAG) Became much more simpler,
But configuring it properly is the best part to have it efficiently working.
So lets see how to create a 2 node DAG ,
NOTE **Am not going to Describe about load balancing for Client Connectivity in this blog
I will describe my environment now
I have 2 AD sites
Every AD site has Exchange Servers
========================================================
First we will prepare the Environment for the DAG
NOTE : If you have 10g Interfaces also it is highly Available. Dedicated Replication Network is optional.Preferred Architecture states to have only one network.
———————————————————————————-
I will have my Primary LAN . Will add a Replication LAN ,for my DAG replication for all the nodes which am planning to add in DAG
Verify my NIC binding are Correct
Advanced – Advanced Settings
1.Primary Network
2.Replication Network
Make Sure they are in a Different Class of IP
Primary Network –
Replication Network –
*No Default Gateway
*No DNS Servers Set
*Add a persistent Route for all the nodes with the Replication NIC’s
Replication NICs should ping with other replication NIC’s – So that DAG replication will happen through these NIC’s
Port Used : 64327
Now there is no Single point of failure on my LAN
If my replication network fails it can failover to the production network. vice versa.
—
When creating a DAG with Mailbox servers running Windows Server 2012 in an Active Directory environment with Windows Server 2008 R2 directory servers, you must pre-stage the cluster network object before adding members to the DAG. For detailed steps, see Pre-Stage the Cluster Network Object for a Database Availability Group.
See
http://technet.microsoft.com/en-us/library/dd351172.aspx
Lets See How to pre stage a Cluster CNO object.
Open ADUC – New Computer Account
Enter the DAG Name
Disable the Account
Give Full Control for Exchange Trusted Subsystems
Add the First Node Computer account and Give Full Control
Note –Â Choose Object types to Select Computer Accounts
Apply the Permissions
Reference link –
Pre-Stage the Cluster Network Object for a Database Availability Group
==========================================================================
Now we will Create a DAG ,
Login to EAC –Servers – Database Availability Groups – Choose New
Specify
* DAG name
* Witness Server Name
* Witness Location
Add Two DAG ips’ (Static IP for the DAG )
1 for Primary Site
1 for DR site
if you have different subnet or different class of ip on either Sites.
Have Two IP address for the DAG so that DAG resource can be online while failover on either sites
If you have only one Subnet , then you can have only one Ip address for the DAG
Now my DAG Configuration is Ready
Add members to it.
Choose Manage DAG Membership
Adding the members
Now you can add the other DAG memberwhere it should get added without any issues.
Great !! Now your DAG is ready !!
See
Excellent
Thanks Amit !!
Hi Sathesh,
Thanks for your article. I have a question here…By default it’s recommended to enable IPV6 for Exchange 2013, if we disable this there is an issue with the starting transport service.
I noticed while installing the DAG IPV6 is disabled for MAPI (Primary) network, will this will create an issue.
Database availability group member
Ipv6 Supported = Yes, You need not to disable it, It should work without any problems
Static IPv6 addresses are supported by Windows Server 2008 and the Cluster service. However, using static IPv6 addresses goes against best practices. Exchange 2013 on Windows Server 2008 doesn’t support the configuration of static IPv6 addresses during setup.
Failover clusters support Intra-site Automatic Tunnel Addressing Protocol (ISATAP). They support only IPv6 addresses that allow for dynamic registration in DNS. Link local addresses can’t be used in a cluster
http://technet.microsoft.com/en-in/library/gg144561(v=exchg.150).aspx#DisEna
Great guide and tutorial. I just have one quick question. Is it possible to create DAG without third server that will act as witness server? Currently, we have installed two Exchange Server 2013 on Windows 2008 R2 Enterprise SP1 on two HP Proliant Servers. The AD on the Live Server is being replicated to the AD on the Backup Exchange. We want to configure DAG to replicate the mailbox database of the Live Server to the Backup Server. I have read some tutorials that it is mandatory to have 3rd server that will act as Witness Server because the DAG members should not be a witness server.
First Exchange on DC is not a Good thing.
Having witness on Exchange server is not possible
in a two node dag . without witness . Its not going to fail over .when one node goes down.
Hi Sathesh,
How about Dynamic Quorum feature of Exchange 2013 DAG? We should be able to use it without having witness server.
Regards,
Vaibhav
Yes
Hi Sathesh,
I have question regarding exchange 2010 SP3, 2 node DAG in Site A and Site B with users are hosted on both sites. Please suggest the configuration steps.
Servers
Site A
1. CAHT1
2. MBX1
Site B
1. CAHT2
2. MBX2
please help me when i add new member of dag
i have 2 server
1. CAS,MB
1. MB only
3. witness server is 2012 , i add exchange trsut in local administrator group, create cno but
cant create directory and i get this erorro
A server-side database availability group administrative operation failed. Error The operation failed. CreateCluster errors may result from incorrectly configured static addresses. Error: An error occurred while attempting a cluster operation. Error: Cluster API ‘”CreateCluster() failed with 0x13c1. Error: The cluster IP address is already in use”‘ failed.. [Server: dag-srv.pop.local]
ERROR
A server-side database availability group administrative operation failed. Error The operation failed. CreateCluster errors may result from incorrectly configured static addresses. Error: An error occurred while attempting a cluster operation. Error: Cluster API ‘”CreateCluster() failed with 0x13c1. Error: The cluster IP address is already in use”‘ failed.. [Server: Mail-srv.pop.local]
Excellent job sathesh…….
Thank you
Hi Sathesh,
So If I have 1 Mailbox and Client access server and another server has the mailbox role only
do I have to build new server as a witness for them?
Can’t I use the File server I already have or there will be high traffic for both witness and file server?
Last question please, How to distribute my users on the two servers I need two divide the users between the two servers?
Install Both Servers with All the roles. Create a DAG . and place a Load balancer in front of it . This is the recommended way .
Witness server and file server can be the same . Witness server just need to be reachable when DAG members goes down.
Hi,
Satheesh. What about the configuration of DAG network group.
I have received error after configuring the above. It mentioned that DAG Network is not configured
If you have multiple Nics , you can add them manually,. MAPI Network – And Replication network without gateway/DNS
Hi,
what is the network configured between your sites? i sit P2P or MPLS with data?
MPLS
Hi,
How to test that replication NIC’s are communicating to each other over WAN?
-Natesh
Open ICMP and Try ping
or use netmon
Hello Sathesh,
I am setting 2 node DAG in E2013,should we use witness server as client access machine or any other server os?
How should be a witness server ? we have to create a “shared” folder ? Kindly guide me on this.
By Banooj_Bangalore +917829422645
It can be any domain joined machine on the same site. Prefer to combine the roles . don’t split them
Dear Team,
I am going to create Exchange server 2013 with DAG .. MY setup
details
1 AD
2 Exchange server MBX with client Access is it enough ? or need witness server ?
2 – mult-role
Witness – yes its required
Hello,
Satheshwaran Manoharan, I have two servers AD and exchange at the same time, ican’t make the DAG , when I try it works on a server , on the second one there is a error.
Cabn you help me, please ??
Its not recommended to have Active Directory and Exchange on the same machine – hence the error.
thanks so much for the information. i have an issue after setting up 2 member DAG in same site. i have installed exchange 2013 on windows server R2 on MBX1 and MBX2.
what i notice is that when i shutdown MBX1, databases failover to MBX2. but when i start up MBX1 and shutdown MBX2, Databases do not failover to MBX. it shows disconnected.
how do i ensure that databases continue to failover amongst the servers in the event that any of the two mailbox servers goes down.
please assist.
thanks
check witness is configured properly.
dear team,
thanks for the document Manoharan.
i was able to setup two member DAG in same AD site namely MBX11 and MBX2.
what i noticed is that when i shutdown MBX1, databases failover to MBX2 and all is fine. but when i start up MBX1 and is running and i shutdown MBX2, Databases do not mount on MBX1. the status from EMS reads disconnected and failed. hence all clients are disconnected
how do i ensure that databases continue to failover amongst the servers in the event that any of the two mailbox servers goes down.
please assist.
thanks
Hi Team,
I want to setup exchange 2013 DAG as follows”
Primary
1. AD
2. Exchanger_Server_1
DR
1. AD
2.Exchange_Server_2
If link between Primary and DR is down and I go to DR will I be able to mount the exchange databases from DR and connect (user with latop and outlook connecting to Exchange_Server_2)?
Are witness servers and/or file shares required in this case?
Regards
Yes witness should be in first site. If DR happens.. you will force the witness manually on the second site server.
É comum perceber a estrutura de websites institucionais através da
seguinte composição: – House: Resumo do site com principais destaques – Empresa:
Quem é a empresa, quanto tempo está no mercado, diferenciais e valores – Produtos/Serviços: Descrição dos
produtos e serviços oferecidos – Contato: Meios de contato,
são eles: Telefone, endereço, e-mail.
Hi Team,
How can should we configure 4 servers ( Exchange 2013) DAG in two different sites and achieve HA with no manual intervention incase of site failure. In Exchange 2010 it was a manual task to activate DR site and change DNS to point to DR site or set CAS for DR site.
Is there any way in Exchange 2013 to achieve automatic site failover.
Hi satheesh,
i am not clear little bit because there is no step by step….
Hi Sathesh, I have this scenario,
1 Exch 2013 SP1 with CA and MBX roles on Win 2008 Ent R2. This has had issues. We decided to build two new servers on Win 2012 Std R2. 1 with MBX role and one with CA role also doubling as Witness Server. Both have Exch 2013 SP1 Installed. I build a 3rd Exch 2013 SP1 Svr on Win 2008 Ent R2 for DAG with 1st Problematic server. DAG failed because of continuous failures in old server.
I also could not export out mailboxes to PSTs from old server because of inconsistencies. I have the .edb files and logs on the old server. How can I use these or transfer them to new MBX server and use this server and later discard the old server. Kindly advise.
you shouldn’t have used different operating systems for DAG members in the first place.
check the status of the databases. remove them from DAG. and plan it in a recommended way.
hi Sathesh,
add-databaseavailabiltygroupserver started on machine EXCHANGE-1.
[2017-02-27T05:26:59] add-dagserver started
[2017-02-27T05:26:59] commandline: $scriptCmd = {& $wrappedCmd @PSBoundParameters }
[2017-02-27T05:26:59] Option ‘Identity’ = ‘DAG1’.
[2017-02-27T05:26:59] Option ‘MailboxServer’ = ‘EXCHANGE-1’.
[2017-02-27T05:26:59] Option ‘DatabaseAvailabilityGroupIpAddresses’ = ”.
[2017-02-27T05:26:59] Option ‘WhatIf’ = ”.
[2017-02-27T05:26:59] Process: w3wp w3wp.exe:7584.
[2017-02-27T05:26:59] User context = ‘NT AUTHORITY\SYSTEM’.
[2017-02-27T05:26:59] Member of group ‘Everyone’.
[2017-02-27T05:26:59] Member of group ‘BUILTIN\Users’.
[2017-02-27T05:26:59] Member of group ‘NT AUTHORITY\SERVICE’.
[2017-02-27T05:26:59] Member of group ‘CONSOLE LOGON’.
[2017-02-27T05:26:59] Member of group ‘NT AUTHORITY\Authenticated Users’.
[2017-02-27T05:26:59] Member of group ‘NT AUTHORITY\This Organization’.
[2017-02-27T05:26:59] Member of group ‘BUILTIN\IIS_IUSRS’.
[2017-02-27T05:26:59] Member of group ‘LOCAL’.
[2017-02-27T05:26:59] Member of group ‘IIS APPPOOL\MSExchangeECPAppPool’.
[2017-02-27T05:26:59] Member of group ‘BUILTIN\Administrators’.
[2017-02-27T05:26:59] Updated Progress ‘Validating the parameters.’ 2%.
[2017-02-27T05:26:59] Working
[2017-02-27T05:26:59] Mailbox server: value passed in = EXCHANGE-1, mailboxServer.Name = EXCHANGE-1, mailboxServer.Fqdn = EXCHANGE-1.com
[2017-02-27T05:26:59] LogClussvcState: clussvc is Stopped on EXCHANGE-1.com. Exception (if any) = none
[2017-02-27T05:26:59] The IP addresses for the DAG are (blank means DHCP): 172.16.3.60
[2017-02-27T05:26:59] Looking up IP addresses for DAG1.
[2017-02-27T05:26:59] DAG1 = [ 172.16.3.60 ].
[2017-02-27T05:26:59] Looking up IP addresses for hida-exchange-1.
[2017-02-27T05:26:59] exchange-1 = [ fe80::9572:d39:f932:943d%13, fe80::a5ad:62bf:eba1:1d46%12, 1.1.1.3, 10.10.60.11, 2002:101:103::101:103 ].
[2017-02-27T05:26:59] Looking up IP addresses for EXCHANGE-1.com.
[2017-02-27T05:26:59] EXCHANGE-1.com = [ fe80::9572:d39:f932:943d%13, fe80::a5ad:62bf:eba1:1d46%12, 1.1.1.3, 10.10.60.11, 2002:101:103::101:103 ].
[2017-02-27T05:27:00] DAG DAG1 has 2 servers:
[2017-02-27T05:27:00] DAG DAG1 contains server MS-EXCH-02.
[2017-02-27T05:27:00] DAG DAG1 contains server MS-EXCH-01.
[2017-02-27T05:27:00] According to GetNodeClusterState(), the server EXCHANGE-1 is NotConfigured.
[2017-02-27T05:27:00] Updated Progress ‘Checking if Mailbox server ‘EXCHANGE-1′ is in a database availability group.’ 4%.
[2017-02-27T05:27:00] Working
[2017-02-27T05:27:00] GetRemoteCluster() for the mailbox server failed with exception = An error occurred while attempting a cluster operation. Error: Cluster API failed: “OpenCluster(EXCHANGE-1.com) failed with 0x6d9. Error: There are no more endpoints available from the endpoint mapper”. This is OK.
[2017-02-27T05:27:00] Ignoring previous error, as it is acceptable if the cluster does not exist yet.
[2017-02-27T05:27:00] DumpClusterTopology: Opening remote cluster DAG1.
[2017-02-27T05:27:00] Dumping the cluster by connecting to: DAG1.
[2017-02-27T05:27:00] The cluster’s name is: DAG1.
[2017-02-27T05:27:00] Groups
[2017-02-27T05:27:00] group: Available Storage [not a CMS]
[2017-02-27T05:27:00] OwnerNode: MS-Exch-01.com
[2017-02-27T05:27:00] State: Online
[2017-02-27T05:27:00] group: Cluster Group [Cluster Main Group]
[2017-02-27T05:27:00] OwnerNode: MS-Exch-01.com
[2017-02-27T05:27:00] State: Online
[2017-02-27T05:27:00] Resource: File Share Witness [Online, type = File Share Witness, PossibleOwners = MS-EXCH-01,MS-EXCH-02 ]
[2017-02-27T05:27:00] Resource: IPv4 Static Address 1 (Cluster Group) [Online, type = IP Address, PossibleOwners = MS-EXCH-01,MS-EXCH-02 ]
[2017-02-27T05:27:00] Address = [172.16.3.60]
[2017-02-27T05:27:00] EnableDhcp = [0]
[2017-02-27T05:27:00] Network = [Cluster Network 1]
[2017-02-27T05:27:00] Resource: Cluster Name [Online, type = Network Name, PossibleOwners = MS-EXCH-01,MS-EXCH-02 ]
[2017-02-27T05:27:00] NetName = [DAG1]
[2017-02-27T05:27:00] Nodes
[2017-02-27T05:27:01] node: MS-Exch-01.com [ state = Up ]
[2017-02-27T05:27:01] node: MS-EXCH-02.com [ state = Up ]
[2017-02-27T05:27:01] Subnets
[2017-02-27T05:27:01] Name(Cluster Network 1), Mask(172.16.0.0/22), Role(ClusterNetworkRoleInternalAndClient)
[2017-02-27T05:27:01] NIC 172.16.3.6 on Node MS-EXCH-02 in State=Up
[2017-02-27T05:27:01] NIC 172.16.3.5 on Node MS-Exch-01 in State=Up
[2017-02-27T05:27:01] Name(Cluster Network 2), Mask(1.1.1.0/24), Role(ClusterNetworkRoleInternalUse)
[2017-02-27T05:27:01] NIC 1.1.1.1 on Node MS-Exch-01 in State=Up
[2017-02-27T05:27:01] NIC 1.1.1.2 on Node MS-EXCH-02 in State=Up
[2017-02-27T05:27:01] Opening the cluster on nodes [ms-exch-02, ms-exch-01].
[2017-02-27T05:27:01] Other mailbox servers in the DAG are already members of cluster ‘DAG1’
[2017-02-27T05:27:01] The server EXCHANGE-1 does not belong to a cluster, and the other servers belong to DAG1.
[2017-02-27T05:27:01] Successfully resolved the servers based on the stopped servers list.
[2017-02-27T05:27:01] The following servers are in the StartedServers list (The list is the StartedServers property of the DAG in AD):
[2017-02-27T05:27:01] The following servers are in the StoppedServers list:
[2017-02-27T05:27:01] Verifiying that the members of database availability group ‘DAG1’ are also members of the cluster.
[2017-02-27T05:27:01] Verifying that the members of cluster ‘DAG1’ are also members of the database availability group.
[2017-02-27T05:27:01] The CNO is currently Online.
[2017-02-27T05:27:01] InternalValidate() done.
[2017-02-27T05:27:02] Updated Progress ‘Adding server ‘EXCHANGE-1’ to database availability group ‘DAG1′.’ 6%.
[2017-02-27T05:27:02] Working
[2017-02-27T05:27:02] Updated Progress ‘Adding server ‘EXCHANGE-1′ to the cluster.’ 8%.
[2017-02-27T05:27:02] Working
[2017-02-27T05:33:20] The operation wasn’t successful because an error was encountered. You may find more details in log file “C:\ExchangeSetupLogs\DagTasks\dagtask_2017-02-27_05-26-59.313_add-databaseavailabiltygroupserver.log”.
[2017-02-27T05:33:20] WriteError! Exception = Microsoft.Exchange.Cluster.Replay.DagTaskServerTransientException: A server-side database availability group administrative operation failed with a transient error. Please try the operation again. Error: An error occurred while attempting a cluster operation. Error: Cluster API failed: “AddClusterNode() (MaxPercentage=100) failed with 0x5b4. Error: This operation returned because the timeout period expired” —> Microsoft.Exchange.Cluster.Shared.ClusterApiException: An error occurred while attempting a cluster operation. Error: Cluster API failed: “AddClusterNode() (MaxPercentage=100) failed with 0x5b4. Error: This operation returned because the timeout period expired” —> System.ComponentModel.Win32Exception: This operation returned because the timeout period expired
— End of inner exception stack trace —
at Microsoft.Exchange.Cluster.ClusApi.AmCluster.AddNodeToCluster(AmServerName nodeName, IClusterSetupProgress setupProgress, IntPtr context, Exception& errorException, Boolean throwExceptionOnFailure)
at Microsoft.Exchange.Cluster.Replay.DagHelper.AddDagClusterNodeInternal(HaTaskStringBuilderOutputHelper output, AmServerName mailboxServerName, String& verboseLog)
— End of inner exception stack trace (Microsoft.Exchange.Cluster.Shared.ClusterApiException) —
at Microsoft.Exchange.Cluster.Replay.DagHelper.ThrowDagTaskOperationWrapper(Exception exception)
at Microsoft.Exchange.Cluster.Replay.DagHelper.AddDagClusterNodeInternal(HaTaskStringBuilderOutputHelper output, AmServerName mailboxServerName, String& verboseLog)
at Microsoft.Exchange.Cluster.Replay.NodeActionTracker.PerformNodeAction(ITaskOutputHelper output, AmServerName nodeName, NodeAction nodeAction, Action clusterAction)
at Microsoft.Exchange.Cluster.Replay.DagHelper.AddDagClusterNode(AmServerName mailboxServerName, String& verboseLog)
at Microsoft.Exchange.Data.Storage.Cluster.HaRpcExceptionWrapperBase`2.RunRpcServerOperation(String databaseName, RpcServerOperation rpcOperation)
— End of stack trace on server (MS-Exch-01.com) —
at Microsoft.Exchange.Data.Storage.Cluster.HaRpcExceptionWrapperBase`2.ClientRethrowIfFailed(String databaseName, String serverName, RpcErrorExceptionInfo errorInfo)
at Microsoft.Exchange.Cluster.Replay.ReplayRpcClientWrapper.RunAddNodeToCluster(AmServerName serverName, AmServerName newNode, String& verboseLog)
at Microsoft.Exchange.Management.SystemConfigurationTasks.AddDatabaseAvailabilityGroupServer.JoinNodeToCluster()
[2017-02-27T05:33:20] Updated Progress ‘Done!’ 100%.
[2017-02-27T05:33:20] COMPLETED
add-databaseavailabiltygroupserver explicitly called CloseTempLogFile().
please help me!
Thanks
Hi Satheshwaran,
How to implement DR exchange server 2016 and ADC server by putting in sync with existing AD and exchange server2016.
What are the prerequisites and steps for implementing..
Active Directory – Exchange on a Separate Site. If you want Automatic Failover of Databases you need to place witness on the third site.
or place witness on the primary site and do Manual Failover incase of disaster.
Love It..Excellent
Hi
I was hoping you could assist me
So I was told by my manager to do this
We have 2 exchange servers EX01 & EX02
Ex01 holds the database with all our mailboxes
I was told to create a DAG, which I did and added the 2 servers and the DAG is configured correctly
I was told to create another Db for the DAG which I labelled dagdb1
I was then told to seed the new dagdb01 to the Ex02 server.
It seeded successfully and now there’s a copy of the dagdb1 on ex02
I am confused at how this setup works because the active Db on ex01 was not seeded to ex02 so there isn’t a passive copy of this
But my manager says that this is the way he wants it configured
He has told me to do a test by moving my mailbox Db to the mew Db and test if it works
And then failover to test if it works
If you could please assist me in understanding this
Thank you