Citrix Virtual Apps and Desktops

Datenbank

Citrix Virtual Apps- bzw. Citrix Virtual Desktops-Sites verwenden drei SQL Server-Datenbanken:

  • Site: (auch “Sitekonfiguration”) enthält die Konfiguration der ausgeführten Site sowie den aktuellen Sitzungszustand und Verbindungsinformationen.
  • Konfigurationsprotokollierung: (auch “Protokollierung”) enthält Informationen über Änderungen an der Sitekonfiguration und Administratoraktivitäten. Diese Datenbank wird verwendet, wenn die Konfigurationsprotokollierung aktiviert ist (diese ist standardmäßig aktiviert).
  • Überwachung: enthält von Director genutzte Daten, z. B. Sitzungs- und Verbindungsinformationen.

Jeder Delivery Controller kommuniziert direkt mit der Sitedatenbank. Die Windows-Authentifizierung ist für Verbindungen zwischen dem Controller und den Datenbanken erforderlich. Ein Controller kann entfernt oder ausgeschaltet werden, ohne dass dies Auswirkungen auf die anderen Controller in der Site hat. Das bedeutet jedoch, dass die Datenbank einen zentralen Ausfallpunkt bildet. Wenn der Datenbankserver ausfällt, funktionieren vorhandene Verbindungen weiterhin, bis der Benutzer sich abmeldet oder die Verbindung trennt. Informationen zum Verbindungsverhalten, wenn die Sitedatenbank nicht mehr verfügbar ist, finden Sie unter Lokaler Hostcache.

Citrix empfiehlt, dass Sie regelmäßig ein Backup der Datenbanken durchführen, damit diese bei einem Ausfall des Datenbankservers von dem Backup wiederhergestellt werden können. Die Backupstrategie kann für jede Datenbank anders sein. Anweisungen finden Sie unter CTX135207.

Wenn die Site mehr als eine Zone enthält, muss die Sitedatenbank stets in der primären Zone enthalten sein. Controller in jeder Zone kommunizieren mit der Datenbank.

Hohe Verfügbarkeit

Es gibt einige Hochverfügbarkeitslösungen, die Sie in Betracht ziehen können, um automatisches Failover zu gewährleisten:

  • AlwaysOn-Verfügbarkeitsgruppen (einschließlich Basic-Verfügbarkeitsgruppen): Dies ist eine Lösung für hohe Verfügbarkeit und Notfallwiederherstellung, die mit SQL Server 2012 eingeführt wurde. Damit können Sie die Verfügbarkeit für eine oder mehrere Datenbanken maximieren. AlwaysOn-Verfügbarkeitsgruppen erfordern, dass die SQL Server-Instanzen auf Windows Server Failover Clustering-Knoten (WSFC) residieren. Weitere Informationen finden Sie unter Failoverclustering in Windows Server mit SQL Server.
  • Spiegelung der SQL Server-Datenbank: Dies stellt sicher, dass ein automatisches Failover innerhalb weniger Sekunden stattfindet, falls der aktive Datenbankserver ausfällt. Die Benutzer werden in der Regel also nicht beeinträchtigt. Diese Methode ist teurer als die anderen Lösungen, da auf jedem Datenbankserver eine vollständige SQL Server-Lizenz vorliegen muss. Die SQL Server Express Edition kann in einer gespiegelten Umgebung nicht verwendet werden.
  • SQL-Clustering: Mit dieser Technologie von Microsoft können Sie einem Server automatisch erlauben, die Aufgaben und Verantwortlichkeiten eines anderen, fehlerhaften Servers zu übernehmen. Es ist jedoch etwas komplizierter, diese Lösung einzurichten. Zudem ist der automatische Failoverprozess in der Regel langsamer als bei anderen Lösungen (etwa der SQL-Spiegelung).
  • Verwenden der Hochverfügbarkeitsfeatures des Hypervisors: Bei dieser Methode wird die Datenbank als virtuelle Maschine bereitgestellt und die Hochverfügbarkeitsfeatures des Hypervisors werden verwendet. Diese Lösung ist billiger als das Spiegeln, da die bestehende Hypervisorsoftware verwendet wird und Sie zudem SQL Server Express verwenden können. Der automatische Failoverprozess ist jedoch langsamer, da eine neue Maschine u. U. eine Weile braucht, bis sie gestartet wird, und dadurch auch die Datenbank. Möglicherweise wird also der Dienst für Benutzer unterbrochen.

