Erweiterte Konzepte

Datenbankverbindungszeichenfolgen aktualisieren bei Verwendung von SQL Server Hochverfügbarkeitslösungen

Citrix bietet mehrere PowerShell-Skripte an, die die Datenbankverbindungszeichenfolgen von XenApp und XenDesktop® aktualisieren, wenn Sie SQL Server Hochverfügbarkeitsdatenbanklösungen wie Always On und Mirroring verwenden.

Die Skripte, die die XenApp®- und XenDesktop PowerShell-API verwenden, sind:

  • DBConnectionStringFuncs.ps1: Das Kernskript, das die eigentliche Arbeit erledigt. Dieses Skript enthält allgemeine Funktionen, die von den anderen Skripten verwendet werden.
  • Change_XD_Failover_Partner_v1.ps1: Aktualisiert (fügt hinzu, ändert oder entfernt) den Failover-Partner. Dieses Skript fordert den Speicherort (FQDN) des Failover-Partners für jede Datenbank ab. (Die Angabe eines leeren Failover-Partners entfernt den Failover-Partner. Sie können auch die Option ClearPartner verwenden, um einen Partner zu entfernen.) Legen Sie den Failover-Partner nicht am selben Speicherort wie den primären Datenbankserver fest.
  • Change_XD_To_ConnectionString.ps1: Verwendet die bereitgestellten Verbindungszeichenfolgen, um die Verbindungszeichenfolgen zu den Datenbanken zu aktualisieren. Dieses Skript stellt sicher, dass bestimmte Citrix-Dienste ausgeführt werden, und aktualisiert diese Dienste dann in der richtigen Reihenfolge auf allen Controllern in der Site. Schließen Sie die Verbindungszeichenfolgeninformationen für jede Datenbank in Anführungszeichen ein.
  • Change_XD_To_MultiSubnetFailover.ps1: Schaltet das Hinzufügen und Entfernen von MultiSubnetFailover=true um. Wenn Sie Always On-Verfügbarkeitsgruppen verwenden, empfiehlt Microsoft, dass die Verbindungszeichenfolge MultiSubnetFailover=true enthält. Diese Option beschleunigt die Wiederherstellung bei einem Hochverfügbarkeitsereignis und wird sowohl für Einzel- als auch für Multi-Subnetz-Umgebungen empfohlen. Führen Sie dieses Skript einmal aus, um die Option hinzuzufügen. Wenn Sie die Option entfernen müssen, verwenden Sie Change_XD_To_ConnectionString.ps1, um das Skript erneut auszuführen und Zeichenfolgen ohne die Einstellung bereitzustellen.
  • Change_XD_To_Null.ps1: Setzt alle Verbindungszeichenfolgen auf dem localhost zurück, weil etwas schiefgelaufen ist. Durch das Zurücksetzen der Verbindungszeichenfolgen auf null versetzt dieses Skript den Controller in einen „Anfangszustand“. Wenn Sie Studio nach dem Ausführen dieses Skripts starten, werden Sie gefragt, ob Sie eine Site erstellen oder einer vorhandenen Site beitreten möchten. Dies ist nützlich, wenn etwas schiefgelaufen ist und ein Reset erforderlich ist. Nach dem Reset können Sie erneut versuchen, die Verbindungszeichenfolgen mit Change_XD_To_ConnectionString.ps1 festzulegen.

Sie können Datenbankverbindungszeichenfolgen auch manuell aktualisieren; siehe Zeichenfolgen manuell aktualisieren. Die PowerShell-Skripte können Sie im Abschnitt Vorgehensweise herunterladen.

Wichtig:

Dieser Artikel wurde geschrieben und die Skripte wurden mit XenDesktop 7.6 getestet. Diese Dokumentation wird mit späteren Versionen von Citrix Virtual Apps and Desktops nicht mehr gepflegt oder getestet.

Anforderungen und Überlegungen

  • Sie müssen ein vollständiger Site-Administrator sein, um die Skripte auszuführen.
  • Führen Sie die Skripte im PowerShell-Fenster eines Controllers aus. PowerShell v3 ist erforderlich.
  • Die XenApp- und XenDesktop-Kernkomponenten müssen installiert und die Site betriebsbereit sein.
  • Bevor Sie die Skripte ausführen, deaktivieren Sie die obligatorische Konfigurationsprotokollierung.
  • Die Option MultiSubnetFailover wird ab .NET 4.5 unterstützt. Die MMC, die Studio auf Windows 7- oder 2008 R2-Computern verwendet, enthält jedoch eine frühere .NET-Version, sodass möglicherweise der Fehler „Keyword not supported: multisubnetfailover“ angezeigt wird, wenn Sie Konfiguration im Navigationsbereich von Studio auswählen. In solchen Fällen patchen oder aktualisieren Sie wie folgt:

  • Für .NET 3.5 SP1 patchen Sie mit http://support.microsoft.com/kb/2654347.
  • Für .NET 4.0 aktualisieren Sie auf mindestens 4.0.2. 4.0.3 wird empfohlen: http://support.microsoft.com/kb/2600211.

