By design, the Lync Server 2013 Deployment Wizard installs databases and log files in locations based on program logic that determines the optimal placement for a typical Lync Server environment. But what if your deployment requirements are unique and you need databases and log files in specific locations?

Database administrators can use the Lync Server 2013 Management Shell to control database and log file placement in the Lync Server environment. The new DatabasePathMap parameter for the Install-CsDatabase Windows PowerShell cmdlet gives administrators granular placement control over each database and log file--for any server role--in Lync Server 2013.

Author: Rick Kingslan, Microsoft Senior Technical Writer

Publication date: November 20, 2012, Updated January 11, 2014

Product version: Lync Server 2013

Planning for Lync Server 2013 requires critical thinking about the performance impact that the system will have on your current infrastructure. A point of potential contention in larger enterprise deployments is the performance of SQL Server and placement of database and log files to ensure that the performance of Lync Server 2013 is optimal, manageable, and does not adversely affect other database operations. But, what do you do if the Lync Server 2013 Deployment Wizard doesn’t give you the option to place a given database or log file on a specific spindle? The answer to this problem is to use Install-CsDatabase with–DatabasePathMap.

To use Install-CsDatabase and DatabasePathMap, the following items must be understood:

  • Database and log file naming conventions.
  • Format of the definition.
  • Using Install-CsDatabase to install the database and log files.

Data Definition Types and Install-CsDatabase Options

All database and log files for each server role have a distinct name associated with them. Defining the name of the database or log file and the associated path to the desired file path location is the key to using DatabasePathMap. The definition for each database and log file is provided in Table 1.

Table 1. Server roles and the defined naming for the database and log files used for assigning paths with DatbasePathMap

Server Role

Database Definition Types

