XenApp and XenDesktop

Datenbanken

Eine XenApp- oder XenDesktop®-Site verwendet drei SQL Server-Datenbanken:

  • Site: (auch bekannt als Site-Konfiguration) speichert die laufende Site-Konfiguration sowie den aktuellen Sitzungsstatus und Verbindungsinformationen.
  • Konfigurationsprotokollierung: (auch bekannt als Protokollierung) speichert Informationen über Site-Konfigurationsänderungen und administrative Aktivitäten. Diese Datenbank wird verwendet, wenn die Funktion zur Konfigurationsprotokollierung aktiviert ist (Standard = aktiviert).
  • Überwachung: speichert Daten, die von Director verwendet werden, wie z. B. Sitzungs- und Verbindungsinformationen.

Jeder Delivery Controller kommuniziert mit der Site-Datenbank. Die Windows-Authentifizierung ist zwischen dem Controller und den Datenbanken erforderlich. Ein Controller kann abgezogen oder ausgeschaltet werden, ohne andere Controller in der Site zu beeinträchtigen. Dies bedeutet jedoch, dass die Site-Datenbank einen Single Point of Failure darstellt. Wenn der Datenbankserver ausfällt, funktionieren bestehende Verbindungen weiterhin, bis ein Benutzer sich abmeldet oder die Verbindung trennt. Informationen zum Verbindungsverhalten, wenn die Site-Datenbank nicht verfügbar ist, finden Sie unter Lokaler Hostcache.

Wenn Sie einer Site einen Delivery Controller™ hinzufügen, stellen Sie sicher, dass Sie Anmeldeinformationen für diese Maschine zu allen Replikat-SQL-Servern hinzufügen, die Sie für Hochverfügbarkeit verwenden.

Citrix empfiehlt, die Datenbanken regelmäßig zu sichern, damit Sie bei einem Ausfall des Datenbankservers aus der Sicherung wiederherstellen können. Die Sicherungsstrategie für jede Datenbank kann unterschiedlich sein. Anweisungen finden Sie unter CTX135207.

Wenn Ihre Site mehr als eine Zone enthält, bewahren Sie die Site-Datenbank in der primären Zone auf. 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 in SQL Server 2012 eingeführte Hochverfügbarkeits- und Notfallwiederherstellungslösung auf Unternehmensebene 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 https://docs.microsoft.com/de-de/sql/database-engine/availability-groups/windows/always-on-availability-groups-sql-server?redirectedfrom=MSDN&view=sql-server-ver15.
  • SQL Server-Datenbankspiegelung: Die Spiegelung der Datenbank stellt sicher, dass bei Verlust des aktiven Datenbankservers ein automatischer Failover-Prozess innerhalb von Sekunden stattfindet, 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 zu ermöglichen, dass ein Server die Aufgaben und Verantwortlichkeiten eines anderen ausgefallenen Servers übernimmt. Die Einrichtung dieser Lösung ist jedoch komplizierter, und der automatische Failover-Prozess ist typischerweise langsamer als Alternativen wie die SQL-Spiegelung.
  • Verwendung 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 die Benutzer unterbrechen kann.

Die Funktion „Lokaler Hostcache“ ergänzt die Best Practices für Hochverfügbarkeit von SQL Server, indem sie Benutzern ermöglicht, sich mit Anwendungen und Desktops zu verbinden und wieder zu verbinden, selbst wenn die Sitedatenbank nicht verfügbar ist. Weitere Informationen finden Sie unter Lokaler Hostcache.

Wenn alle Controller in einer Site ausfallen, können Sie die VDAs so konfigurieren, dass sie im Hochverfügbarkeitsmodus arbeiten, damit Benutzer weiterhin auf ihre Desktops und Anwendungen zugreifen und diese verwenden 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 den seltenen Fällen, in denen die Kommunikation mit allen Controllern fehlschlägt. Sie ist keine Alternative zu anderen Hochverfügbarkeitslösungen. Weitere Informationen finden Sie unter CTX 127564.

Hinweis

Die Installation eines Controllers auf einem Knoten in einer SQL-Clustering- oder SQL-Mirroring-Installation wird nicht unterstützt.

Datenbanksoftware installieren

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 für Machbarkeitsstudien oder Pilotbereitstellungen ausreichend. SQL Server Express unterstützt jedoch keine Microsoft-Hochverfügbarkeitsfunktionen.

Die Standardinstallation verwendet die Standard-Windows-Dienstkonten und -Berechtigungen. Details 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 Netzwerkdienstkonto. 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 Studio die statische Portnummer der Instanz anstelle ihres Namens ein. Details 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, sollten Sie unterstützte Nicht-Express-Editionen von SQL Server verwenden, die auf anderen Maschinen als dem Server installiert sind, auf dem der erste Controller installiert ist. Der Artikel zu den 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 Überwachungsdienst abfragt, verwenden Sie keine Leerzeichen im Namen der Überwachungsdatenbank.

