Database availability groups are a container in Active Directory and a logical layer on top of Windows Clustering.
You can create and manage database availability groups in a variety of
ways. Establishing a database availability group and making it
operational requires the following at a minimum:
These tasks and general management tasks for database availability groups are discussed in the sections that follow.
1. Creating Database Availability Groups
A database availability group defines a set of servers that provide
automatic database-level recovery from database failures. Only members
of the Organization Management group can create database availability
groups.
When you create a database availability group, you can specify a
witness server or let Exchange choose one for you. The witness server's
role is to help maintain the state of the group. It does this by
maintaining the quorum when there is an even number of members in the
group. On the witness server, you can designate a directory, called the
witness directory, for use by the database availability group, or you
can let Exchange create a default directory for you. Exchange creates
and secures the directory automatically as part of configuring the
witness server for use. The directory should not be used for any
purpose other than for the database availability group witness server.
The requirements for the witness server are as follows:
-
The witness server cannot be a member of the database availability group.
-
The witness server must be in the same forest as the database availability group.
-
The witness server must be running Windows Server 2003 or Windows Server 2008 or later.
To be sure that Exchange administrators are aware of the
availability of the witness server and that the server remains under
the control of an Exchange administrator, Microsoft recommends using an
Exchange 2010 server to host the witness directory. Using an Exchange
2010 server as the witness also ensures that Exchange has sufficient
permissions to remotely create and share the witness directory. The
preferred witness
server is a Hub Transport server in the same Active Directory site as
the majority of the members of the database availability group.
A single server can serve as a witness for multiple database
availability groups. However, every database availability group must
have a separate witness directory.
To set up the database availability group, Exchange creates an msExchMDBAvailabilityGroup
object and related objects in Active Directory. These represent the
database availability group, its members, networks, and attributes. The
msExchMDBAvailabilityGroup directory object is used to store
information about the database availability group, such as server
membership information. Information about the included databases is
stored in the cluster database. When you add the first server to a
database availability group, a failover
cluster is automatically created for the database availability group
and failover monitoring is initiated. The failover cluster heartbeat
mechanism and cluster database are then used to track and manage
information about the database availability group.
After a database availability group has been created, you can add
servers to or remove existing servers from the database availability
group. When the first Mailbox server is added to a database
availability group, the following occurs:
-
The Windows Failover Clustering component and related management tools are installed, if they are not already installed.
Tip
Windows Failover Clustering is available only on Exchange 2010
Enterprise Edition Mailbox servers that are running Windows Server 2008
SP2 Enterprise or later or Windows Server 2008 R2 or later. In
addition, each Mailbox server in the database availability group must
have at least two network interface cards in order to have separate
replication and messaging networks.
-
A failover cluster is created using the name of the database
availability group. For the purposes of authentication and access
permissions, the cluster is represented by a computer account that is created in the default container for computers. This computer account is referred to as the cluster virtual network name account or the cluster network object.
-
The server is added to the msExchMDBAvailabilityGroup object in Active Directory.
-
When you create a database availability group, an IP address is
assigned to the group. When you add the first server to the group, the
name and IP address of the database availability group are registered
in Domain Name System (DNS) using a Host (A) record. The name must be
no longer than 15 characters and must be unique within the Active
Directory forest.
Note
A database availability group can have multiple IP addresses. If so, only the one that comes online is registered in DNS.
-
The cluster database is updated with information about the databases that are mounted on the server.
-
Exchange examines the current network configuration, as presented by
the cluster. If the server has a properly configured network card, the
configuration of that network card is used to create the replication
network. If the server has two network cards, the configuration of
those network cards are used to create separate replication and
messaging networks.
-
The witness directory and witness file share are created.
Permissions are set so that the network name account representing the
cluster has full control.
When you add the second and subsequent servers to the DAG, the following occurs:
-
The server is joined to the failover cluster for the DAG.
-
The server is added to the msExchMDBAvailabilityGroup object in Active Directory.
-
The cluster database is updated with information about the databases that are mounted on the server.
When a database availability group has a single member server, the
failover cluster initially uses the Node Majority quorum mode. When you
add the second Mailbox server to the database availability group,
Exchange changes the cluster quorum to the Node and File Share Majority
quorum model and begins using the Universal Naming Convention (UNC)
path and directory for the cluster quorum. If the witness directory
does not exist, Exchange automatically creates it at this point and
configures its security with full control permissions for local
administrators and the cluster network computer account for the
database availability group.
Note
REAL WORLD Every failover
cluster has a resource that is responsible for maintaining the witness
logs. This resource is called the quorum or witness resource. The quorum
resource writes information about all cluster database changes to the
witness logs, ensuring that the cluster configuration and state data
can be recovered. When you create a database availability group,
Exchange automatically determines the appropriate quorum configuration
for your cluster based on the number of member servers. When a DAG has
an odd number of members, Exchange uses the Node Majority quorum model.
When a DAG has an even number of members, Exchange uses a Node and File
Share Majority quorum model. In a Node Majority cluster configuration,
servers have a local quorum device. This device stores the cluster
configuration information. In a Node and File Share Majority cluster
configuration, servers use a witness file share rather than a quorum
(witness) device. Otherwise, the Node and File Share Majority
configuration works like the Node Majority configuration.
You can create a database availability group by completing the following steps:
-
In the Exchange Management Console, expand the Organization
Configuration node. Next, select and then right-click the related
Mailbox node. On the shortcut menu, select New Database Availability
Group. You should now see the New Database Availability Group Wizard,
as shown in Figure 1.
-
In the Database Availability Group Name text box, type a name of up
to 15 characters for the database availability group. The name must be
unique in the Active Directory forest and cannot contain spaces or
other special characters.
-
Optionally, select the Witness Server check box, and then provide
the name of a server in the same Active Directory forest as the DAG to
act as the witness server. Click OK. Because this server cannot be a
member of the database availability group, be sure that you don't
select servers that will be members of the database availability group
you are configuring.
Note
The server you select as the witness server can be a member of a
different database availability group. Also note that if you leave the
Witness Server check box cleared, Exchange attempts to automatically
select a witness server by looking in the same Active Directory site as
the majority of the DAG members for a Hub Transport server that does
not have the Mailbox role installed.
-
Select the Witness Directory check box, and then provide the local
folder path for a directory that will be used to store witness data,
such as C:\WitnessDir. If the directory does not exist, Exchange
attempts to create it for you on the witness server. If you don't
specify a witness directory, Exchange attempts to create a directory
named relative to the database availability group on the witness
server's system drive.
Note
Exchange must have appropriate permissions on the server to create
and then share the witness directory. Although you can set the local
directory path, the share name is set automatically in the form
DAGName.DomainName, such as WestCampusDag1.CPANDL.COM. This share is
configured so that the failover cluster's virtual name account has full
control.
Tip
As long as the witness server is an Exchange server in the same
forest, Exchange should be able to create and share the directory. If
Exchange is unable to create and share the directory, you'll see an
error message and need to take appropriate corrective actions. You can
use the Set-DatabaseAvailabilityGroup with the –WitnessDirectory
parameter to specify a new directory to use at any time. You also can
set a new directory by double-clicking the DAG in the Exchange
Management Console, entering a new directory path in the Witness
Directory field, and then clicking OK.
If the witness server is not an Exchange 2010 server, you have to
add the Exchange Trusted Subsystem security group to the local
Administrators group on the witness server.
-
Click New to create the database availability group, and then click
Finish. On the Completion page, the Summary states whether the
operation was successful. If an error occurred, you need to take the
appropriate corrective action. Otherwise, you can now add databases to
the database availability group as appropriate.
In the Exchange Management Shell, you can create database availability groups using the New-DatabaseAvailabilityGroup cmdlet. Example 1
provides the syntax and usage. The Exchange Management Console limits
you to 15 characters for the group name because the same name is used
as the computer name for the cluster network object that represents the
group.
Note
Don't confuse the local witness directory with the witness file
share. The local witness directory has a local file path on the witness
server, such as C:\WitnessShare. When you specify the witness
directory, Exchange creates the directory and then creates the file
share as appropriate.
Example 1. New-DatabaseAvailabilityGroup cmdlet syntax and usage
Syntax
New-DatabaseAvailabilityGroup -Name DAGName
[-DatabaseAvailabilityGroupIp Addresses
]
[-WitnessServer ServerName
]
[-WitnessDirectory LocalDirOnWitnessServer
]
[-DomainController FullyQualifiedName
]
[-ThirdPartyReplication <Disabled | Enabled>]
Usage
New-DatabaseAvailabilityGroup -Name "EastCampusDAG1"
-WitnessServer "MailServer25"
-WitnessDirectory "C:\EastCampusDAG1"
New-DatabaseAvailabilityGroup -Name "WestCampusDAG1"
-WitnessServer "MailServer25"
-WitnessDirectory "C:\WestCampusDAG1"
-DatabaseAvailabilityGroupIp 192.168.10.52,192.168.11.18