LYSS (LyncLocal instance on local computer

LyssStore:LyssDatabase:DbPath

LyssStore:LyssDatabase:LogPath

Registrar (RTCLOCAL instance on local computer)

RtcDatabaseStore:RtcDatabase:DbPath

RtcDatabaseStore:RtcDatabase:LogPath

RtcDatabaseStore:RtcDatabase:DynDbPath

RtcDatabaseStore:RtcDatabase:DynLogPath

XDS (Central Management store)

CentralMgmtStore:XdsDatabase:DbPath

CentralMgmtStore:XdsDatabase:LogPath

LIS (Central Management store)

CentralMgmtStore:LisDatabase:DbPath

CentralMgmtStore:LisDatabase:LogPath

User

BackendStore:BlobStore:DbPath

BackendStore:BlobStore:LogPath

BackendStore:RtcSharedDatabase:DbPath

BackendStore:RtcSharedDatabase:LogPath

ABSStore:AbsDatabase:DbPath

ABSStore:AbsDatabase:LogPath

Application

ApplicationStore:RgsConfigDatabase:DbPath

ApplicationStore:RgsConfigDatabase:LogPath

ApplicationStore:RgsDynDatabase:DbPath

ApplicationStore:RgsDynDatabase:LogPath

ApplicationStore:CpsDynDatabase:DbPath

ApplicationStore:CpsDynDatabase:LogPath

Archiving

ArchivingStore:ArchivingDatabase:DbPath

ArchivingStore:ArchivingDatabase:LogPath

Monitoring

MonitoringStore:MonitoringDatabase:DbPath

MonitoringStore:MonitoringDatabase:LogPath

MonitoringStore:QoEMetricsDatabase:DbPath

MonitoringStore:QoEMetricsDatabase:LogPath

Persistent Chat

PersistentChatStore:MgcDatabase:DbPath

PersistentChatStore:MgcDatabase:LogPath

Persistent Chat Compliance

PersistentChatComplianceStore:MgcCompDatabase:DbPath

PersistentChatComplianceStore:MgcCompDatabase:LogPath

Note: XDS and LIS databases and log files make up the Central Management store that is the database for the Central Management Store server role. Typically, these two datasets are not separated, but are considered one distinct and dependent entity. You cannot have an XDS without a LIS, or a LIS without XDS. Consider placing the two databases and log files together, unless other overriding policies dictate otherwise.

To use the information provided in the table when defining and installing the database configuration, use the Install-CsDatabase cmdlet with the Lync Server Management Shell. The format for Install-CsDatabase (depending on which database you are deploying) is as follows:

Install-CsDatabase -LocalDatabase [-DatabasePathMap @{Database and log file name and path}] [Options]

Install-CsDatabase -CentralManagementDatabase –SqlServerFqdn <FQDN of SQL Server> [-SqlInstanceName <named instance>] [-DatabasePathMap @{Database and log file name and path}] [Options]

Install-CsDatabase -SqlServerFqdn SQLSERVERFQDN -DatabasePathMap $pathmap -DatabaseType User

Where –LocalDatabase installs databases and log files to the local computer SQL Server, -CentralManagementDatabase installs databases and log files to create the Central Management store and -ConfiguredDatabases reads your configured topology document (created by using the Topology Builder) and creates the defined databases.

Caution: If you read the Lync Server Management Shell information on the Install-CsDatabase cmdlet, you will see references to the –DatabaseType parameter. This parameter should only be used cautiously and under the recommendation of Microsoft Customer Support. Typically, you want to use –ConfiguredDatabases for most role-specific database installations.

For details on the full explanation of what the Install-CsDatabase options are, see Install-CsDatabase.

Sample Scenario for Data Definition Types and DatabasePathMap

Bob is the Contoso database administrator. Contoso plans to install Lync Server 2013. Bob has defined specific requirements that define where databases and log files should go, based on the expected performance requirements in their environment.

The plan is to install a Front End pool with a single SQL Server backend for the initial deployment. The backend SQL Server will manage instances for the Central Management store, user, application, archiving and monitoring.

To ensure that the database and log files are deployed to the exact locations that Bob has defined, Bob creates a list of the spindle sets that are defined for each data type with the associated disk drive letters:

D: Central Management store

E: User

F: Application

G: Archiving

H: Monitoring

Bob then defines the hash table referenced by the command:

Central Management Store Definition

$cmsdatapath=@{

"CentralMgmtStore:XdsDatabase:DbPath"="D:\CsData"

"CentralMgmtStore:XdsDatabase:LogPath"="D:\CsLogFiles"

"CentralMgmtStore:LisDatabase:DbPath"="D:\CsData"

"CentralMgmtStore:LisDatabase:LogPath"="D:\CsLogFiles"

}

Bob defines the Install-CsDatabase commands to accomplish his goal:

Install-CsDatabase –CentralManagementDatabase –SqlServerFqdn sqlbe01.contoso.net –SqlInstanceName RTC –DatabaseMapPath $cmsdatapath

The installation of the databases uses the base path of D:\CsData and creates all paths and files needed, while log files will use D:\CsLogFiles. The name of this base path is completely up to Bob.

In similar fashion, Bob creates the installation commands for other server roles, such as Archiving, Monitoring, and the User server roles:

Data Definition

$serverroledatapath=@{

“BackendStore:BlobStore:DbPath”=”E:\CsUserData”

“BackendStore:BlobStore:LogPath”=”E:\CsUserLogFiles”

“BackendStore:RtcSharedDatabase:DbPath”=”E:\CsUserData”

“BackendStore:RtcSharedDatabase:LogPath”=”E:\CsUserLogFiles”

“ABSStore:AbsDatabase:DbPath”=”E:\AbsData”

“ABSStore:AbsDatabase:LogPath”=”E:\AbsLogFiles”

“ArchivingStore:ArchivingDatabase:DbPath”=”G:\ArcData”

“ArchivingStore:ArchivingDatabase:LogPath”=”G:\ArcLogFiles”

“MonitoringStore:MonitoringDatabase:DbPath”=”H:\MonData”

“MonitoringStore:MonitoringDatabase:LogPath”=”H:\MonLogFiles”

“MonitoringStore:QoEMetricsDatabase:DbPath”=”H:\QoEData”

“MonitoringStore:QoEMetricsDatabase:LogPath”=”H:\QoELogFiles”

}

Install-CsDatabase –ConfiguredDatabases –SqlServerFqdn sqlbe01.contoso.net–DatabaseMapPath $serverroledatapath

Summary

Using data definition types and the Windows PowerShell cmdlet Install-CsDatabasw with the DatabasePaths parameter administrators can define the exact location where each database and its respective log files are deployed. This enables organizations to optimize Lync Server 2013 performance

Lync Server Resources

We Want to Hear from You

Keywords: database DatabasePathMap PowerShell Lync Server 2013 Install-CsDatabase