Lync 2013 Datenbanken
Mit dem umstieg von Lync 2010 auf Lync 2013 hat Microsoft auch die ein oder andere Datenbank verändert. Diese Seite soll die Datenbanken, ihre Instanz und deren Bedeutung etwas beleuchten.
Wozu so viele SQL-Datenbanken ?
Exchange hat gar keine SQL Datenbank und hostet nur die ein oder andere Postfachdatenbank. Warum muss Lync so viel mit SQL arbeiten und nutzt nicht auch einfach eine kleine Datenbank für die Lync Daten (Buddyliste, Konferenzdaten) und fragt ansonsten das Active Directory? Aus meiner Sicht gibt es da schon ein paar Gründe:
- AD ist langsam
Wen Exchange eine Mail zustellen will, muss es im AD nach dem Empfänger anhand der Proxyadresse suchen und dann über den "HomeMDB" des Postfachs den Zielserver ermitteln und dann über das Routing den weg dorthin bestimmen. Das kann etwas dauern aber ist bei Mails nicht weiter kritisch. Lync hingegen übermittel "Realtime-Messages" (SIP) und da muss es schnell und zuverlässig sein. Daher ist jeder Lync Server quasi mit einer lokalen Datenbank ausgestattet, in der erforderliche Daten liegen - Unabhängigkeit für stabile Funktion
Weiterhin wäre es z.B. für die Telefonie denkbar ungünstig, wenn Wartungsarbeiten am Active Directory die Funktion eingeschränkt wäre. Auch hier helfen lokale Daten
Es ist schon faszinierend wie "robust" die Lync Umgebung betrieben werden kann. Wenn Sie nun wissen, dass auch der Lync Client bestimmte Daten in einem lokalen "Konfigurationcache" hält, dann ist verständlich, warum Lync auch noch funktioniert, wenn die Infrastruktur notleidend ist. Und genau das erwarten wir von einem "Echtzeitsystem".
Die SQL-Instanzen und Server
Lync speichert die Daten aber nicht alle in genau einer SQL-Datenbank, sondern verteilt die Datenbanken zudem auf mehrere Instanzen. Die meisten davon sind "kostenfrei" SQL-Express-Datenbanken. Nur wer einen Enterprise Pool mit mehreren Frontend Servern installiert, muss eine Backend Datenbank für den Pool Server bereit stellen. Seit Lync 2013 ist dies für Hochverfügbarkeit bevorzugt ein SQL Serverpaar, welches die Datenbanken per "Mirroring" spiegelt/repliziert. Ein dritter SQL-Express dient als Wittness-Server.
Instanz | Server | Beschreibung |
---|---|---|
RTC |
Standard |
Alle Datenbanken eines Pools liegen auf dem SQL-Backend Server oder auf dem Standard Server In der Regel werden auch die QoE, CDR, Archiv, PersistentChat-Datenbanken dort mit abgelegt. Beim Enterprise-Pool kann der Namen der Instanz selbst gewählt werden. Die Monitoring-Datenbanken müssen auf einem "großen" SQL-Server liegen. |
RTCLOCAL |
Frontend |
Jeder Lync Server hat lokal eine SQL-Express Instanz mit dem Namen RTCLOCAL |
LYNCLOCAL |
Frontend |
Jeder Lync Server hat lokal eine SQL-Express Instanz mit dem Namen LYNCLOCAL, in der das Lync Store System (Lync LySS) seine Daten speichert |
Die lokalen Instanzen "RTCLOCAL" und "LYNCLOCAL" sind SQL-Express Datenbanken. Auf dem Standard Server ist die Instanz "RTC" ebenfalls eine SQL-Express-Version.
Datenbanken und Instanzen
Lync verteilt während der Installation einige Datenbanken auf die verschiedenen Instanzen
Achtung: Das Datenmodell einiger Datenbanken ist "FULL", d.h. wenn Sie keine Sicherung des SQL-Servers machen, laufen ihnen die Transaktionsprotokolle oder die Festplatte voll.
Wenn Sie selbst mit SQL Management Studio von einem anderen Server aus nachschauen wollen, dann müssen Sie erst die entsprechenden Ports in der Firewall öffnen, da die SQL-Instanzen sonst nicht über das LAN erreichbar sind.
DB-Name |
BE/Instanz |
FE/RTCLOCAL |
FE/LYNCLOCAL |
Beschreibung |
---|---|---|---|---|
xds |
FULL |
Simple |
|
Die XDS-Datenbank enthält die zentrale Konfiguration der Lync Umgebung, d.h. Topologie, Policies, Dialpläne, Voice-Routen etc. Sie wird als Read-Only-Kopie auf alle Lync Server repliziert. |
lis |
FULL |
|
|
Enthält die „Location Information Datenbank mit der Zuordnung von IP-Adressen zu Standorten |
rtc |
na |
Simple |
|
Enthält die „statischen“ Daten von Benutzern, z.B. Kontakte, Buddy-Listen, Gruppen, Privacy-Einstellungen, geplante Konferenzen. |
rtcdyn |
na |
Simple |
|
Speichert die dynamischen Informationen. primär also der Präsenzstatus |
rtcxds |
FULL |
|
|
Backend Datenbank für die Benutzerdaten. Diese Datenbank wird ohne Backup vermutlich die erste sein, die "Out of Disk" läuft. |
rtcshared |
FULL |
|
|
Hält u.a. die Konferenzverzeichnisse |
rtcab |
FULL |
|
|
Enthält das Lync Adressbuch zur Generierung als Download |
CpsDyn |
FULL |
|
|
Dynamische Daten für Call Park |
Rgsconfig |
FULL |
|
|
Konfiguration der Lync Response Groups |
Rgsdyn |
FULL |
|
|
Dynamische Daten für den Betrieb der ResponseGroups |
LySS |
|
|
Simple |
Lync Storage System Replication (Lync LySS) |
LCSLog |
|
|
|
Enthält die archivierten Kurzmitteilungen, sofern genutzt |
LcsCDR |
FULL |
|
|
Monitoringdaten mit Verbindungsdaten |
QoEMetrics |
FULL |
|
|
Monitoringdaten zur Verbindungsqualität |
MGC |
|
|
|
Persistent Chat |
Mgccomp |
|
|
|
Persistent Chat Compliance |
Beim schnellen Überblick ist gut zu sehen, dass die LySS-Datenbank die einzige auf der LYNCLOCAL-Instanz ist und auch die RTCLOCAL-Instanz neben dem XDS-Replikat nur die RTC und RTCDYN vorhält. Diese sind aber die wichtigen Datenbanken, die zum Benutzer die Buddylisten und den aktuellen Status vorhalten und entsprechend die ein oder andere Transaktion verursachen.
Die "Backenddatenbank" auf dem SQL-Backend Server bzw. als Instanz RTC mit auf dem Standard Server enthält neben dem XDS-Master auch all die anderen Datenbanken, die für den Pools von allen Servern genutzt werden.
Berechtigungen auf Datenbanken
Die Datenbanken werden durch den Topology-Builder oder "Install-CSDatabase" angelegt. Der ausführende Benutzer muss dazu auf dem SQL-Server Admin sein. Gerade in größeren Umgebungen mit gemeinsam genutzten SQL-Servern ist dies nicht einfach möglich. Dann wird man den SQL-Admin temporär zum Lync Admin machen.
- Deployment Permissions für SQL Server
http://technet.microsoft.com/en-us/library/gg398375.aspx
Nach der Anlage der Datenbanken können Sie sich gerne einmal die Berechtigungen anschauen. Sie sind sehr restriktiv eingestellt, d.h. keiner der Lync Server oder Administratoren ist danach DBOwner einer Datenbank oder des Servers. Die Berechtigungen wird an den RTC-Gruppen festgemacht.
- RTCComponentUniversalServices
- RTCUniversalReadOnlyAdministratoren
- RTCUniversalServerAdministratoren
- RTCHSUniversalServices
Diese Gruppen werden in SQL auch als "Logins" angelegt. Wenn Sie also zwecks Auswertungen z.B. direkt in den Datenbanken "lesen" wollen, dann reicht es das ausführende Konto in eine dieser Gruppen aufzunehmen.
- Microsoft Lync Server 2013
Enterprise Pool Database
Permissions
http://terenceluk.blogspot.co.uk/2012/12/microsoft-lync-server-2013-enterprise.html
sysadmin Berechtigungen
Da die meisten SQL-Instanzen ja nur von Skype for Business / Lync genutzt werden, ist es natürlich auch interessant, wer "sysadmin" auf den Instanzen ist. Eine kleine Ausnahme ist vielleicht die Backend Datenbank bei einem Enterprise Pool, welche durchaus auf einer SQL-Instanz laufen kann, die auch andere Datenbanken beherbergt. Die Liste hier gibt wieder, welche Einstellungen auf einen frischen und exklusiven Installation vorhanden sind:
Instant | Sysadmin |
---|---|
Frontend\LYNCLOCAL |
|
Frontend\RTCLOCAL |
|
Backend |
|
Gegebenenfalls wird ihr Administrator noch weitere Benutzer als Sysadmin addieren, z.B. SCOM-Monitoring, Backup-Dienstkonten etc.
Weitere Links
- Lync LySS
- Konfigurieren von SQL Server für Lync Server 2013
http://technet.microsoft.com/de-de/library/gg425848.aspx http://technet.microsoft.com/en-us/library/gg425848.aspx - Deployment Permissions für SQL Server
http://technet.microsoft.com/en-us/library/gg398375.aspx - Unterstützte
Datenbanksoftware
http://technet.microsoft.com/de-de/library/gg398990.aspx - Installieren von Datenbanken
mithilfe der Lync
Server-Verwaltungsshell
http://technet.microsoft.com/de-de/library/gg398832.aspx - Platzierung von SQL
Server-Daten und Protokolldatei
http://technet.microsoft.com/de-de/library/gg398479.aspx - Microsoft Lync Server 2013
Enterprise Pool Database
Permissions
http://terenceluk.blogspot.co.uk/2012/12/microsoft-lync-server-2013-enterprise.html - Remove orphan Lync object
from the DB
https://social.technet.microsoft.com/Forums/office/en-US/3a546454-a1c8-497f-87e8-e38b46ead2fe/remove-orphan-lync-object-from-the-db?forum=lyncdeploy