3 Configuring a Database Availability Group
To configure a
Database Availability Group, at least two Exchange Server 2010 Mailbox
Servers are required. Imagine a four server deployment, one Exchange
Server 2010 Client Access Server, one Exchange Server 2010 Hub Transport
Server and two Exchange Server 2010 Mailbox Servers (EXMBX01 and
EXMBX11). All four servers are located in the same Active Directory
site, and this site is also the Internet-facing Active Directory site.
Let's assume that all
four servers are fully operational and working fine. To create a
Database Availability Group for the two Mailbox Servers, an additional
private network is needed, which will be used for replication purposes.
To create a Database Availability Group follow these steps.
Log on to an Exchange Server and open the Exchange Management Console.
Expand the Exchange On-Premises (SERVER),
and then expand the Organization leaf. Click the Mailbox and then click
the Database Availability Group tab. No items will be shown in the
results pane.
On the Mailbox Server, open the Exchange Management Shell and then enter the following command:
A
new Database Availability Group with the IP address of 10.0.0.101 will
be created. Since the Database Availability Group is nothing more than a
placeholder in Active Directory, it can be seen with ADSIEdit.
To
add the first Mailbox Server (EXMBX01) to the Database Availability
Group, switch back to the Exchange Management Shell and enter the
following command:
The
specified Mailbox Server will now be added to the Database Availability
Group. Furthermore, a File Share Witness will be created on the Hub
Transport Server. The File Share Witness, just like in an Exchange
Server 2007 CCR environment, is needed to create a majority in the
cluster when a server fails. The actual addition of the Mailbox Server
and the creation of the File Share Witness can take up to 45 seconds.
When
switching back to the Exchange Management Console you can now see the
Database Availability Group (DAG1) in the console, as well as the
EXMBX01 we just added.
Click
the Database Management tab in the Exchange Management Console. You'll
see the initial databases on the first and second Mailbox Servers. Also
notice that there's one database copy available on each server. When you
select the Public Folder Database in the Database Management tab, the
Database Copies results pane is grayed-out. This is because Public
Folder replication and Database Replication are not compatible.
To
add the second Exchange Server 2010 Mailbox Server to the Database
Availability Group, log on to the second server and open the Exchange
Management Shell. Enter the following command:
The
second Mailbox Server will now be added to the Database Availability
Group. As with adding the first Mailbox Server, this can take several
seconds to finish.
NOTE
If
the Windows Fail-over clustering components are not already installed
on the Mailbox Server, they automatically will be. You can also manually
install them in advance by opening a command prompt and execute the
following command:
ServerManagerCmd.exe –i Failover-Clustering
Right, now we have created a
Database Availability Group with two mailbox servers and we're ready to
configure Database Copies. The Database Availability Group feature is
very flexible. As I've explained, there's no need to configure a Windows
Fail-over cluster in advance; you can add a Mailbox Server to the DAG
whenever needed – even a year later – without a problem. Just install a
Mailbox Server, install the Fail-over clustering bits, and add the
server to the DAG. This is known as Incremental Deployment.
It is also possible to create
site resilience using the Database Availability Group. Besides adding
Mailbox Servers in the same Active Directory site (i.e. in the same
datacenter), you can also add Mailbox Servers in another Active
Directory site, such as in another datacenter. As long as the network
connectivity is good enough to handle the replication in a timely
manner, and as long as the Hub Transport and Client Access Servers have a
reliable network connection to the other datacenter, you're ready to
go.
If you want to add a Mailbox
Server in another site to the DAG, a few configuration changes are
needed. The IP Address of the DAG in the other site has to be added to
the local DAG, and since this is not possible with the Exchange
Management Console, the Exchange Management Shell has to be used. Enter
the following command:
The first network
in the DAG will be automatically created during the addition of the
first Mailbox Server. Additional networks are not created automatically,
so you have to add the subnet of the second site to the DAG manually:
NOTE
If
there are Domain Controllers in the site you just added, you must wait
for the replication to finish, or else force the replication to start.
Otherwise the Domain Controllers in the second site may not have enough
knowledge about the changes you want to make.
At this stage you can add a
Mailbox Server in the second site to the DAG using the Exchange
Management Console or the Exchange Management Shell:
4 Managing database copies
A database copy is exactly
what its name implies: a copy of an active database, but on another
Exchange Server, in the same Database Availability Group. When initially
configured, a copy of the database file is copied via the network to
the other server and when finished, Exchange Server 2010 starts
replication of the log files of this particular database over the
network to the other server.
The relative location of the
passive copy of the database is also identical to the location of the
active copy. For example, an initial database on an Exchange Server 2010
Mailbox Server can be located in the directory "C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database 1444276156."
If a database copy is enabled for this server, the same directory is
created on the second server. The process of copying a database to a
second location is known as seeding.
It is best practice to use
separate disks for Exchange Databases, both from a performance
perspective as well as a disaster recovery perspective. Although meant
for earlier versions of Exchange Server, Microsoft knowledge base
article 328794 explains more: HTTP://TINYURL.COM/SEPARATEDISKS.
After configuring "Mailbox Database 1444276156" to use the separate disk G:\ for storing its information, the database copy can be configured:
On
the target server, i.e. the server that will hold the database copy,
make sure there's an identical volume as on the source server. The
target server in this example needs a separate G:\ disk as well.
Open the Exchange Management Console, expand the "Microsoft Exchange On-Premises (EXMBX01)", then expand the Organization Configuration container, and then click on the Mailbox node. Select the Database Management tab.
Select "Mailbox Database 1444276156."
In the lower part of the results pane there's one copy, the active
copy, located on the first Exchange server EXMBX01. Right-click "Mail boxDatabase 1444276156" and select "Add Mailbox Database Copy..."
In the Add Mailbox Database Copy wizard, select "Browse" to select a Mailbox Server that will hold a copy of the database. The "Activation Preference Number"
is the order in which Exchange will make a passive copy into an active
copy when the preceding active copy fails. Of course, this number is
only useful if multiple passive copies are configured (a complete
rundown of the Activation Preference Number and what happens when a
database becomes active is on the Microsoft TechNet website: HTTP://TINYURL.COM/ACTIVEMANAGER). Click Add to continue.
The database file "Mailbox Database 1444276156.edb"
will now be copied to the target server and the replication will be set
up. Depending of the size of the Database file, this can take some
time.
When the database is copied and the replication is activated, click Finish.
Once completed, log on to the target Exchange server and you'll notice that on this server (on the G:\ disk in this example) a "Mailbox Database 1444276156"
directory has been created where the copy of the database is stored.
You'll also see the log files that are replicated to this directory.
If a lot of databases are
used on an Exchange Server, using mount points is a valid alternative.
In a mount point scenario, all data disks are mounted to a directory on
the server, for example F:\DB01, F:\DB02, F:\DB03, etc., using Server
Manager.
In an Exchange Server
2007 CCR environment, the active server also ships log files to the
passive server, which also loads the log files into its copy of the
database. However, the passive server is really
passive, and the service responsible for the database and the log files
(store.exe) is not running. The only service that is running is the
replication service. During a failover, the passive node has to start
all Exchange services, and all databases need to be mounted before that
can happen. In Exchange Server 2010 the store.exe service is already
running and the databases are already mounted on all computers in a
Database Availability Group, meaning a database failover is much faster,
and the result is a much shorter overall failover time.
For maintenance purposes it is possible to move an active database copy from one Exchange Mailbox server to another:
Log on to an Exchange Server and open the Exchange Management Console.
Expand the Exchange On-Premises (SERVER), and then expand the Organization leaf. Click the Mailbox and then click the Database Management tab.
All
of the databases in your Exchange Server 2010 environment show up in
the upper half of the results pane. Right-click the database you want to
move (which is, of course, also a database that has multiple copies
configured).
Select "Move Active Mailbox Database" from the context menu.
In the "Move Active Mailbox Database" wizard select Browse to select another server where you want the Active Copy to be moved to.
Click the Move button to move the Active Copy of the database to the server just selected.