
Cet article est inspiré du technet “SQL Server Data and Log File Placement” et du blog Inside Lync qui a publié, il y a quelques temps, sur les bases de données dans Lync Server 2010.
J’ai du m’occuper de créer des scripts de sauvegarde sur Lync et donc m’attacher à bien comprendre comment fonctionne les bases de données dans Lync.
Pour commencer, je pars d’un postulat de départ qui est : le serveur “Monitoring” considéré comme optionnel dans les différents process d’installation, est installé obligatoirement (tout du moins dans les environnements que je mets en place) en effet, ce rôle est primordial si vous ne voulez pas que vos administrateurs fonctionnent à l’aveugle! il requière des bases de données et donc je vais les intégrer dans mon explication.
Lync pour fonctionner a besoin de différentes bases de données pour stocker toutes les informations concernant son bon fonctionnement. Nous allons ici les découper en 4 fonctions que je reparti, c’est ma manière de faire, en deux instances.
1. CMS (Central Management Store)
Le CMS contient 2 bases de données.
- Xds : permet de maintenir la configuration de la topologie actuelle de l’environnement Lync, elle contient la topologie, les différentes politiques de fonctionnement, les tables de routage Voix… la base xds master est déployée sur la première instance du serveur Standard ou sur le premier Front End d’une édition entreprise. Tous les serveurs de l’environnement en ont une réplique locale en lecture seule.
- Pour sauvegarder cette base de données, il faut passer par une cmdlet Lync : Export-CsConfiguration
- Lis : pour le service E-911. Il est obligatoire d’avoir des renseignements extrêmement précis sur la localisation des utilisateurs lorsque ces personnes sont sur le territoire des Etats-Unis pour les services d’urgences. Toutes ces informations sont stockées dans cette base.
- Pour sauvegarder cette base de données, il faut passer par une cmdlet Lync : Export-CsLisConfiguration
2. PCS (Pool Configuration Store)
Le PCS contient 4 bases de données.
- Rtc : contient toutes les données persistantes des utilisateurs : liste des contacts, conférences planifiées, listes des contrôles d'accès…
- Pour sauvegarder cette base de données, on retrouve une bonne vieille méthode déjà utilisée dans OCS : dbimpexp.exe (cet outil se trouve dans \Program Files\Common Files\Microsoft Lync Server 2010\Support)
- Rtcdyn : stocke les informations dynamiques sur l'utilisateur, comme les informations de présence par exemple.
- Il n'y a pas forcément d'intérêt à sauvegarder cette base, si toutefois vous souhaitez le faire, on peut le faire par le biais des backup sql.
- Rtcab : (Real Time Communication Address Book) stocke le carnet d'adresse de Lync, il est synchronisé avec l'AD.
- Il n'y a pas forcément d'intérêt à sauvegarder cette base, elle sera repeuplée lors de la synchronisation avec l'AD.
- Rtcab1 : identique à la base rtcab , c'est une copie secondaire présente pour une optimisation des performances.
3. AS (Application Store)
L'AS contient 3 bases
- Cpsdyn : contient les informations dynamiques utiles à l'application de Call Park
- Il n'y a pas d'intérêt à sauvegarder cette base
- Rgsdyn : contient les données transitoires pour l'application Response Group telles que les informations d'attente d'appels ou encore le statuts des agents connectés.
- Il n'y a pas d'intérêt à sauvegarder cette base
- Rgsconfig : contient les données de configuration de l'application Response Group: les groupes, les files d'attentes, les workflows…
- Pour sauvegarder cette base, il y a un outil dans le "resource kit" qui s'appelle rgsImportExport.ps1
4. AMS (Archiving and Monitoring Store)
L'AMS contient 3 bases, mon opinion est de les stocker sur une instance différente des autres bases, voir, si vous avez un environnement très important (genre plus de 80000 utilisateurs) sur 2 instances différentes.
- Lcslog: (Archiving) contient les archives de toutes les conversations instantanées (IM) et des conférences.
- La sauvegarde de cette base se fait avec les outils de backup SQL.
- Lcscdr: contient tous les CDR (call detail records)
- La sauvegarde de cette base se fait avec les outils de backup SQL.
- QoEMetrics : contient toutes les informations de Quality of Experience.
- La sauvegarde de cette base se fait avec les outils de backup SQL.
Mon schéma à moi pour une grosse infra est le suivant :
Un cluster SQL sur lequel je monte 2 instances : RTC et l’instance d’archiving que j’appelle RTCLOG
un serveur SQL à part avec les Reporting Services (SSRS) sur lequel je monte une instance pour le monitoring que j’appelle RTCMON
ATTENTION : pour l’avoir expérimenté, ne montez pas d’instance avec Reporting Services sur un serveur SQL hébergeant des instances en cluster! ça ne fonctionne pas! Reporting Services ne fonctionne pas en cluster (un moyen de contournement, mais je ne le recommande pas!) et si vous montez co-localisez une instance Stand Alone et une instance en cluster, vous aurez des problèmes avec votre SSRS sans aucune explication dans les logs!
“RTC” qu’est ce?
il peut y avoir confusion : RTC veut dire “Real Time Communication”, et dans Lync, on en voit…partout!
il y a une instance RTC, une base de donnée RTC, une ou des instance RTCLOCAL, des bases de données rtc…quelque chose… etc!
Pour commencer, l’instance RTCLOCAL est présente sur tout les serveurs Lync quelque soit son rôle, elle est en SQLExpress et contient entre autres une réplique locale et en lecture seule de la base xds (vous savez le fameux CMS).
Ensuite, par défaut, l’instance contenant le CMS s’appelle RTC, elle est soit en SQLExpress pour un Lync Standard, soit en SQL Server (STD, ENT, DATACenter mais pas Web ni workgroup!). Je dis par défaut parce que l’on peut très bien imaginer que lors de l’installation, nous décidions de l’appeler autrement (pour la version entreprise)!

Dans la version Entreprise de Lync server 2010, les bases de données sont stockées sur un serveur SQL que l’on appelle le Back-End. Ce rôle ne peut être colocalisé avec aucun autre rôle Lync, par contre, si vous êtes en version Standard, le Back-End est collocalisé avec le servuer Lync Standard puisqu’il est installé sur ce serveur par le wizard d’installation de Lync.

La force du Powershell
Dans cette version, Microsoft nous a fait, à nous administrateurs, un superbe cadeau : le PowerShell! Il nous permet d’administrer entièrement l’environnement et même d’exécuter des commandes sur le Back end!
Dans un premier temps, il faut le retrouver ce back-end et surtout l’instance contenant le CMS
à partir de votre interface powershell sur le serveur, vous allez commencer par importer les cmdlets de Lync avec la commande : import-module Lync
puis éxecutez la commande : Get-CSConfigurationStoreLocation vous aurez en retour le chemin complet de l’instance au format backend.domaine.net\instanceRTC
Pour en savoir un peu plus sur le powershell de Lync, je vous conseille ces 2 sites :
le technet avec son guide de reference des commandes powershell
et le blog Lync Server 2010 PowerShell
Pour la mise en place des bases de données avec Lync
SQL Server Data and Log File Placement
du custom chez Next Hop : Using Lync Server 2010 with a Custom SQL Server Network Configuration
et le guide de déploiement de Lync Server 2010 Entreprise à télécharger.
Voilà!
Amusez vous bien avec Lync!
Eudo