Der lokale Hostcache ergänzt die bewährten Methoden zum Bereitstellen hoher Verfügbarkeit bei SQL Server. Der lokale Hostcache ermöglicht Benutzern die Wiederverbindung mit Anwendungen und Desktops, selbst wenn die Sitedatenbank nicht verfügbar ist. Weitere Informationen finden Sie unter Lokaler Hostcache.

Für den Fall, dass alle Controller einer Site ausfallen, können Sie den VDA so konfigurieren, dass er im Hochverfügbarkeitsmodus arbeitet, damit Benutzer weiterhin auf Desktops und Anwendungen zugreifen können. Im Hochverfügbarkeitsmodus akzeptiert der VDA direkte ICA-Verbindungen von Benutzern anstelle von durch den Controller vermittelten Verbindungen. Verwenden Sie dieses Feature nur in den seltenen Fällen, wenn die Kommunikation mit allen Controllern fehlschlägt. Das Features 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.

Installieren der Datenbanksoftware

Standardmäßig wird zusammen mit dem ersten Delivery Controller SQL Server Express installiert, wenn keine andere Instanz von SQL Server auf dem Server erkannt wird. Diese Standardaktion reicht normalerweise für Machbarkeitsstudien oder Pilotbereitstellungen aus. SQL Server Express unterstützt jedoch keine Microsoft-Hochverfügbarkeitsfunktionen.

Die Standardinstallation verwendet die Standarddienstkonten und -privilegien von Windows. Informationen zu diesen Standards und dem Hinzufügen von Windows-Dienstkonten zur sysadmin-Rolle finden Sie in der Microsoft-Dokumentation. In dieser Konfiguration verwendet der Controller das Netzwerkdienstkonto. Der Controller erfordert keine weiteren SQL Server-Rollen oder -Berechtigungen.

Bei Bedarf können Sie zum Ausblenden der Datenbankinstanz die Option Instanz ausblenden wählen. Geben Sie beim Konfigurieren der Datenbankadresse in Studio die statische Portnummer der Instanz statt des Namens ein. Informationen zum Ausblenden einer Instanz des SQL Server-Datenbankmoduls finden Sie in der Dokumentation von Microsoft.

In den meisten Produktionsbereitstellungen und in Bereitstellungen, in denen Microsoft-Features für hohe Verfügbarkeit verwendet werden, empfehlen wir die ausschließliche Verwendung einer anderen unterstützten SQL Server-Version als SQL Server Express. Installieren Sie SQL Server auf anderen Maschinen als dem Server, auf dem der erste Controller installiert ist. Unter Systemanforderungen werden die unterstützten SQL Server-Versionen aufgeführt. Die Datenbanken können auf einem oder mehreren Computern residieren.

Stellen Sie sicher, dass die SQL Server-Software installiert ist, bevor Sie eine Site erstellen. Sie müssen keine Datenbank erstellen, wenn Sie es jedoch tun, muss sie leer sein. Außerdem empfiehlt sich das Konfigurieren von Microsoft-Features für hohe Verfügbarkeit.

Halten Sie die SQL Server-Installation mit Windows Update auf dem neuesten Stand.

Einrichten der Datenbanken mit dem Assistenten für die Siteerstellung

Legen Sie Namen und Speicherorte der Datenbanken auf der Seite Datenbanken des Assistenten für die Siteerstellung fest. (Siehe Datenbankadressformate.) Zur Vermeidung von Fehlern bei künftigen Abfragen des Überwachungsdiensts durch Director verwenden Sie keine Leerzeichen im Namen der Überwachungsdatenbank.

