Datenbanken
Hinweis:
Sie können Ihre Citrix Virtual Apps and Desktops™-Bereitstellung mit zwei Verwaltungskonsolen verwalten: Web Studio (webbasiert) und Citrix Studio (Windows-basiert). Dieser Artikel behandelt nur Web Studio. Informationen zu Citrix Studio finden Sie im entsprechenden Artikel in Citrix Virtual Apps and Desktops 7 2212 oder früher.
Eine Citrix Virtual Apps- oder Citrix Virtual Desktops™-Site verwendet drei SQL Server-Datenbanken:
- Site: (auch als Sitekonfiguration bezeichnet) speichert die laufende Sitekonfiguration sowie den aktuellen Sitzungsstatus und Verbindungsinformationen.
- Logging: (auch als Konfigurationsprotokollierung bezeichnet) speichert Informationen über Änderungen an der Sitekonfiguration und administrative Aktivitäten. Diese Datenbank wird verwendet, wenn die Funktion zur Konfigurationsprotokollierung aktiviert ist (Standard = aktiviert).
- Monitoring: speichert von Director verwendete Daten, z. B. Sitzungs- und Verbindungsinformationen.
Jeder Delivery Controller kommuniziert mit der Sitedatenbank. Zwischen dem Controller und den Datenbanken ist die Windows-Authentifizierung erforderlich. Ein Controller kann abgezogen oder ausgeschaltet werden, ohne andere Controller in der Site zu beeinträchtigen. Dies bedeutet jedoch, dass die Sitedatenbank einen Single Point of Failure darstellt. Fällt der Datenbankserver aus, funktionieren bestehende Verbindungen weiter, bis ein Benutzer sich abmeldet oder die Verbindung trennt. Informationen zum Verbindungsverhalten, wenn die Sitedatenbank nicht verfügbar ist, finden Sie unter Lokaler Hostcache.
Citrix empfiehlt Folgendes bezüglich Datenbanken:
-
Regelmäßige Sicherung. Sichern Sie die Datenbanken regelmäßig, damit Sie bei einem Ausfall des Datenbankservers aus der Sicherung wiederherstellen können. Die Sicherungsstrategie für jede Datenbank kann unterschiedlich sein. Weitere Informationen finden Sie unter CTX135207; beachten Sie jedoch, dass sich dies auf CitrixXenDesktopDB bezieht, das nicht mehr unterstützt wird oder für Kunden verfügbar ist.
-
Sichern und stellen Sie die SQL Server-Datenbanken für Site, Monitoring und Logging regelmäßig wieder her. Spezifische Informationen zu SQL Server-Datenbanken finden Sie unter Erstellen vollständiger und differentieller Sicherungen einer SQL Server-Datenbank.
Wenn Ihre Site mehr als eine Zone enthält, stellen Sie sicher, dass die primäre Zone immer die Sitedatenbank enthält. Controller in jeder Zone kommunizieren mit dieser Datenbank.
Hochverfügbarkeit
Es gibt mehrere Hochverfügbarkeitslösungen, die für die Gewährleistung eines automatischen Failovers in Betracht gezogen werden sollten:
- AlwaysOn-Verfügbarkeitsgruppen (einschließlich Basic Availability Groups): Diese auf Unternehmensebene angesiedelte Hochverfügbarkeits- und Notfallwiederherstellungslösung, die in SQL Server 2012 eingeführt wurde, ermöglicht es Ihnen, die Verfügbarkeit für eine oder mehrere Datenbanken zu maximieren. AlwaysOn-Verfügbarkeitsgruppen erfordern, dass die SQL Server-Instanzen auf Windows Server Failover Clustering (WSFC)-Knoten residieren. Weitere Informationen finden Sie unter Windows Server Failover Clustering mit SQL Server.
- SQL Server-Datenbankspiegelung: Die Spiegelung der Datenbank stellt sicher, dass, wenn Sie den aktiven Datenbankserver verlieren, ein automatischer Failover-Prozess innerhalb von Sekunden erfolgt, sodass Benutzer im Allgemeinen nicht betroffen sind. Diese Methode ist teurer als andere Lösungen, da auf jedem Datenbankserver vollständige SQL Server-Lizenzen erforderlich sind. Sie können die SQL Server Express Edition in einer gespiegelten Umgebung nicht verwenden.
- SQL-Clustering: Die Microsoft SQL-Clustering-Technologie kann verwendet werden, um automatisch einem Server zu ermöglichen, die Aufgaben und Verantwortlichkeiten eines anderen ausgefallenen Servers zu übernehmen. Die Einrichtung dieser Lösung ist jedoch komplizierter, und der automatische Failover-Prozess ist in der Regel langsamer als Alternativen wie die SQL-Spiegelung.
- Verwenden der Hochverfügbarkeitsfunktionen des Hypervisors: Bei dieser Methode stellen Sie die Datenbank als virtuelle Maschine bereit und nutzen die Hochverfügbarkeitsfunktionen Ihres Hypervisors. Diese Lösung ist kostengünstiger als die Spiegelung, da sie Ihre vorhandene Hypervisor-Software verwendet und Sie auch die SQL Server Express Edition nutzen können. Der automatische Failover-Prozess ist jedoch langsamer, da es einige Zeit dauern kann, bis eine neue Maschine für die Datenbank gestartet wird, was den Dienst für Benutzer unterbrechen könnte.
Die Local Host Cache-Funktion ergänzt die Best Practices für SQL Server-Hochverfügbarkeit. Local Host Cache ermöglicht Benutzern die Verbindung und Wiederverbindung mit Anwendungen und Desktops, selbst wenn die Sitedatenbank nicht verfügbar ist. Weitere Informationen finden Sie unter Local Host Cache.
Wenn alle Controller in einer Site ausfallen, können Sie die VDAs so konfigurieren, dass sie im Hochverfügbarkeitsmodus arbeiten, wodurch Benutzer weiterhin auf ihre Desktops und Anwendungen zugreifen können. Im Hochverfügbarkeitsmodus akzeptiert der VDA direkte ICA-Verbindungen von Benutzern, anstatt Verbindungen, die vom Controller vermittelt werden. Verwenden Sie diese Funktion nur in dem seltenen Fall, dass die Kommunikation mit allen Controllern fehlschlägt. Die Funktion ist keine Alternative zu anderen Hochverfügbarkeitslösungen. Weitere Informationen finden Sie unter CTX 127564.
Die Installation eines Controllers auf einem Knoten in einer SQL-Clustering- oder SQL-Spiegelungsinstallation wird nicht unterstützt.
Datenbanksoftware installieren
Hinweis:
Ab Version 2411 können Sie Azure SQL Managed Instance für Datenbanken verwenden.
Standardmäßig wird die SQL Server Express Edition installiert, wenn Sie den ersten Delivery Controller™ installieren und keine andere SQL Server-Instanz auf diesem Server erkannt wird. Diese Standardaktion ist in der Regel ausreichend für Proof-of-Concept- oder Pilotbereitstellungen. Die SQL Server Express Edition unterstützt jedoch keine Microsoft-Hochverfügbarkeitsfunktionen.
Die Standardinstallation verwendet die standardmäßigen Windows-Dienstkonten und -Berechtigungen. Weitere Informationen zu diesen Standardeinstellungen, einschließlich der Hinzufügung von Windows-Dienstkonten zur sysadmin-Rolle, finden Sie in der Microsoft-Dokumentation. Der Controller verwendet in dieser Konfiguration das Network Service-Konto. Der Controller benötigt keine zusätzlichen SQL Server-Rollen oder -Berechtigungen.
Bei Bedarf können Sie für die Datenbankinstanz die Option Instanz ausblenden auswählen. Geben Sie beim Konfigurieren der Datenbankadresse in Web Studio die statische Portnummer der Instanz anstelle ihres Namens ein. Weitere Informationen zum Ausblenden einer Instanz der SQL Server-Datenbank-Engine finden Sie in der Microsoft-Dokumentation.
Für die meisten Produktionsbereitstellungen und alle Bereitstellungen, die Microsoft-Hochverfügbarkeitsfunktionen verwenden, empfehlen wir die Verwendung ausschließlich unterstützter Nicht-Express-Editionen von SQL Server. Installieren Sie SQL Server auf anderen Maschinen als dem Server, auf dem der erste Controller installiert ist. Systemanforderungen listet die unterstützten SQL Server-Versionen auf. Die Datenbanken können sich auf einer oder mehreren Maschinen befinden.
Stellen Sie sicher, dass die SQL Server-Software installiert ist, bevor Sie eine Site erstellen. Sie müssen die Datenbank nicht erstellen, aber wenn Sie dies tun, muss sie leer sein. Die Konfiguration von Microsoft-Hochverfügbarkeitstechnologien wird ebenfalls empfohlen.
Verwenden Sie Windows Update, um SQL Server auf dem neuesten Stand zu halten.
Datenbanken über den Siteerstellungs-Assistenten einrichten
Geben Sie die Datenbanknamen und -adressen (Speicherort) auf der Seite Datenbanken im Siteerstellungs-Assistenten an. (Siehe Datenbankadressformate.) Um potenzielle Fehler zu vermeiden, wenn Director den Monitor Service abfragt, verwenden Sie keine Leerzeichen im Namen der Überwachungsdatenbank.
Die Seite Datenbanken bietet zwei Optionen zum Einrichten der Datenbanken: automatisch und mithilfe von Skripts. Im Allgemeinen können Sie die automatische Option verwenden, wenn Sie (der Web Studio-Benutzer und Citrix-Administrator) über die erforderlichen Datenbankberechtigungen verfügen. (Siehe Erforderliche Berechtigungen zum Einrichten von Datenbanken.)
Sie können den Speicherort der Konfigurationsprotokollierungs- und Überwachungsdatenbank später, nach der Siteerstellung, ändern. Siehe Datenbankspeicherorte ändern.
Um eine Site für die Verwendung einer gespiegelten Datenbank zu konfigurieren, führen Sie die folgenden Schritte aus und fahren Sie dann mit den automatischen oder skriptgesteuerten Einrichtungsprozeduren fort.
- Installieren Sie die SQL Server-Software auf zwei Servern, A und B.
- Erstellen Sie auf Server A die Datenbank, die als Prinzipal verwendet werden soll. Sichern Sie die Datenbank auf Server A und kopieren Sie sie dann auf Server B.
- Stellen Sie auf Server B die Sicherungsdatei wieder her.
- Starten Sie die Spiegelung auf Server A.
Um die Spiegelung nach der Siteerstellung zu überprüfen, führen Sie das PowerShell-Cmdlet get-configdbconnection aus, um sicherzustellen, dass der Failover-Partner in der Verbindungszeichenfolge zum Spiegel festgelegt wurde.
Wenn Sie später einen Delivery Controller in einer gespiegelten Datenbankumgebung hinzufügen, verschieben oder entfernen, siehe Delivery Controller.
Automatische Einrichtung
Wenn Sie über die erforderlichen Datenbankberechtigungen verfügen, wählen Sie auf der Seite Datenbanken des Siteerstellungs-Assistenten die Option Datenbanken über Studio erstellen und einrichten. Geben Sie dann die Namen und Adressen der Prinzipaldatenbanken an.
Wenn eine Datenbank unter einer von Ihnen angegebenen Adresse vorhanden ist, muss sie leer sein. Wenn unter einer angegebenen Adresse keine Datenbanken vorhanden sind, werden Sie darüber informiert, dass eine Datenbank nicht gefunden werden kann, und dann gefragt, ob die Datenbank für Sie erstellt werden soll. Wenn Sie diese Aktion bestätigen, erstellt Web Studio die Datenbanken automatisch und wendet dann die Initialisierungsskripts für die Prinzipal- und Replikatdatenbanken an.
Skriptgesteuerte Einrichtung
Wenn Sie nicht über die erforderlichen Datenbankrechte verfügen, bitten Sie jemanden um Hilfe, der diese Rechte besitzt, z. B. einen Datenbankadministrator. Die Reihenfolge ist wie folgt:
-
Wählen Sie auf der Seite Datenbanken im Assistenten zur Siteerstellung die Option Skripte für die manuelle Einrichtung generieren. Diese Aktion generiert die folgenden drei Skripttypen für jede der folgenden Haupt- und Replikatdatenbanken: Site-, Überwachungs- und Protokollierungsdatenbanken.
- Skript mit „SysAdmin“ im Namen. Ein Skript, das die Datenbanken und das Delivery Controller-Login erstellt. Diese Aufgaben erfordern securityadmin-Rechte.
-
Skript mit „DbOwner“ im Namen. Ein Skript, das die Benutzerrollen in der Datenbank erstellt, die Logins hinzufügt und dann die Datenbankschemata erstellt. Diese Aufgaben erfordern
db_owner-Rechte. - Skript mit „Mixed“ im Namen. Alle Aufgaben in einem Skript, unabhängig von den erforderlichen Rechten.
Sie können angeben, wo die Skripte gespeichert werden sollen.
Hinweis:
In Unternehmensumgebungen umfasst die Datenbankeinrichtung Skripte, die von verschiedenen Teams mit unterschiedlichen Rollen (Rechten) bearbeitet werden können:
securityadminoderdb_owner. Falls zutreffend, lassen Sie zuerst „SysAdmin“-Skripte von Administratoren mit der Rollesecurityadminausführen und dann „DbOwner“-Skripte von Administratoren mitdb_owner-Rechten. Sie können diese Skripte auch mit PowerShell generieren. Weitere Informationen finden Sie unter Bevorzugte Datenbankrechtsskripte. -
Geben Sie diese Skripte Ihrem Datenbankadministrator. Der Assistent zur Siteerstellung wird an dieser Stelle automatisch beendet. Sie werden aufgefordert, die Siteerstellung fortzusetzen, wenn Sie später zurückkehren.
Der Datenbankadministrator erstellt dann die Datenbanken. Jede Datenbank muss die folgenden Merkmale aufweisen:
- Verwenden Sie eine Sortierung, die mit
_CI_AS_KSendet. Wir empfehlen die Verwendung einer Sortierung, die mit_100_CI_AS_KSendet. - Aktivieren Sie für optimale Leistung den SQL Server Read-Committed Snapshot. Weitere Informationen finden Sie unter CTX 137161.
- Konfigurierte Hochverfügbarkeitsfunktionen, falls zutreffend.
- Um die Spiegelung zu konfigurieren, stellen Sie die Datenbank zunächst auf das vollständige Wiederherstellungsmodell ein (das einfache Modell ist die Standardeinstellung). Sichern Sie die Hauptdatenbank in einer Datei und kopieren Sie sie auf den Spiegelserver. Stellen Sie dann die Sicherungsdatei auf dem Spiegelserver wieder her. Starten Sie schließlich die Spiegelung auf dem Hauptserver.
Der Datenbankadministrator verwendet das Befehlszeilendienstprogramm SQLCMD oder SQL Server Management Studio im SQLCMD-Modus, um:
- Führen Sie jedes der
xxx_Replica.sqlSkripte auf den Hochverfügbarkeits-SQL-Server-Datenbankinstanzen aus (wenn Hochverfügbarkeit konfiguriert ist). - Führen Sie jedes der
xxx\_Principal.sqlSkripte auf den primären SQL-Server-Datenbankinstanzen aus.
Details zu SQLCMD finden Sie in der Microsoft-Dokumentation.
Wenn alle Skripte erfolgreich abgeschlossen sind, übergibt der Datenbankadministrator dem Citrix-Administrator die drei primären Datenbankadressen.
Web Studio fordert Sie auf, die Site-Erstellung fortzusetzen. Sie werden zur Seite Datenbanken zurückgeleitet. Geben Sie die Adressen ein. Wenn einer der Server, der eine Datenbank hostet, nicht kontaktiert werden kann, wird eine Fehlermeldung angezeigt.
Erforderliche Berechtigungen zum Einrichten von Datenbanken
Sie müssen ein lokaler Administrator und ein Domänenbenutzer sein, um die Datenbanken zu erstellen und zu initialisieren (oder den Datenbankstandort zu ändern). Sie müssen auch bestimmte SQL Server-Berechtigungen besitzen. Die folgenden Berechtigungen können explizit konfiguriert oder durch die Mitgliedschaft in einer Active Directory-Gruppe erworben werden. Wenn Ihre Web Studio-Benutzeranmeldeinformationen diese Berechtigungen nicht enthalten, werden Sie zur Eingabe von SQL Server-Benutzeranmeldeinformationen aufgefordert.
| Vorgang | Zweck | Serverrolle | Datenbankrolle |
|---|---|---|---|
| Datenbank erstellen | Eine geeignete leere Datenbank erstellen | dbcreator |
|
| Schema erstellen | Alle dienstspezifischen Schemas erstellen und den ersten Controller zur Site hinzufügen |
securityadmin* |
db_owner |
| Controller hinzufügen | Controller (außer dem ersten) zur Site hinzufügen |
securityadmin* |
db_owner |
| Controller hinzufügen (Spiegelserver) | Controller-Anmeldung zum Datenbankserver hinzufügen, der sich derzeit in der Spiegelrolle einer gespiegelten Datenbank befindet |
securityadmin* |
|
| Controller entfernen | Controller von der Site entfernen | ** | db_owner |
| Schema aktualisieren | Schema-Updates oder Hotfixes anwenden | db_owner |
* Obwohl technisch restriktiver, können Sie in der Praxis die Serverrolle securityadmin als gleichwertig mit der Serverrolle sysadmin betrachten.
** Wenn ein Controller von einer Site entfernt wird, wird die Controller-Anmeldung am Datenbankserver nicht entfernt. Dadurch soll vermieden werden, dass eine Anmeldung entfernt wird, die von anderen Diensten als diesem Citrix-Produkt auf derselben Maschine verwendet wird. Die Anmeldung muss manuell entfernt werden, wenn sie nicht mehr benötigt wird. Diese Aktion erfordert die Mitgliedschaft in der Serverrolle securityadmin.
Wenn Sie Web Studio verwenden, um diese Vorgänge auszuführen, muss der Web Studio-Benutzer entweder über ein Datenbankserverkonto verfügen, das explizit Mitglied der entsprechenden Serverrollen ist, oder die Anmeldeinformationen eines solchen Kontos angeben können.
Bevorzugte Datenbankberechtigungsskripte
In Unternehmensumgebungen umfasst die Datenbankeinrichtung Skripte, die von verschiedenen Teams mit unterschiedlichen Rollen (Rechten) gehandhabt werden müssen: securityadmin oder db_owner.
Mit PowerShell können Sie die bevorzugten Datenbankberechtigungen angeben. Die Angabe eines nicht standardmäßigen Werts führt zur Erstellung separater Skripte. Ein Skript enthält Aufgaben, die die Rolle securityadmin erfordern. Das andere Skript erfordert nur db_owner-Rechte und kann von einem Citrix-Administrator ausgeführt werden, ohne einen Datenbankadministrator kontaktieren zu müssen.
In den get-*DBSchema-Cmdlets hat die Option -DatabaseRights die folgenden gültigen Werte:
-
SA: Generiert ein Skript, das die Datenbanken und die Anmeldung des Delivery Controllers erstellt. Diese Aufgaben erfordernsecurityadmin-Rechte. -
DBO: Generiert ein Skript, das die Benutzerrollen in der Datenbank erstellt, die Anmeldungen hinzufügt und dann die Datenbankschemata erstellt. Diese Aufgaben erforderndb_owner-Rechte. -
Mixed: (Standard) Alle Aufgaben in einem Skript, unabhängig von den erforderlichen Rechten.
Weitere Informationen finden Sie in der Cmdlet-Hilfe.
Datenbankadressformate
Sie können eine Datenbankadresse in einem der folgenden Formate angeben:
ServerNameServerName\InstanceNameServerName,PortNumber
Für eine AlwaysOn-Verfügbarkeitsgruppe geben Sie den Listener der Gruppe im Feld „Speicherort“ an.
Datenbankstandorte ändern
Nachdem Sie eine Site erstellt haben, können Sie den Speicherort der Datenbanken für die Konfigurationsprotokollierung und das Monitoring ändern. Sie können jedoch den Speicherort der Sitedatenbank nicht ändern. Beachten Sie beim Ändern des Speicherorts einer Datenbank Folgendes:
- Die Daten in der vorherigen Datenbank werden nicht in die neue Datenbank importiert.
- Protokolle können beim Abrufen nicht aus beiden Datenbanken aggregiert werden.
- Der erste Protokolleintrag in der neuen Datenbank zeigt an, dass eine Datenbankänderung vorgenommen wurde, er identifiziert jedoch nicht die vorherige Datenbank.
- Sie können den Speicherort der Konfigurationsprotokollierungsdatenbank nicht ändern, wenn die obligatorische Protokollierung aktiviert ist.
- Das Ändern von Datenbankstandorten zwischen SQL Server und Azure SQL wird nicht unterstützt.
So ändern Sie den Speicherort einer Datenbank:
- Wenn Sie Microsoft SQL Server verwenden, stellen Sie sicher, dass eine unterstützte Version auf dem Server installiert ist, auf dem die Datenbank gespeichert werden soll. Richten Sie bei Bedarf Hochverfügbarkeitsfunktionen ein.
- Melden Sie sich bei Web Studio an, und wählen Sie dann im linken Bereich Einstellungen aus.
- Suchen Sie die Kachel Datenbank, und wählen Sie Bearbeiten aus.
- Auf der Seite Datenbank verwalten wählen Sie die Datenbank aus, für die Sie einen neuen Speicherort angeben möchten, und wählen Sie dann in der Aktionsleiste Datenbank ändern aus.
- Geben Sie den neuen Speicherort und den Datenbanknamen an. Wenn die Datenbank in Azure SQL gehostet wird, geben Sie die Anmeldeinformationen eines Dienstprinzipals mit Berechtigung zur Verwaltung der Datenbank ein.
- Wenn Web Studio die Datenbank erstellen soll und Sie über die entsprechenden Berechtigungen verfügen, klicken Sie auf Fertig. Klicken Sie bei entsprechender Aufforderung auf Fertig, und Web Studio erstellt die Datenbank dann automatisch. Web Studio versucht, mit Ihren Anmeldeinformationen auf die Datenbank zuzugreifen. Schlägt dies fehl, werden Sie zur Eingabe der Anmeldeinformationen des Datenbankbenutzers aufgefordert. Web Studio lädt dann das Datenbankschema in die Datenbank hoch. Die Anmeldeinformationen werden nur für den Zeitraum der Datenbankerstellung gespeichert.
- Wenn Web Studio die Datenbank nicht erstellen soll oder Sie nicht über ausreichende Berechtigungen verfügen, klicken Sie auf Datenbankskript generieren. Die generierten Skripts enthalten Anweisungen zum manuellen Erstellen der Datenbank und gegebenenfalls einer Spiegeldatenbank. Stellen Sie vor dem Hochladen des Schemas sicher, dass die Datenbank leer ist und mindestens ein Benutzer die Berechtigung zum Zugriff auf und zum Ändern der Datenbank hat.
Weitere Informationen
- Datenbank-Dimensionierungstool.
- Dimensionierung der Sitedatenbank und Konfigurieren von Verbindungszeichenfolgen bei Verwendung von SQL Server-Hochverfügbarkeitslösungen.