Verwenden Sie dann das Skript Change_XD_To_MultiSubnetFailover.ps1, um die Datenbankverbindungszeichenfolgen mit dieser Option zu aktualisieren.

Vorgehensweise

  1. Laden Sie die ZIP-Datei mit den Skripten von Citrix ShareFile herunter.
  2. Entpacken Sie die Datei.
  3. Stellen Sie sicher, dass sich DBConnectionStringFuncs.ps1 im selben Ordner befindet wie das Skript, das Sie ausführen, da das von Ihnen ausgeführte Skript Funktionen in DBConnectionStringFuncs.ps1 verwendet.
  4. Führen Sie das Skript auf einem Controller aus.

Wenn Sie Ihre Site auf Multi-Subnetz-Failover einstellen möchten, müssen Sie nur das Skript Change_XD_To_MultiSubnetFailover.ps1 ausführen. (Denken Sie daran: Stellen Sie sicher, dass sich das Skript DBConnectionStringFuncs.ps1 im selben Ordner befindet.)

Tipps:

  • Wenn die Verbindungszeichenfolgen aktualisiert werden, ist es normal, eine Meldung zu sehen, die besagt, dass „Server=SQLxxx\\CITRIX\\...“ in Data Source=SQLxxx\\CITRIX\\...“ geändert wird. Die Begriffe Server und Datenquelle sind synonym.
  • Wenn Sie die Verbindungszeichenfolgen bearbeiten möchten, sehen Sie sich an, wie die Skripte Change\_XD\_ die Funktionen in DBConnectionStringFuncs.ps1 verwenden.

Zeichenfolgen manuell aktualisieren

Um die Zeichenfolgen manuell zu aktualisieren, führen Sie die XenApp- und XenDesktop-PowerShell-Cmdlets aus.

Schritt 1. SQL-Datenbanken auf einen anderen SQL-Server verschieben und die richtigen Berechtigungen zuweisen

  1. Sichern Sie die Datenbanken auf dem ursprünglichen SQL-Server und stellen Sie sie auf dem neuen SQL-Server wieder her.
  2. Fügen Sie unter SQL Management Studio > Sicherheit > Anmeldungen die Computerkonten des Delivery Controllers hinzu. Beispiel: CORP\DDC01$.
  3. Klicken Sie beim Hinzufügen der SQL-Anmeldung auf der Seite „Benutzerzuordnung“ auf die drei Citrix-Datenbanken: Site-Datenbank, Überwachungsdatenbank und Protokollierungsdatenbank.
  4. Fügen Sie für jede der drei Citrix-Datenbanken das Computerkonto des Delivery Controller™ zu den verschiedenen Datenbankrollen hinzu. Die Site-Datenbank hat wesentlich mehr Rollen als die Protokollierungs- und Überwachungsdatenbanken.
Site database - ADIdentitySchema_ROLE

Site database - Analytics_ROLE                # for 7.8 and newer
Site database - AppLibrarySchema_ROLE         # for 7.8 and newer
Site database - chr_Broker
Site database - chr_Controller
Site database - ConfigLoggingSiteSchema_ROLE
Site database - ConfigurationSchema_ROLE
Site database - DAS_ROLE
Site database - DesktopUpdateManagerSchema_ROLE
Site database - EnvTestServiceSchema_ROLE
Site database - HostingUnitServiceSchema_ROLE
Site database - Monitor_ROLE
Site database - OrchestrationSchema_ROLE       # for 7.11 and newer
Site database - public
Site database - StorefrontSchema_ROLE          # for 7.8 and newer
Site database - TrustSchema_ROLE               # for 7.11 and newer
Monitoring database - Monitor_ROLE
Monitoring database - public
Logging database - ConfigLoggingSchema_ROLE
Logging database - public
<!--NeedCopy-->

Schritt 2. Vorhandene Datenbankverbindungen abrufen (optional)

Führen Sie die folgenden Befehle aus, um die vorhandenen Datenbankverbindungszeichenfolgen anzuzeigen:

