Sunteți pe pagina 1din 9

Installing and Configuring SQL Server 2012 Distributed

Replay
By: Jonathan Kehayias

https://www.sqlskills.com/blogs/jonathan/installing-and-configuring-sql-server-2012-distributed-
replay/

Posted on: November 9, 2011 2:00 am

This blog post is the first in a series of posts that will cover how to install, configure, and use the
new Distributed Replay Utility in SQL Server 2012. The distributed replay utility can be used to
assess the impact of changes and upgrades by replaying workload activity against a test
environment based on a replay trace captured from the current production SQL Server
environment. Prior to SQL Server 2012, two features existed that provided replay capabilities
for performance benchmarking and stress testing SQL Server based on a replay workload; SQL
Server Profiler trace replay and RML Utilities. Unlike these two tools, Distributed Replay is not
limited to replaying events from a single computer, which allows you to drive higher loads
against the test environment to better simulate mission-critical workloads by driving load from
multiple clients concurrently.

This blog post will show how to configure a Distributed Replay Controller, using a dedicated
server named SQL2012-DRU, and two Distributed Replay Clients using dedicated servers
named SQL2012-DRU1 and SQL2012-DRU2. For the purposes of performing an actual replay
using Distributed Replay in another post, a separate server named SQL2012-DB1 with the
Database Engine Services and the AdventureWorks2008R2 database installed on it will be used.

Create Replay Service Accounts in Active


Directory
The first step in installing and configuring Distributed Replay is to setup the necessary Active
Directory service accounts to run the Distributed Replay Client and Distributed Replay
Controller under. For the purposes of service isolation, the Distributed Replay Clients and
Distributed Replay Controller will make use of separate Active Directory service Accounts. For
the purposes of this blog post, two different accounts will be created. The Distributed Replay
Client will use the SQLskillsDemos\DRUClientSvcAcct as shown in the below screenshots.
The Distributed Replay Controller will use the SQLskillsDemos\DRUCtrlSvcAcct as shown in
the below screenshots:

Install the Replay Controller


With the service accounts setup in Active Directory, we can begin the installation of our
Distributed Replay Controller. To do this run SQL Server 2012 Setup on the controller and
perform a SQL Server Feature Installation. On the Feature Selection page select the
Distributed Replay Client feature.
On the Server Configuration page set the Service Account credentials to the previously created
Active Directory account for the client; in this case SQLSKILLSDEMOS\DRUCtrlSvcAcct.

On the Distributed Replay Controller page, click the Add button and search directory services
for the client service account previous created in Active Directory; in this case
SQLSKILLSDEMOS\DRUClientSvcAcct.

Finish the installation and then close SQL Server Setup.

Install the Replay Clients


With the service accounts setup in Active Directory, we can begin the installation of our
Distributed Replay Client machines. To do this run SQL Server 2012 Setup on each of the
clients to be configured and perform a SQL Server Feature Installation. On the Feature
Selection page select the Distributed Replay Client feature.
On the Server Configuration page set the Service Account credentials to the previously created
Active Directory account for the client. In this case SQLSKILLSDEMOS\DRUClientSvcAcct.

On the Distributed Replay Client page, type in the name of the server that you previously
installed the Distributed Replay Controller service on in the Controller Name box.

Finish the installation and then close SQL Server Setup.

Configure the Windows Firewall for the


Services
In order for the Distributed Replay Clients (SQL2012-DRU1 and SQL2012-DRU2) to connect
and register with the Distributed Replay Controller, in this case SQL2012-DRU, the firewall
must be configured to allow inbound connections for the DReplayClient.exe application on each
of the client machines, as well as for the DReplayController.exe application on the Distributed
Replay Controller. To do this, firewall rules need to be added through the use of the Windows
Firewall with Advanced Security snapin, available through Start | Administrative Tools |
Windows Firewall with Advanced Security, or through the use of NETSH command line
statement executions (detailed later in this blog post).

To add a new firewall rule for the DReplay Client using the Windows Firewall with Advanced
Security snapin, Right-Click on Inbound Rules and click on the New Rule menu
item. Specify Program for the Rule Type and click Next.

On the Program page, click Browse and navigate to C:\Program Files (x86)\Microsoft SQL
Server\110\Tools\DReplayClient and select the DReplayClient.exe executable.

On the Action page select the option Allow the connection and then click Next.
On the Profile page, select the appropriate network profiles/locations for the environment,
generally Domain would be sufficient for most corporate domains, and then click Next.

Finally provide a Name for the rule and click Finish to make the firewall changes.

To setup the firewall rule for the Distributed Replay Controller, follow the same steps but instead
of selecting the DReplayClient folder and DReplayClient.exe application, select the
DReplayController folder and DReplayController.exe application
These rules can also be added using NETSH from the command line using the following
commands:

NETSH advfirewall firewall add rule name="Allow DReplay Client" dir=in


program="C:\Program Files (x86)\Microsoft SQL
Server\110\Tools\DReplayClient\DReplayClient.exe" action=allow

NETSH advfirewall firewall add rule name="Allow DReplay Controller" dir=in


program="C:\Program Files (x86)\Microsoft SQL
Server\110\Tools\DReplayController\DReplayController.exe" action=allow

Start the Services and Verify Client