Die Seite Datenbanken bietet zwei Optionen zum Einrichten der Datenbanken: automatisch und mithilfe von Skripten. Im Allgemeinen können Sie die automatische Option verwenden, wenn Sie (der Studio-Benutzer und Citrix®-Administrator) über die erforderlichen Datenbankberechtigungen verfügen; siehe Erforderliche Berechtigungen zum Einrichten von Datenbanken unten.

Sie können den Speicherort der Konfigurationsprotokollierungs- und Überwachungsdatenbanken später ändern, nachdem Sie die Site erstellt haben. Siehe Datenbankspeicherorte ändern.

Um eine Site für die Verwendung einer Spiegeldatenbank zu konfigurieren, führen Sie die folgenden Schritte aus und fahren Sie dann mit den automatischen oder skriptgesteuerten Einrichtungsprozeduren fort.

  1. Installieren Sie die SQL Server-Software auf zwei Servern, A und B.
  2. 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.
  3. Stellen Sie auf Server B die Sicherungsdatei wieder her.
  4. Starten Sie die Spiegelung auf Server A.

Um die Spiegelung nach dem Erstellen der Site 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, lesen Sie den Artikel Delivery Controller.

Automatische Einrichtung

Wenn Sie über die erforderlichen Datenbankberechtigungen verfügen, wählen Sie auf der Seite Datenbanken des Site-Erstellungsassistenten die Option „Datenbanken aus Studio erstellen und einrichten“ aus und geben Sie dann die Namen und Adressen der Prinzipaldatenbanken an.

Wenn eine Datenbank an einer von Ihnen angegebenen Adresse vorhanden ist, muss sie leer sein. Wenn Datenbanken an einer angegebenen Adresse nicht vorhanden sind, werden Sie darüber informiert, dass eine Datenbank nicht gefunden werden kann, und dann gefragt, ob Sie die Datenbank für sich erstellen lassen möchten. Wenn Sie diese Aktion bestätigen, erstellt Studio die Datenbanken automatisch und wendet dann die Initialisierungsskripte für die Prinzipal- und Replikatdatenbanken an.

Skriptgesteuerte Einrichtung

Wenn Sie nicht über die erforderlichen Datenbankberechtigungen verfügen, muss jemand mit diesen Berechtigungen helfen, z. B. ein Datenbankadministrator. Hier ist die Reihenfolge:

  1. Wählen Sie im Site-Erstellungsassistenten die Option Skripte generieren. Diese Aktion generiert sechs Skripte: zwei für jede der drei Datenbanken (eines für jede Prinzipaldatenbank und ein weiteres für jedes Replikat). Sie können angeben, wo die Skripte gespeichert werden sollen.
  2. Geben Sie diese Skripte Ihrem Datenbankadministrator. Der Site-Erstellungsassistent stoppt an dieser Stelle automatisch; Sie werden aufgefordert, die Site-Erstellung 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_KS“ endet. Citrix empfiehlt die Verwendung einer Sortierung, die mit „_100_CI_AS_KS“ endet.
  • Aktivieren Sie für optimale Leistung den SQL Server Read-Committed Snapshot. Weitere Informationen finden Sie unter CTX 137161.
  • Hochverfügbarkeitsfunktionen sollten bei Bedarf konfiguriert werden.
  • Um die Spiegelung zu konfigurieren, stellen Sie die Datenbank zuerst auf das vollständige Wiederherstellungsmodell ein (das einfache Modell ist die Standardeinstellung). Sichern Sie die Prinzipal-Datenbank in einer Datei und kopieren Sie sie auf den Spiegelserver. Stellen Sie auf der Spiegeldatenbank die Sicherungsdatei auf dem Spiegelserver wieder her. Starten Sie dann die Spiegelung auf dem Prinzipal-Server.

Der Datenbankadministrator verwendet das Befehlszeilendienstprogramm SQLCMD oder SQL Server Management Studio im SQLCMD-Modus, um jedes der xxx_Replica.sql-Skripte auf den hochverfügbaren SQL Server-Datenbankinstanzen (sofern Hochverfügbarkeit konfiguriert ist) auszuführen, und führt dann jedes der xxx_Principal.sql-Skripte auf den Prinzipal-SQL Server-Datenbankinstanzen aus. Details zu SQLCMD finden Sie in der Microsoft-Dokumentation.

Wenn alle Skripte erfolgreich abgeschlossen wurden, übergibt der Datenbankadministrator dem Citrix-Administrator die drei Prinzipal-Datenbankadressen.

In Studio werden Sie aufgefordert, die Site-Erstellung fortzusetzen, und kehren zur Seite Datenbanken zurück. Geben Sie die Adressen ein. Wenn einer der Server, auf denen eine Datenbank gehostet wird, nicht kontaktiert werden kann, wird eine Fehlermeldung angezeigt.

