Citrix Virtual Apps and Desktops

Datenbanken

Hinweis:

Ab Version 2511 ist Citrix Web Studio (webbasiert) die einzige Verwaltungskonsole für Citrix Virtual Apps and Desktops™. Citrix Studio (MMC-basiert) wurde aus dem Installationsprogramm entfernt. Dieser Artikel gilt nur für 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 Site-Konfiguration bezeichnet) speichert die laufende Site-Konfiguration sowie den aktuellen Sitzungsstatus und Verbindungsinformationen.
  • Logging: (auch als Konfigurationsprotokollierung bezeichnet) speichert Informationen über Site-Konfigurationsänderungen und administrative Aktivitäten. Diese Datenbank wird verwendet, wenn die Funktion zur Konfigurationsprotokollierung aktiviert ist (Standard = aktiviert).
  • Monitoring: speichert von Director verwendete Daten, 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 getrennt 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 weiter, bis ein Benutzer sich abmeldet oder die Verbindung trennt. Informationen zum Verbindungsverhalten, wenn die Site-Datenbank nicht verfügbar ist, finden Sie unter Local Host Cache.

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 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 differenzieller Sicherungen einer SQL Server-Datenbank.

Wenn Ihre Site mehr als eine Zone enthält, stellen Sie sicher, dass die primäre Zone immer die Site-Datenbank 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 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 Windows Server Failover Clustering mit SQL Server.
  • 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 könnte.

Die Local Host Cache-Funktion ergänzt die Best Practices für die SQL Server-Hochverfügbarkeit. Local Host Cache ermöglicht es Benutzern, sich mit Anwendungen und Desktops zu verbinden und wieder zu verbinden, selbst wenn die Site-Datenbank 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. 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 Network Service-Konto. Der Controller benötigt keine zusätzlichen SQL Server-Rollen oder -Berechtigungen.

Bei Bedarf können Sie Instanz ausblenden für die Datenbankinstanz auswählen. Geben Sie beim Konfigurieren der Datenbankadresse in Web 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, 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 auf einer oder mehreren Maschinen residieren.

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.

Einrichten der Datenbanken über den Site-Erstellungsassistenten

Geben Sie die Datenbanknamen und -adressen (Speicherort) auf der Seite Datenbanken im Site-Erstellungsassistenten 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 Skripten. 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 ändern, nachdem Sie die Site erstellt haben. Siehe Datenbankstandorte ä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, siehe Delivery Controller.

Automatische Einrichtung

Wenn Sie über die erforderlichen Datenbankberechtigungen verfügen, richten Sie die Datenbank ein, indem Sie die folgenden Schritte ausführen:

  1. Wählen Sie auf der Seite Datenbanken des Site-Erstellungsassistenten die Option Datenbanken aus Studio erstellen und einrichten.

  2. Geben Sie die Namen und Adressen der Prinzipal-Datenbanken an.

  3. Konfigurieren Sie die folgenden SQL Server-Verbindungsoptionen, um die Sicherheit und Flexibilität Ihrer Datenbankkonnektivität zu verbessern:

    • Verschlüsselung: Geben Sie die Verschlüsselungsstufe für die Verbindung an.

    • Serverzertifikat vertrauen: Wählen Sie diese Option, um die Serverzertifikatsvalidierung zu umgehen.

    • Hostname im Zertifikat: Geben Sie den Hostnamen ein, mit dem das Serverzertifikat übereinstimmen muss. Diese Einstellung gewährleistet eine strengere Zertifikatsvalidierung.

    Weitere Informationen finden Sie in diesem Microsoft-Artikel.

Wenn eine Datenbank unter einer von Ihnen angegebenen Adresse existiert, muss sie leer sein. Wenn Datenbanken unter einer angegebenen Adresse nicht existieren, 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 Initialisierungsskripte für die Prinzipal- und Replikatdatenbanken an.

Skriptgesteuerte Einrichtung

Wenn Sie nicht über die erforderlichen Datenbankrechte verfügen, bitten Sie jemanden um Unterstützung, der diese Rechte besitzt, z. B. einen Datenbankadministrator. Hier ist die Reihenfolge:

  1. Wählen Sie auf der Seite Datenbanken im Site-Erstellungsassistenten die Option Skripte zur manuellen Einrichtung generieren. Diese Aktion generiert die folgenden drei Skripttypen für jede der folgenden Prinzipal- 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) gehandhabt werden können: securityadmin oder db_owner. Falls zutreffend, lassen Sie zuerst “SysAdmin”-Skripte von Administratoren mit der Rolle securityadmin ausführen und anschließend “DbOwner”-Skripte von Administratoren mit db_owner-Rechten. Um diese Skripte zu generieren, können Sie auch PowerShell verwenden. Weitere Informationen finden Sie unter Skripte für bevorzugte Datenbankrechte.

  1. Geben Sie diese Skripte Ihrem Datenbankadministrator. Der Assistent zur Site-Erstellung hält an dieser Stelle automatisch an. Sie werden aufgefordert, die Site-Erstellung fortzusetzen, wenn Sie später zurückkehren.

