Howdy,

I had free time in the holidays that I spent playing around with databases of Lync and took notes of what I found and learned and decided to put them in an article to be used as a…let’s say Lync databases anatomy, I’ll be talking about a simple Lync pool installation and databases included with it.


Overview of Lync database architecture

First things first, in Lync there are couple of places that databases are usually installed, depend on your Lync pool design

  • Enterprise front end Pool – Master databases installed on SQL backend server and copy database installed locally on the front end servers
  • Standard front end Pool – both master & copy databases are installed locally on the Front end server (SQL Express)
  • In My lab I have an Enterprise front end pool with a SQL backend server, so I’ll be talking about two locations where databases are installed on the SQL backend and the front end servers. In case of a standard edition front end pool those databases are installed in one location – the front end.

    image

    PowerShell command Get-CsConfigurationStoreLocation can help locating the server used as Lync Backend

    image

    RTC instance, RTC and RTCLOCAL… huh?

    for some engineers with limited understanding of SQL (like me), they might get confused when talking about too many use of the word RTC in a conversation, and if you include RTCLOCAL to the conversation they just start fade away Smile

    so let’s clear things up shall we?

  • Instance: think of a SQL Instance as a container that have Databases inside it.
  • Database: well database is where the data is actually stored
  • taking this definition and apply it to Lync databases we get the following

  • RTC Instance is used by Lync to store all the backend databases, including the master CMS, Response Groups configuration, location database…etc.
  • image

    NOTE: RTC is the default name of the Lync instance, but it can be changed during deployments.

  • RTC Database is used by Lync to store persistent user information like scheduled conferences, contact lists..etc.
  • RTCLOCAL Instance is used by Lync front end server to store a local copy of the master CMS database and other database used for some user information (presence, endpoints..etc.) explained later in this article.
  • image

    you can learn more about RTC & RTCLOCAL from my previous article Simple understanding for Lync CMS

    Lync Databases

    Now let’s talk about the type of each of those databases you see and what are they used for. In Lync there are number of database types I used the way TechNet divided them with small different (full list can be found here)

  • Application
  • Archiving & Monitoring
  • Central management
  • Lync Core
  • Users
  • Application Databases

    following databases are considered “Application” databases

    • CPsdyn: contain dynamic information used by Call Park application like “Orbits”

    image

    • RGSConfig: contain the configuration of the Response Groups, like Agents, Workflows, Queues, Holidays…etc.

    image

    • RGSDyn: contain dynamic “live” information used by the Response Groups
    Archiving & Monitoring

    I think from the name it is obvious what are they used for, just pay attention that usually those databases are installed on a different SQL instance, not the default one.

    • LCSLog: archive information about Instant messaging sessions, P2P calls and conferencing used by the archiving server.
    • LCSCdr: store the call details records used by the monitoring server.
    • QoEMetrics: store information about Quality of Experience used by the monitoring server.
    Central Management
    • XDS: this is the Lync Central management Store (CMS) database, it holds Lync topology, configuration and polices (more details: Simple understanding for Lync CMS)
    • Lis: store location information (network subnets, ports, Switches…etc.) that is used by Lync Location services for E9-1-1 feature.

    image

    Lync Core

    Following databases are usually installed on both the RTC and RTCLOCAL instances

    • RTC: as mentioned before, it store persistent user information (contact list, scheduled conferences…etc.)
    • RTCDyn: Store dynamic “live” data about users (current presence, endpoints user logged in from…etc.)
    Users
    • RTCAB: store the Lync address book information used by Lync address book services
    • RTCXDS: store a back up of user data

    that’s all, a small quick and to the point explanation of Lync Databases types and functionalities, hope you found it helpful.

    Happy New year everyone Smile