Erforderliche Berechtigungen zum Einrichten von Datenbanken

Sie müssen lokaler Administrator und Domänenbenutzer sein, um die Datenbanken zu erstellen und zu initialisieren (oder den Datenbankspeicherort 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 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 Datenbankersteller  
Ein Schema erstellen Alle dienstspezifischen Schemas erstellen und den ersten Controller zur Site hinzufügen Sicherheitsadministrator* db_owner
Einen Controller hinzufügen Einen Controller (außer dem ersten) zur Site hinzufügen Sicherheitsadministrator* db_owner
Einen Controller hinzufügen (Mirror-Server) Eine Controller-Anmeldung zum Datenbankserver hinzufügen, der sich derzeit in der Spiegelrolle einer gespiegelten Datenbank befindet Sicherheitsadministrator*  
Controller entfernen Controller von der Site entfernen ** db_owner
Schema aktualisieren Schema-Updates oder Hotfixes anwenden   db_owner

* Obwohl technisch restriktiver, sollte die Serverrolle securityadmin in der Praxis als gleichwertig mit der Serverrolle sysadmin behandelt werden.

** Wenn ein Controller aus einer Site entfernt wird, entweder direkt über Desktop Studio oder mithilfe der von Desktop Studio oder dem SDK generierten Skripte, wird die Controller-Anmeldung am Datenbankserver nicht entfernt. Dadurch soll vermieden werden, dass eine Anmeldung entfernt wird, die von Nicht-XenDesktop-Diensten auf derselben Maschine verwendet wird. Die Anmeldung muss manuell entfernt werden, wenn sie nicht mehr benötigt wird; dies erfordert die Mitgliedschaft in der Serverrolle securityadmin.

Wenn Sie Studio zum Ausführen dieser Vorgänge verwenden, muss das Benutzerkonto Mitglied der Serverrolle sysadmin sein.

Datenbankadressformate

Sie können eine Datenbankadresse in einem der folgenden Formate angeben:

  • ServerName
  • ServerName\\InstanceName
  • ServerName,PortNumber

Geben Sie für eine AlwaysOn-Verfügbarkeitsgruppe den Listener der Gruppe im Feld „Speicherort“ an.

Datenbankstandorte ändern

Nachdem Sie eine Site erstellt haben, können Sie den Speicherort der Konfigurationsprotokollierungs- und Überwachungsdatenbanken ändern. (Sie können den Speicherort der Sitedatenbank nicht ändern.) Wenn Sie den Speicherort einer Datenbank ändern:

  • 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 stattgefunden hat, identifiziert jedoch nicht die vorherige Datenbank.

Sie können den Speicherort der Konfigurationsprotokollierungsdatenbank nicht ändern, wenn die obligatorische Protokollierung aktiviert ist.

So ändern Sie den Speicherort einer Datenbank:

  1. Stellen Sie sicher, dass eine unterstützte Version von Microsoft SQL Server auf dem Server installiert ist, auf dem sich die Datenbank befinden soll. Richten Sie bei Bedarf Hochverfügbarkeitsfunktionen ein.
  2. Wählen Sie im Navigationsbereich von Studio die Option Konfiguration aus.
  3. Wählen Sie die Datenbank aus, für die Sie einen neuen Speicherort angeben möchten, und wählen Sie dann im Bereich Aktionen die Option Datenbank ändern.
  4. Geben Sie den neuen Speicherort und den Datenbanknamen an.
  5. Wenn Studio die Datenbank erstellen soll und Sie über die entsprechenden Berechtigungen verfügen, klicken Sie auf OK. Klicken Sie nach der Aufforderung auf OK, und Studio erstellt die Datenbank automatisch. Studio versucht, mit Ihren Anmeldeinformationen auf die Datenbank zuzugreifen. Wenn dies fehlschlägt, werden Sie zur Eingabe der Anmeldeinformationen des Datenbankbenutzers aufgefordert. Studio lädt dann das Datenbankschema in die Datenbank hoch. Die Anmeldeinformationen werden nur für den Zeitraum der Datenbankerstellung gespeichert.
  6. Wenn Studio die Datenbank nicht erstellen soll oder Sie nicht über ausreichende Berechtigungen verfügen, klicken Sie auf Skript generieren. Die generierten Skripte enthalten Anweisungen zum manuellen Erstellen der Datenbank und einer Spiegeldatenbank, falls erforderlich. Stellen Sie vor dem Hochladen des Schemas sicher, dass die Datenbank leer ist und dass mindestens ein Benutzer die Berechtigung zum Zugriff auf und zum Ändern der Datenbank hat.

Weitere Informationen

Größenanpassung der Site-Datenbank und Konfigurieren von Verbindungszeichenfolgen bei Verwendung von SQL Server-Hochverfügbarkeitslösungen.