Die Seite Datenbanken bietet zwei Optionen zum Einrichten der Datenbanken: automatisch und Skriptverwendung. Normalerweise können Sie die automatische Erstellung wählen, wenn Sie die erforderlichen Berechtigungen für die Datenbank haben (Studio-Benutzer und Citrix Administrator). (Siehe Für die Einrichtung von Datenbanken erforderliche Berechtigungen.)

Sie können den Speicherort der Datenbank für Konfigurationsprotokollierung und Überwachung nach dem Erstellen einer Site ändern. Siehe Ändern des Speicherorts von Datenbanken.

Zum Konfigurieren einer Site für die Verwendung einer gespiegelten Datenbank führen Sie die folgenden Verfahren durch und fahren dann mit der automatischen oder skriptbasierten Einrichtung fort:

  1. Installieren Sie SQL Server auf zwei Servern, A und B.
  2. Erstellen Sie auf Server A die Datenbank, die als Hauptdatenbank verwendet werden soll. Sichern Sie die Datenbank auf Server A und kopieren Sie sie anschließend auf Server B.
  3. Stellen Sie auf Server B die Backupdatei 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 Failoverpartner in der Verbindungszeichenfolge für die Spiegelung eingerichtet wurde.

Wenn Sie später einen Delivery Controller in einer gespiegelten Datenbankumgebung hinzufügen, verschieben oder entfernen möchten, gehen Sie wie unter Delivery Controller beschrieben vor.

Automatische Einrichtung

Wenn Sie die erforderlichen Datenbankberechtigungen haben, wählen Sie auf der Seite Datenbanken des Assistenten für die Siteerstellung Datenbanken mit Studio erstellen und einrichten. Geben Sie dann die Namen und Adressen der Hauptdatenbanken an.

Gibt es an einer von Ihnen angegebenen Adresse eine Datenbank, muss sie leer sein. Gibt es an der angegebenen Adresse keine Datenbank, wird eine entsprechende Meldung angezeigt und Sie werden gefragt, ob eine Datenbank erstellt werden soll. Wenn Sie dies bejahen, werden die Datenbanken von Studio automatisch erstellt und die Initialisierungsskripts für die Haupt- und Replikatdatenbanken ausgeführt.

Einrichtung per Skript

Wenn Sie nicht über die erforderlichen Datenbankrechte verfügen, bitten Sie einen Datenbankadministrator oder eine andere Person, die über entsprechende Berechtigungen verfügt, um Hilfe. Verfahren:

  1. Wählen Sie im Assistenten für die Siteerstellung auf der Seite Datenbanken die Option Generieren Sie Skripts, um Datenbanken auf dem Datenbankserver manuell einzurichten. Dadurch werden die folgenden drei Skripttypen für jede der folgenden Hauptdatenbanken und deren Replikate erstellt: Site-, Überwachungs- und Protokollierungsdatenbank.

    • Skript mit “SysAdmin” im Namen. Skript, das die Datenbanken und die Delivery Controller-Anmeldung erstellt. Diese Aufgaben erfordern securityadmin-Rechte.
    • Skript mit “DbOwner” im Namen. Skript, das die Benutzerrollen in der Datenbank erstellt, die Anmeldungen hinzufügt und dann die Datenbankschemas 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 den Speicherort für die Skripts festlegen.

    Hinweis:

    In Unternehmensumgebungen umfasst die Datenbankeinrichtung Skripts, die ggf. von verschiedenen Teams mit unterschiedlichen Rollen (Rechten) verwendet werden: securityadmin oder db_owner. Zunächst werden ggf. “SysAdmin”-Skripts von Administratoren mit der Rolle securityadmin und anschließend “DbOwner”-Skripts von Administratoren mit der Berechtigung db_owner ausgeführt. Zum Generieren der Skripts können Sie auch PowerShell verwenden. Weitere Informationen finden Sie unter Skripts für bevorzugte Datenbankrechte.

  2. Geben Sie die Skripts Ihrem Datenbankadministrator. Der Assistent für die Siteerstellung wird zu diesem Zeitpunkt automatisch angehalten. Wenn Sie später zu diesem Punkt zurückkommen, werden Sie aufgefordert die Siteerstellung fortzusetzen.

