28.3 C
Dubai
Thursday, April 25, 2024

How to create a Database Availability Group in Exchange 2013

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

image

image

========================================================
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

image

Verify my NIC binding are Correct

Advanced – Advanced Settings

image

1.Primary Network

2.Replication Network

image

Make Sure they are in a Different Class of IP

Primary Network –

image

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

image
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

image

Enter the DAG Name

image

Disable the Account

image

Give Full Control for Exchange Trusted Subsystems

image

Add the First Node Computer account and Give Full Control

Note –  Choose Object types to Select Computer Accounts

image

image

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

image

 

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

image
Now my DAG Configuration is Ready
Add members to it.

Choose Manage DAG Membership

image

image

Adding the members

image

Now you can add the other DAG memberwhere it should get added without any issues.

image

 

Great !! Now your DAG is ready !!

 

See

How to Add Database Copies in Exchange 2013

Satheshwaran Manoharan
Satheshwaran Manoharanhttps://www.azure365pro.com
Award-winning Technology Leader with a wealth of experience running large teams and diversified industry exposure in cloud computing. From shipping lines to rolling stocks.In-depth expertise in driving cloud adoption strategies and modernizing systems to cloud native. Specialized in Microsoft Cloud, DevOps, and Microsoft 365 Stack and conducted numerous successful projects worldwide. Also, Acting as a Technical Advisor for various start-ups.

Related Articles

42 COMMENTS

  1. 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

  2. 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.

  3. Hi Sathesh,

    How about Dynamic Quorum feature of Exchange 2013 DAG? We should be able to use it without having witness server.

    Regards,
    Vaibhav

  4. 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

  5. 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]

  6. 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.

  7. 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

  8. 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

  9. 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 ?

  10. 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 ??

  11. 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

  12. 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

  13. 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.

  14. É 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.

  15. 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.

  16. 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.

  17. 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

  18. 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.

  19. 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

LEAVE A REPLY

Please enter your comment!
Please enter your name here

× How can I help you?