Update von Datenbankverbindungszeichenfolgen beim Verwenden von SQL Server-Hochverfügbarkeitslösungen
Citrix bietet mehrere PowerShell-Skripte, die XenApp- und XenDesktop-Datenbankverbindungszeichenfolgen aktualisieren, wenn Sie SQL Server Server-Datenbanklösungen mit hoher Verfügbarkeit wie Always On und Spiegelung verwenden.
Die Skripts, die die XenApp- und XenDesktop PowerShell-API verwenden, lauten:
- DBConnectionStringFuncs.ps1: Das Kernskript, das die eigentliche Arbeit ausführt. Dieses Skript enthält allgemeine Funktionen, die die anderen Skripte verwenden.
- Change_XD_Failover_Partner_v1.ps1: Aktualisiert (fügt, ändert oder entfernt) den Failoverpartner. Dieses Skript fordert die Angabe des Failover-Partnerstandorts (FQDN) für jede Datenbank auf. (Wenn Sie einen leeren Failoverpartner angeben, wird der Failoverpartner entfernt. Sie können auch die Option ClearPartner verwenden, um einen Partner zu entfernen.) Legen Sie den Failoverpartner nicht auf denselben Speicherort wie der Prinzipaldatenbankserver fest.
- Change_XD_To_ConnectionString.ps1: Verwendet die bereitgestellten Verbindungszeichenfolgen, um die Verbindungszeichenfolgen für die Datenbanken zu aktualisieren. Dieses Skript stellt sicher, dass bestimmte Citrix Dienste verfügbar sind und ausgeführt werden, und aktualisiert diese Dienste dann in der richtigen Reihenfolge auf allen Controllern auf der Site. Schließen Sie Verbindungszeichenfolgeninformationen für jede Datenbank in Anführungszeichen ein.
-
Change_XD_TO_MultiSubnetFailover.ps1: Schaltet das Hinzufügen und Entfernen von MultiSubnetFailover=Trueum. Wenn Sie Always On Availability Groups verwenden, empfiehlt Microsoft, dass die Verbindungszeichenfolge multiSubnetFailover=True enthält. Diese Option beschleunigt die Wiederherstellung bei Auftreten eines Hochverfügbarkeitsereignisses und wird sowohl für Einzel- als auch für Multi-Subnetzumgebungen 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 Strings ohne die Einstellung bereitzustellen. -
Change_XD_To_Null.ps1
: Setzt alle Verbindungszeichenfolgen auf dem lokalen Host zurück, weil ein Fehler aufgetreten ist. Durch das Zurücksetzen der Verbindungszeichenfolgen auf null versetzt dieses Skript den Controller in einen “anfänglichen” Zustand. Wenn Sie Studio nach dem Ausführen dieses Skripts ausführen, werden Sie gefragt, ob Sie eine Site erstellen oder einer vorhandenen Site beitreten möchten. Dies ist nützlich, wenn etwas schief gelaufen ist und ein Reset erforderlich ist. Nach dem Zurücksetzen können Sie erneut versuchen, die Verbindungszeichenfolgen mit Change_XD_To_ConnectionString.ps1 festzulegen.
Sie können Datenbankverbindungszeichenfolgen auch manuell aktualisieren; siehe Strings manuell aktualisieren. Informationen zum Herunterladen der PowerShell-Skripts finden Sie im Abschnitt Vorgehensweise .
Wichtig:
Dieser Artikel wurde geschrieben und die Skripts wurden auf XenDesktop 7.6 getestet. Diese Dokumentation wird nicht mehr mit späteren Versionen von Citrix Virtual Apps and Desktops gepflegt oder getestet.
Anforderungen und Überlegungen
- Sie müssen ein vollständiger Site-Administrator sein, um die Skripts ausführen zu können.
- Führen Sie die Skripts im PowerShell- Fenster eines Controllers aus. PowerShell v3 ist erforderlich.
- Die XenApp- und XenDesktop-Kernkomponenten müssen installiert und die Site betriebsbereit sein.
- Deaktivieren Sie vor dem Ausführen der Skripts die obligatorische Konfigurationsprotokollierung.
-
Die Option MultiSubnetFailover wird mit .NET 4.5 und höher unterstützt. Die MMC, die Studio auf Windows 7- oder 2008 R2-Computern verwendet, enthält jedoch eine frühere .NET-Version. Daher wird möglicherweise der Fehler „Keyword not supported:
multisubnetfailover
“ angezeigt, wenn Sie Configuration im Studio-Navigationsbereich auswählen. In solchen Fällen können Sie wie folgt patchen oder aktualisieren: - Für .NET 3.5 SP1, Patch mithttp://support.microsoft.com/kb/2654347.
- Für .NET 4.0 wird ein Update auf mindestens 4.0.2 empfohlen. 4.0.3:http://support.microsoft.com/kb/2600211.
Verwenden Sie dann das Change_XD_To_MultiSubnetFailover.ps1
Skript, um die Datenbank-Verbindungszeichenfolgen mit dieser Option zu aktualisieren.
Prozedur
- Laden Sie die Zip-Datei mit den Skripten von Citrix ShareFileherunter.
- Entpacken Sie die Datei.
- Stellen Sie sicher, dass sich DBConnectionStringFuncs.ps1 im selben Ordner wie das ausgeführten Skript befindet, da das ausgeführten Skript Funktionen in DBConnectionStringFuncs.ps1 verwendet.
- Führen Sie das Skript auf einem Controller aus.
Wenn Sie Ihre Site auf Multi-Subnetz-Failover festlegen 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, wird normalerweise eine Meldung angezeigt, die angibt, dass
Server=SQLxxx\\CITRIX\\...
”” inData Source=SQLxxx\\CITRIX\\...
“geändert wird. Die Begriffe Server und Datenquelle sind gleichbedeutend.- Wenn Sie die Verbindungszeichenfolgen bearbeiten möchten, schauen Sie sich an, wie die
Change\_XD\_
Skripts die Funktionen in verwendenDBConnectionStringFuncs.ps1
.
Strings manuell aktualisieren
Um die Zeichenfolgen manuell zu aktualisieren, führen Sie die XenApp- und XenDesktop PowerShell-Cmdlets aus.
Schritt 1. Verschieben Sie SQL-Datenbanken auf einen anderen SQL-Server und weisen Sie die richtigen Berechtigungen zu
- Sichern Sie die Datenbanken auf dem ursprünglichen SQL-Server und stellen Sie sie auf dem neuen SQL-Server wieder her.
- Fügen Sie unter SQL Management Studio > Sicherheit > Anmeldungendie Delivery Controller-Computerkonten hinzu. Beispiel: CORP\DDC01$.
- Klicken Sie beim Hinzufügen der SQL-Anmeldung auf der Seite Benutzerzuordnung auf die drei Citrix-Datenbanken: Standortdatenbank, Überwachungsdatenbank und Protokollierungsdatenbank.
- Fügen Sie für jede der drei Citrix Datenbanken das Delivery Controller-Computerkonto den verschiedenen Datenbankrollen hinzu. Die Site-Datenbank hat viel 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. Abrufen der vorhandenen Datenbankverbindungen (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. Entfernen der vorhandenen Datenbankverbindungen
Öffnen Sie PowerShell auf dem Delivery Controllerals Administrator und führen Sie die folgenden Befehle aus. Dieser Prozess 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 die Fehler weiterhin angezeigt werden, müssen Sie den Server neu starten. Führen Sie den ursprünglichen Befehlssatz neu 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. Angeben der neuen Datenbankverbindungszeichenfolgen
Passen Sie die Variablen an die gewünschte Verbindungszeichenfolge an.
- Für die eigenständige SQL Server-Verbindungszeichenfolge:
Server=SQLServerName; Initial Catalog=DBName; Integrated Security=True
- Für die Verbindungszeichenfolge der Datenbankspiegelung:
Server=PrimarySQLServerName; Initial Catalog=DBName; Integrated Security=True; Failover Partner=SecondSQLServer
- Für Always on High Availability:
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:
Stellen Sie sicher, dass alle vorangegangenen
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 Befehle
Set-LogDBConnection -DBConnection $null
undSet-MonitorDBConnection -DBConnection $null
geben DBUnconfigured anstelle von OK zurück.
Schritt 5. Testen der neuen Datenbankverbindungszeichenfolgen
-
Führen Sie die folgenden Befehle aus, um die Konnektivität mit der 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-->
-
Starten Sie Citrix Studio neu.