Der Datenbankadministrator erstellt dann die Datenbanken. Jede Datenbank muss folgende Merkmale haben:

  • Sortierung, die in _CI_AS_KS endet. Wir empfehlen die Verwendung einer Sortierung, die in _100_CI_AS_KS endet.
  • Zur Gewährleistung der optimalen Leistung aktivieren Sie den SQL Server-Read-Committed-Snapshot. Weitere Informationen finden Sie unter CTX 137161.
  • Konfigurierte Features für hohe Verfügbarkeit (sofern vorhanden).
  • Zum Konfigurieren der Spiegelung legen Sie für die Datenbank das vollständige Wiederherstellungsmodell fest (Standardeinstellung ist das einfache Wiederherstellungsmodell). Sichern Sie die Hauptdatenbank und kopieren Sie die Backupdatei auf den Spiegelungsserver. Stellen Sie dann die Backupdatei auf dem Spiegelungsserver wieder her. Starten Sie dann die Spiegelung auf dem Hauptserver.

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

  • Führen Sie jedes xxx_Replica.sql-Skript an den hoch verfügbaren SQL Server-Datenbankinstanzen aus (sofern hohe Verfügbarkeit konfiguriert ist).
  • Führen Sie jedes xxx\_Principal.sql-Skript an den SQL Server-Hauptdatenbankinstanzen aus.

Weitere Informationen zu SQLCMD können Sie der Dokumentation von Microsoft entnehmen.

Wenn alle Skripts erfolgreich ausgeführt wurden, übergibt der Datenbankadministrator dem Citrix Administrator die drei Hauptdatenbankadressen.

Studio fordert Sie auf, die Siteerstellung fortzusetzen. Sie werden zur Seite Datenbanken zurückgeleitet. Geben Sie die Adressen ein. Wenn einer der Server mit einer Datenbank nicht erreicht werden kann, wird eine Fehlermeldung angezeigt.

Für die Einrichtung von Datenbanken erforderliche Berechtigungen

Zum Erstellen und Initialisieren der Datenbanken (bzw. zum Ändern des Speicherorts einer Datenbank) müssen Sie lokaler Administrator und Domänenbenutzer sein. Sie benötigen zudem bestimmte SQL Server-Berechtigungen. Die nachfolgend aufgeführten Berechtigungen können über eine Active Directory-Gruppenmitgliedschaft explizit konfiguriert oder erworben werden. Wenn Ihre Studio-Anmeldeinformationen diese Berechtigungen nicht umfassen, werden Sie aufgefordert, Benutzeranmeldeinformationen für SQL Server einzugeben.

Vorgang Zweck Serverrolle Datenbankrolle
Erstellen einer Datenbank Erstellen einer geeigneten leeren Datenbank dbcreator  
Erstellen eines Schemas Erstellen aller dienstspezifischen Schemas und Hinzufügen des ersten Controllers zur Site securityadmin* db_owner
Hinzufügen eines Controllers Hinzufügen eines weiteren Controllers (zusätzlich zum ersten) zur Site securityadmin* db_owner
Hinzufügen eines Controllers (Spiegelungsserver) Hinzufügen einer Controller-Anmeldung zu dem Datenbankserver, der derzeit die Spiegelrolle einer gespiegelten Datenbank hat securityadmin*  
Controller entfernen Entfernen eines Controllers von der Site ** db_owner
Aktualisieren eines Schemas Anwenden von Aktualisierungen oder Hotfixes auf das Schema   db_owner