## Load the Citrix snap-ins
asnp Citrix.*

## Get the current Delivery Controller database connections
Get-ConfigDBConnection
Get-AcctDBConnection
Get-AnalyticsDBConnection              #  for 7.6 and newer
Get-AppLibDBConnection                 #  for 7.8 and newer
Get-OrchDBConnection                   #  for 7.11 and newer
Get-TrustDBConnection                  #  for 7.11 and newer
Get-HypDBConnection
Get-ProvDBConnection
Get-BrokerDBConnection
Get-EnvTestDBConnection
Get-SfDBConnection
Get-MonitorDBConnection
Get-MonitorDBConnection -DataStore Monitor
Get-LogDBConnection
Get-LogDBConnection -DataStore Logging
Get-AdminDBConnection
<!--NeedCopy-->

Schritt 3. Vorhandene Datenbankverbindungen entfernen

Öffnen Sie auf dem Delivery Controller PowerShell als Administrator und führen Sie die folgenden Befehle aus. Dieser Vorgang löscht die vorhandenen Datenbankverbindungen.

## Note the state of the log site
Get-LogSite

## Load the Citrix snap-ins
asnp Citrix.*

## Disable configuration logging for the XD site:
Set-LogSite -State Disabled

## Clear the current Delivery Controller database connections

## Note: AdminDBConnection must be the last command

Set-ConfigDBConnection -DBConnection $null -Force
Set-AcctDBConnection -DBConnection $null -Force
Set-AnalyticsDBConnection -DBConnection $null -Force             #  for 7.6 and newer
Set-AppLibDBConnection -DBConnection $null -Force                #  for 7.8 and newer
Set-OrchDBConnection -DBConnection $null -Force                  #  for 7.11 and newer
Set-TrustDBConnection -DBConnection $null -Force                 #  for 7.11 and newer
Set-HypDBConnection -DBConnection $null -Force
Set-ProvDBConnection -DBConnection $null -Force
Set-BrokerDBConnection -DBConnection $null
Set-EnvTestDBConnection -DBConnection $null -Force
Set-SfDBConnection -DBConnection $null -Force
Set-MonitorDBConnection -DataStore Monitor -DBConnection $null -Force
Set-MonitorDBConnection -DBConnection $null -Force
Set-LogDBConnection -DataStore Logging -DBConnection $null -Force
Set-LogDBConnection -DBConnection $null -Force
Set-AdminDBConnection -DBConnection $null -Force
<!--NeedCopy-->

Wenn eine Fehlermeldung angezeigt wird, müssen Sie alle Citrix-Dienste neu starten.

Get-Service Citrix* | Stop-Service -Force
Get-Service Citrix* | Start-Service
<!--NeedCopy-->

Wenn nach dem Neustart der Citrix-Dienste weiterhin Fehler auftreten, müssen Sie den Server neu starten. Führen Sie die ursprünglichen Befehle erneut aus, um zu bestätigen, dass die vorhandene Verbindung ordnungsgemäß entfernt wurde.

Die folgenden Cmdlets müssen eine leere Ausgabe zurückgeben:

## Load the Citrix snap-ins
asnp Citrix.*

## Get the current Delivery Controller database connections
Get-ConfigDBConnection
Get-AcctDBConnection
Get-AnalyticsDBConnection              #  for 7.6 and newer
Get-AppLibDBConnection                 #  for 7.8 and newer
Get-OrchDBConnection                   #  for 7.11 and newer
Get-TrustDBConnection                  #  for 7.11 and newer
Get-HypDBConnection
Get-ProvDBConnection
Get-BrokerDBConnection
Get-EnvTestDBConnection
Get-SfDBConnection
Get-MonitorDBConnection
Get-LogDBConnection
Get-AdminDBConnection
<!--NeedCopy-->

Schritt 4. Neue Datenbankverbindungszeichenfolgen angeben

Passen Sie die Variablen an die gewünschte Verbindungszeichenfolge an.

  • Für die Standalone SQL Server-Verbindungszeichenfolge: Server=SQLServerName; Initial Catalog=DBName; Integrated Security=True
  • Für die Datenbankspiegelungs-Verbindungszeichenfolge: Server=PrimarySQLServerName; Initial Catalog=DBName; Integrated Security=True; Failover Partner=SecondSQLServer
  • Für Always On-Hochverfügbarkeit: Server=ListenerName; Initial Catalog=XDdb; Integrated Security=True; MultiSubnetFailover=True

Führen Sie die folgenden Befehle aus, um die neuen Verbindungszeichenfolgen festzulegen.