Registrations
The final step in the process of installing and configuring SQL Server 2012 Distributed Replay is
to start the services and verify that the Distributed Replay Clients register with the Distributed
Replay Controller correctly. To do this start the “Distributed Replay Controller” service from
the Services.msc snap-in or from the command line using NET START on the controller
server. Then start the “Distributed Replay Client” service on from the Services.msc snap-in or
from the command line using NET START on each of the client machines. As each of the
client services starts, verify that the client was able to successfully register itself with the
controller by reading the log file, which is located in the following path:

C:\Program Files (x86)\Microsoft SQL Server\110\Tools\DReplayClient\Log

What you want to see in the DReplay Client Log file is:

2011-11-09 00:41:09:162 OPERATIONAL [Client Service] Microsoft SQL Server


Distributed Replay Client – 11.0.1440.19.
2011-11-09 00:41:09:162 OPERATIONAL [Client Service] (c) Microsoft Corporation.
2011-11-09 00:41:09:162 OPERATIONAL [Client Service] All rights reserved.
2011-11-09 00:41:09:178 OPERATIONAL [Client Service] Current edition is: [Enterprise
Evaluation Edition].
2011-11-09 00:41:09:178 OPERATIONAL [Common] Initializing dump support.
2011-11-09 00:41:09:178 OPERATIONAL [Common] Dump support is ready.
2011-11-09 00:41:09:193 OPERATIONAL [Client Service] Windows service "Microsoft
SQL Server Distributed Replay Client" has started under service account
"SQLSKILLSDEMOS\DRUClientSvcAcct". Process ID is 2928.
2011-11-09 00:41:09:193 OPERATIONAL [Client Service] Time Zone: Eastern Standard
Time.
2011-11-09 00:41:09:193 OPERATIONAL [Client Service] Controller name is "SQL2012-
DRU".
2011-11-09 00:41:09:193 OPERATIONAL [Client Service] Working directory is
"C:\Program Files (x86)\Microsoft SQL Server\110\Tools\DReplayClient\WorkingDir".
2011-11-09 00:41:09:193 OPERATIONAL [Client Service] Result directory is "C:\Program
Files (x86)\Microsoft SQL Server\110\Tools\DReplayClient\ResultDir".
2011-11-09 00:41:09:193 OPERATIONAL [Client Service] Heartbeat Frequency(ms): 3000
2011-11-09 00:41:09:193 OPERATIONAL [Client Service] Heartbeats Before Timeout: 3
2011-11-09 00:41:09:367 OPERATIONAL [Client Service] Registered with controller
"SQL2012-DRU".

What you don’t want to see in the DReplay Client Log file is:

2011-11-09 00:40:50:207 OPERATIONAL [Client Service] Microsoft SQL Server


Distributed Replay Client – 11.0.1440.19.
2011-11-09 00:40:50:223 OPERATIONAL [Client Service] (c) Microsoft Corporation.
2011-11-09 00:40:50:223 OPERATIONAL [Client Service] All rights reserved.
2011-11-09 00:40:50:223 OPERATIONAL [Client Service] Current edition is: [Enterprise
Evaluation Edition].
2011-11-09 00:40:50:223 OPERATIONAL [Common] Initializing dump support.
2011-11-09 00:40:50:239 OPERATIONAL [Common] Dump support is ready.
2011-11-09 00:40:50:239 OPERATIONAL [Client Service] Windows service "Microsoft
SQL Server Distributed Replay Client" has started under service account
"SQLSKILLSDEMOS\DRUClientSvcAcct". Process ID is 776.
2011-11-09 00:40:50:239 OPERATIONAL [Client Service] Time Zone: Eastern Standard
Time.
2011-11-09 00:40:50:239 OPERATIONAL [Client Service] Controller name is "SQL2012-
DRU".
2011-11-09 00:40:50:239 OPERATIONAL [Client Service] Working directory is
"C:\Program Files (x86)\Microsoft SQL Server\110\Tools\DReplayClient\WorkingDir".
2011-11-09 00:40:50:239 OPERATIONAL [Client Service] Result directory is "C:\Program
Files (x86)\Microsoft SQL Server\110\Tools\DReplayClient\ResultDir".
2011-11-09 00:40:50:239 OPERATIONAL [Client Service] Heartbeat Frequency(ms): 3000
2011-11-09 00:40:50:239 OPERATIONAL [Client Service] Heartbeats Before Timeout: 3
2011-11-09 00:40:50:476 CRITICAL [Client Service] [0xC8100013] Failed to register
with controller SQL2012-DRU.

If the client fails to register, and the controller name is correct, you need to verify first that the
firewall rules have been established for the client to allow the appropriate inbound connections
from the controller service and that the firewall rules have been established for the controller to
allow the appropriate inbound connections from the client services. If this all checks out, you
need to go troubleshoot the permissions and setup of the services in the environment, which I’ll
cover in a later post.

Related Posts

 SQL Server 2016 Distributed Replay Errors


 Performing a Distributed Replay with Multiple Clients using SQL Server 2012
Distributed Replay
 The AdventureWorks2008R2 Books Online Random Workload Generator
 New AlwaysOn_health Extended Events Session in SQL Server 2012 RC0
 New Article on SQLPerformance.com comparing “Observer Overhead” of Trace vs
Extended Events

S-ar putea să vă placă și