* Zwar ist die securityadmin-Serverrolle technisch restriktiver als die sysadmin-Serverrolle, aber in der Praxis ist sie als gleichwertig anzusehen.

** Wenn Sie einen Controller über Studio oder mit von Studio oder dem SDK generierten Skripts aus einer Site entfernen, wird die Controller-Anmeldung für den Datenbankserver nicht entfernt. Auf diese Weise 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 erforderlich ist. Dazu benötigen Sie die Serverrollenmitgliedschaft securityadmin.

Wenn Sie Studio für diese Vorgänge verwenden, muss der Studio-Benutzer entweder ein Datenbankserverkonto haben, das explizit Mitglied der entsprechenden Serverrollen ist, oder die Anmeldeinformationen eines Kontos angeben können.

Skripts für bevorzugte Datenbankrechte

In Unternehmensumgebungen umfasst die Datenbankeinrichtung Skripts, die von verschiedenen Teams mit unterschiedlichen Rollen (Rechten) verwendet werden müssen: securityadmin oder db_owner.

Mit PowerShell können Sie die bevorzugten Datenbankrechte festlegen. Wenn Sie einen nicht standardmäßigen Wert angeben, werden separate Skripts erstellt. Ein Skript enthält Aufgaben, die die securityadmin-Rolle benötigen. 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 Datenbankschemas 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 Hilfe zum Cmdlet.

Datenbankadressformate

Datenbankadressen können in einem der folgenden Formate angegeben werden:

  • ServerName
  • ServerName\InstanceName
  • ServerName,PortNumber

Geben Sie für AlwaysOn-Verfügbarkeitsgruppen den Listener der Gruppe im Feld “Speicherort” an.

Ändern des Speicherorts von Datenbanken

Nachdem Sie eine Site erstellt haben, können Sie den Speicherort der Datenbanken für Konfigurationsprotokollierung und Überwachung ändern. (Sie können den Speicherort der Sitedatenbank nicht ändern.) Wenn Sie den Speicherort einer Datenbank ändern:

  • Die Daten werden nicht aus der bestehenden Datenbank in die neue Datenbank importiert.
  • Die Protokolle beider Datenbanken können beim Abrufen von Protokollen nicht aggregiert werden.
  • Der erste Protokolleintrag in der neuen Datenbank gibt an, dass eine Datenbankänderung stattfand, die vorherige Datenbank wird jedoch nicht angegeben.

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

Ändern des Datenbankspeicherorts

  1. Vergewissern Sie sich, dass eine unterstützte Version von Microsoft SQL Server auf dem Server installiert ist, auf dem die Datenbank residieren soll. Richten Sie Features für hohe Verfügbarkeit nach Bedarf ein.
  2. Wählen Sie im Studio-Navigationsbereich 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 ein.
  5. Wenn die Datenbank von Studio erstellt werden soll und Sie die notwendigen Berechtigungen haben, klicken Sie auf OK. Wenn Sie dazu aufgefordert werden, klicken Sie auf OK. Die Datenbank wird dann von Studio automatisch erstellt. Studio versucht, mit Ihren Anmeldeinformationen auf die Datenbank zuzugreifen. Wenn dies fehlschlägt, werden Sie zur Eingabe der Anmeldeinformationen des Datenbankbenutzers aufgefordert. Das Datenbankschema wird dann von Studio in die Datenbank hochgeladen. Die Anmeldeinformationen werden nur für den Zeitraum der Datenbankerstellung gespeichert.
  6. Wenn die Datenbank nicht von Studio erstellt werden soll oder Sie die erforderliche Berechtigung nicht haben, klicken Sie auf Skript generieren. Die generierten Skripts enthalten Anweisungen, wie Sie die Datenbank und ggf. die Spiegeldatenbank manuell erstellen. Stellen Sie vor dem Hochladen des Schemas sicher, dass die Datenbank leer ist und dass mindestens ein Benutzer Zugriffs- bzw. Änderungsberechtigung für die Datenbank hat.

Weitere Informationen