$ServerName = "<dbserver>"
$SiteDBName = "<SiteDbName>"
$LogDBName = "<LoggingDbName>"
$MonitorDBName = "<MonitorDbName>"
$csSite = "Server=$ServerName;Initial Catalog=$SiteDBName;Integrated Security=True"
$csLogging = "Server=$ServerName;Initial Catalog=$LogDBName;Integrated Security=True"
$csMonitoring = "Server=$ServerName;Initial Catalog=$MonitorDBName;Integrated Security=True"

Set-AdminDBConnection -DBConnection $csSite
Set-ConfigDBConnection -DBConnection $csSite
Set-AcctDBConnection -DBConnection $csSite
Set-AnalyticsDBConnection -DBConnection $csSite              # for 7.6 and newer
Set-HypDBConnection -DBConnection $csSite
Set-ProvDBConnection -DBConnection $csSite
Set-AppLibDBConnection –DBConnection $csSite                 # for 7.8 and newer
Set-OrchDBConnection –DBConnection $csSite                   # for 7.11 and newer
Set-TrustDBConnection –DBConnection $csSite                  # for 7.11 and newer
Set-BrokerDBConnection -DBConnection $csSite
Set-EnvTestDBConnection -DBConnection $csSite
Set-SfDBConnection -DBConnection $csSite
Set-LogDBConnection -DBConnection $csSite
Set-LogDBConnection -DataStore Logging -DBConnection $null -force
Set-LogDBConnection -DataStore Logging -DBConnection $csLogging
Set-MonitorDBConnection -DBConnection $csSite
Set-MonitorDBConnection -DataStore Monitor -DBConnection $null -force
Set-MonitorDBConnection -DataStore Monitor -DBConnection $csMonitoring

## If necessary, enable configuration logging for the XD site:
Set-LogSite -State Enabled
<!--NeedCopy-->

Hinweis:

Vergewissern Sie sich, dass alle vorhergehenden Set-<service>DBConnection-Befehle das Ergebnis OK zurückgegeben haben. Wenn das Ergebnis für einen dieser Befehle nicht OK ist, kann es erforderlich sein, die Protokollierung oder Ablaufverfolgung zu aktivieren, um die Ursache des Verbindungsfehlers zu ermitteln.

Die Set-LogDBConnection -DBConnection $null und Set-MonitorDBConnection -DBConnection $null geben DBUnconfigured anstelle von OK zurück.

Schritt 5. Testen der neuen Datenbank-Verbindungszeichenfolgen

  1. Führen Sie die folgenden Befehle aus, um die Konnektivität zur Datenbank zu überprüfen.

    ## Load the Citrix snap-ins
    asnp citrix.*
    
    $ServerName = "<dbserver>"
    $SiteDBName = "<SiteDbName>"
    $LogDBName = "<LoggingDbName>"
    $MonitorDBName = "<MonitorDbName>"
    $csSite = "Server=$ServerName;Initial Catalog=$SiteDBName;Integrated Security=True"
    $csLogging = "Server=$ServerName;Initial Catalog=$LogDBName;Integrated Security=True"
    $csMonitoring = "Server=$ServerName;Initial Catalog=$MonitorDBName;Integrated Security=True"
    
    Test-AcctDBConnection -DBConnection $csSite
    Test-AdminDBConnection -DBConnection $csSite
    Test-AnalyticsDBConnection -DBConnection $csSite   # for 7.6 and newer
    Test-AppLibDBConnection -DBConnection $csSite      # for 7.8 and newer
    Test-BrokerDBConnection -DBConnection $csSite
    Test-ConfigDBConnection -DBConnection $csSite
    Test-EnvTestDBConnection -DBConnection $csSite
    Test-HypDBConnection -DBConnection $csSite
    Test-LogDBConnection -DBConnection $csSite
    Test-LogDBConnection -DataStore Logging -DBConnection $csLogging
    Test-MonitorDBConnection -DBConnection $csSite
    Test-MonitorDBConnection -Datastore Monitor -DBConnection $csMonitoring
    Test-OrchDBConnection -DBConnection $csSite       # for 7.11 and newer
    Test-ProvDBConnection -DBConnection $csSite
    Test-SfDBConnection -DBConnection $csSite
    Test-TrustDBConnection -DBConnection $csSite      # for 7.11 and newer
    <!--NeedCopy-->
    
  2. Starten Sie Citrix Studio neu.

Weitere Informationen

Datenbankverbindungszeichenfolgen aktualisieren bei Verwendung von SQL Server Hochverfügbarkeitslösungen