Der Datenbankadministrator erstellt dann die Datenbanken. Jede Datenbank muss die folgenden Eigenschaften aufweisen:

  • Verwenden Sie eine Sortierung, die mit _CI_AS_KS endet. Wir empfehlen 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.
  • 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 Prinzipal-Datenbank in einer Datei und kopieren Sie diese auf den Spiegelserver. Stellen Sie dann die Sicherungsdatei auf dem Spiegelserver wieder her. Starten Sie schließlich die Spiegelung auf dem Prinzipal-Server.

Der Datenbankadministrator verwendet das Befehlszeilendienstprogramm SQLCMD oder SQL Server Management Studio im SQLCMD-Modus, um:

  • Jedes der Skripte xxx_Replica.sql auf den Hochverfügbarkeits-SQL Server-Datenbankinstanzen ausführen (falls Hochverfügbarkeit konfiguriert ist)
  • Jedes der Skripte xxx\_Principal.sql auf den Prinzipal-SQL Server-Datenbankinstanzen ausführen.

Weitere Informationen zu SQLCMD finden Sie in der Microsoft-Dokumentation.

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

Web Studio fordert Sie auf, die Site-Erstellung fortzusetzen. Sie werden zur Seite Datenbanken zurückgeleitet; führen Sie die folgenden Schritte aus:

  1. Geben Sie die Adressen ein.

  2. Konfigurieren Sie die folgenden SQL Server-Verbindungsoptionen, um die Sicherheit und Flexibilität Ihrer Datenbankkonnektivität zu verbessern:

    • Verschlüsselung: Geben Sie die Verschlüsselungsstufe für die Verbindung an.

    • Serverzertifikat vertrauen: Wählen Sie diese Option, um die Serverzertifikatvalidierung zu umgehen.

    • Hostname im Zertifikat: Geben Sie den Hostnamen ein, mit dem das Serverzertifikat übereinstimmen muss. Diese Einstellung gewährleistet eine strengere Zertifikatvalidierung.

    Weitere Informationen finden Sie in diesem Microsoft-Artikel.

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 Schemata erstellen und den ersten Controller zur Site hinzufügen | securityadmin* | db_owner | | Controller hinzufügen | Einen Controller (außer dem ersten) zur Site hinzufügen | securityadmin* | db_owner | | Controller hinzufügen (Spiegelserver) | Ein Controller-Login 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, kann die Serverrolle securityadmin in der Praxis als gleichwertig mit der Serverrolle sysadmin behandelt werden.

Wenn ein Controller von einer Site entfernt wird, wird die Controller-Anmeldung am Datenbankserver nicht entfernt. Dies soll verhindern, dass eine Anmeldung entfernt wird, die möglicherweise 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 bereitstellen können.

Skripte für bevorzugte Datenbankrechte

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 Datenbankrechte 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 Delivery Controller-Anmeldung erstellt. Diese Aufgaben erfordern securityadmin-Rechte.
  • DBO: Generiert ein Skript, das die Benutzerrollen in der Datenbank erstellt, die Anmeldungen hinzufügt und dann die Datenbankschemata erstellt. Diese Aufgaben erfordern db_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:

  • 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 Datenbanken für die Konfigurationsprotokollierung und das Monitoring ändern. Sie können jedoch den Speicherort der Site-Datenbank nicht ändern. Beachten Sie beim Ändern des Speicherorts einer Datenbank die folgenden Hinweise:

  • Die Daten in der vorherigen Datenbank werden nicht in die neue Datenbank importiert.
  • Protokolle können beim Abrufen von Protokollen 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.
  • Das Ändern von Datenbankstandorten zwischen SQL Server und Azure SQL wird nicht unterstützt.

So ändern Sie den Speicherort einer Datenbank:

  1. 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.
  2. Melden Sie sich bei Web Studio an, und wählen Sie dann im linken Bereich Einstellungen aus.
  3. Suchen Sie die Kachel Datenbank und wählen Sie Bearbeiten aus.
  4. Wählen Sie auf der Seite Datenbank verwalten die Datenbank aus, für die Sie einen neuen Speicherort angeben möchten, und wählen Sie dann in der Aktionsleiste Datenbank ändern aus.
  5. Geben Sie den neuen Speicherort und den Datenbanknamen an. Wenn die Datenbank auf Azure SQL gehostet wird, geben Sie die Anmeldeinformationen eines Dienstprinzipals mit Berechtigung zur Verwaltung der Datenbank ein.
  6. Wenn Web Studio die Datenbank erstellen soll und Sie über die entsprechenden Berechtigungen verfügen, klicken Sie auf Fertig. Klicken Sie auf Fertig, wenn Sie dazu aufgefordert werden, und Web Studio erstellt die Datenbank dann automatisch. Web Studio versucht, mit Ihren Anmeldeinformationen auf die Datenbank zuzugreifen. Wenn dies fehlschlägt, 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.
  7. Wenn Sie nicht möchten, dass Web Studio die Datenbank erstellt, oder Sie nicht über ausreichende Berechtigungen verfügen, klicken Sie auf Datenbankskript generieren. Die generierten Skripte 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 über die Berechtigung zum Zugriff auf und zum Ändern der Datenbank verfügt.

Weitere Informationen

Datenbanken