Citrix XenDesktop 7.1x Datenbank Migration vom Standalone SQL-Server zur SQL 2016 / 2017 Mirroring

Die Migration der Citrix Datenbanken ist eine Aufgabe, die jeder Citrix Administrator früher oder später erledigen soll. Hier finden sie die entsprechende Screenshot-Anleitung dazu.

Die offizielle Herstellerdokumentation finden Sie unter folgendem Link: How to Migrate XenDesktop Database to New SQL Server

Konfigurationsschritte

Die Migration der Datenbanken lässt sich in folgende Schritte unterteilen:

01. Sichern Sie alle betroffenen Komponenten (Datenbanken und Citrix Delivery Controller)
02. Wiederherstellungsmodus der Citrix Datenbanken ändern
03. Monitoring und Logging Funktionalität auf allen Delivery Controllern deaktivieren.
04. Einen Full-Backup der drei Citrix Datenbanken inkl. die Backups der Transaktion-Logs erstellen.
05. Die Datenbank-Backups auf den ersten DB-Server (Principal) kopieren.
06. Die Datenbank-Backups auf den zweiten DB-Server (Mirror) kopieren.
07. Die drei DBs auf dem ersten DB-Server (Principal) wiederherstellen.
08. Die drei DBs mit Option RESTORE WITH NORECOVERY auf dem zweiten DB-Server (Mirror) wiederherstellen.
09. Die Login-Accounts für alle DDCs einrichten auf beiden Datenbanken erstellen
10. Das Mapping und die Rollen-Mitgliedschaft bzw. Zugriffsberechtigung anpassen
11. Die Spiegelung für die drei Citrix DBs einrichten
12. Die bestehenden Datenbank-Verbindungen zwischen den DDCs und die DB trennen. (auf jedem Delivery Controller)
13. Die die migrierten Datenbanken anbinden (auf jedem Delivery Controller)
14. Die bestehende Kommunikation Verifizieren
15. Monitoring und Logging aktivieren

Migration DB to Mirroring SQL

Eine Datenbank-Spiegelung zwischen zwei unterschiedlichen Versionen von SQL Server ist nicht möglich (ob es technisch geht?). Auf den beiden Servern (Principal und Mirror) muss dieselbe Version von SQL Server installiert sein. Der Witness-Server darf auf einer beliebigen Version, die die Spiegelung unterstützt, installiert werden.

 

2. Wiederherstellungsmodus ändern

Diesen Schritt wird auf dem Standalone-SQL-Server ausgeführt. Passen Sie die Eigenschaften der drei aktuellen Citrix-Datenbanken (Site, Monitoring, Logging) an.

Recovery Mode 01 Citrix

Soll Zustand

Recovery Mode 02 Citrix

 

3. Monitoring und Logging Funktionalität deaktivieren

Die schnellste Methode dafür, ist die Verwendung den folgenden PowerShell Befehlen:

##Disable Monitoring
Set-MonitorConfiguration -DataCollectionEnabled $false
##Disable Configuration Logging
Set-LogSite -State Disabled

Disable Monitoring

 

4. Backup der Citrix Datenbanken erstellen

Diese Schritte wirden auf dem Standalone-SQL-Server ausgeführt.

1. Datenbank auswählen > Tasks > Sichern > Sichrungstyp: Vollständig

05 Create CTX DB

2. Sichrungstyp: Vollständig

Ein­fach­heits­hal­ber verwerde ich den Standardpfad: 
SQL 2016: - C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup
SQL 2017: - C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup 

06 Create CTX DB

01 Backup Abgeschlossen

3. Datenbank auswählen > Tasks > Sichern > Sichrungstyp: Transaktionsprotokoll

07 Create CTX DB

01 Backup Abgeschlossen

4. Für weitere Datenbanken wiederholen (Monitoring, Logging):

08 Create CTX DB

 

 

5 - 6. Die Backups kopieren

Kopieren Sie die erstellten DBs auf beiden Datenbank-Server.

C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup

Datenbanken Kopieren

 

7. DBs auf dem Principal-Server wiederherstellen

1. Datenbanken > Rechtemaustaste > Datenbank wiederherstellen

10 Create CTX DB

2.  Quelle auswählen

11 Create CTX DB

3. Hinzufügen

12 Create CTX DB

4. Die Datenbank auswählen

13 Create CTX DB

5. In diesem Fall werden keine weiteren Optionen angepasst.  Wiederherstellungsstatus: RESTORE WITH RECOVERY

Den Wizard mit OK beenden.

15 Create CTX DB

 

8. DBs auf dem Mirror-Server wiederherstellen

Wiederholen Sie die Schritte 1-5. Klicken Sie auf die Registerkarte Optionen.  In diesem Fall RESTORE WITH NORECOVERY auswählen.

16 Create CTX DB

 

 

9. Login-Accounts erstellen

Führen folgende Befehlskette auf jedem DB-Server aus.

create login [Domainname\DC-Servername$] from windows

sql create login from windows

 

10. Berechtigung anpassen

Passen Sie die Berechtigung des oberen User-Accounts (Machine Account: CTX-DDC1$) an, falls die Berechtigung/Rollen nicht automatisch übernommen wird. 

Account auswählen > Rechtemaustaste > Eingenschaften

01 user permissions

Logging Datenbank

01 UserBerechtigung Logging DB

Monitoring Datenbank

02 UserBerechtigung Monitoring DB

Site Datenbank

03 UserBerechtigung Site DB04 UserBerechtigung Site DB

  

11. Datenbank Spiegelung Wizard Step-by-Step

1

01 SQL Mirroring Wizard

2

02 SQL Mirroring Wizard

3

03 SQL Mirroring Wizard

4.

04 SQL Mirroring Wizard

5.

05 SQL Mirroring Wizard

6.

06 SQL Mirroring Wizard

7.

07 SQL Mirroring Wizard

8.

08 SQL Mirroring Wizard

9.

09 SQL Mirroring Wizard

10.

10 SQL Mirroring Wizard

11.

11 SQL Mirroring Wizard

12.

12 SQL Mirroring Wizard

13.

13 SQL Mirroring Wizard

14.

14 SQL Mirroring Wizard

15.

15 SQL Mirroring Wizad

Wiederholen Sie die oberen Schritte auch für zwei weiteren Datenbanken: Logging und Monitoring

16. Wenn folgende Fehlermeldung auftritt, handelt es sich höchstwahrscheinlich um einen Bug in SQL Management Studio ab 17.x. Die alte Version 16.x funktioniert fehlerfrei.

Fehler beim Starten der Spiegelung. Die DB-Name-Datenbank kann nicht geöffnet werden. Sie wird zurzeit wiederherstellt. (Microsoft SQL Server, Fehler: 927)

16 SQL Mirroring Wizard

17. Endergebnis

Principal Instance:

17 1 SQL Mirroring Wizad

Mirror Instance:

17 2 SQL Mirroring Wizad

 

12. Datenbank-Verbindungen zwischen den DDCs und die DB trennen 

Auf den Citrix Delivery Controller alle bestehenden Datenbank-Verbindungen zwischen Citrix und SQL Server trennen.

## Kommunikation zwischen DDCs und der Datenbank trennen:
Set-ConfigDBConnection -DBConnection $null
Set-AcctDBConnection -DBConnection $null
Set-AnalyticsDBConnection -DBConnection $null # 7.6 and newer
Set-AppLibDBConnection -DBConnection $null # 7.8 and newer
Set-OrchDBConnection -DBConnection $null # 7.11 and newer
Set-TrustDBConnection -DBConnection $null # 7.11 and newer
Set-HypDBConnection -DBConnection $null
Set-ProvDBConnection -DBConnection $null
Set-BrokerDBConnection -DBConnection $null
Set-EnvTestDBConnection -DBConnection $null
Set-SfDBConnection -DBConnection $null
Set-MonitorDBConnection -DataStore Monitor -DBConnection $null
Set-MonitorDBConnection -DBConnection $null
Set-LogDBConnection -DataStore Logging -DBConnection $null
Set-LogDBConnection -DBConnection $null
Set-AdminDBConnection -DBConnection $null -force

DB Connection Null Citrix 

13. Die bereits migrierten Datenbanken anbinden (auf jedem Delivery Controller)

##
## Ersetzen Sie durch den neuen SQL-Server und die Instanz, falls vorhanden
## Ersetzen Sie durch den Namen Ihrer wiederhergestellten Datenbank
## Beispiel:
### $ServerName=”PrinzipalSQLServerDNSName.domain.com”
### $DBName =”CitrixSitekonfigurationDatenbank”
### $LogDBName = “CitrixProtokollierungDatanbank”
### $MonitorDBName = “CitrixMonitoringDatanbank”
### $FailoverPartner = “MirrorSQLDNSname.domain.com”
##
$ServerName=”SQL-M01.demo.lab”
$DBName =”CTX_DB_Site”
$LogDBName = “CTX_DB_Conf”
$MonitorDBName = “CTX_DB_Mon”
$FailoverPartner = “SQL-M02.demo.lab”
$cs=”Server=$ServerName;Initial Catalog=$DBName;Integrated Security=True;Failover Partner=$FailoverPartner”
$csLogging= “Server=$ServerName;Initial Catalog=$LogDBName;Integrated Security=True;Failover Partner=$FailoverPartner”
$csMonitoring = “Server=$ServerName;Initial Catalog=$MonitorDBName;Integrated Security=True;Failover Partner=$FailoverPartner”
Set-AdminDBConnection -DBConnection $cs
Set-ConfigDBConnection -DBConnection $cs
Set-AcctDBConnection -DBConnection $cs
Set-AnalyticsDBConnection -DBConnection $cs
Set-HypDBConnection -DBConnection $cs
Set-ProvDBConnection -DBConnection $cs
#Set-PvsVmDBConnection -DBConnection $cs
Set-BrokerDBConnection -DBConnection $cs
Set-EnvTestDBConnection -DBConnection $cs
Set-LogDBConnection -DBConnection $cs
Set-LogDBConnection -DataStore Logging -DBConnection $null
Set-LogDBConnection -DBConnection $null
Set-LogDBConnection -DBConnection $cs
Set-LogDBConnection -DataStore Logging -DBConnection $csLogging
Set-MonitorDBConnection -DBConnection $cs
Set-MonitorDBConnection -DataStore Monitor -DBConnection $null
Set-MonitorDBConnection -DBConnection $null
Set-MonitorDBConnection -DBConnection $cs
Set-MonitorDBConnection -DataStore Monitor -DBConnection $csMonitoring
Set-AppLibDBConnection –DBConnection $cs # 7.8 and newer
Set-SfDBConnection -DBConnection $cs

DB Connection Citrix

14. Verifizieren Sie die DB-Kommunikation

Get-AcctServiceStatus
Get-AdminServiceStatus
Get-BrokerServiceStatus
Get-ConfigServiceStatus
Get-EnvTestServiceStatus
Get-HypServiceStatus
Get-LogServiceStatus
Get-MonitorServiceStatus
Get-ProvServiceStatus
Get-SfServiceStatus
Get-AppLibServiceStatus

DB Connection Status

15. Aktivieren Sie Monitoring und Logging

##Enable Monitoring
Set-MonitorConfiguration -DataCollectionEnabled $true
##Enable Configuration Logging
Set-LogSite -State Enabled

Anschließend können wir die Ergebnisse verifizieren:

Get-BrokerDBConnection
Get-LogDBConnection
Get-MonitorDBConnection

DB Connection Status Check

Die Mirgration der Citrix Datenbanken ist hiermit erfolgreich abgeschlossen.

 

Das Ergebnis könnte dann so aussehen:

Nach DB-Migration

Soll Zustand DB Citrix

Vor DB-Migration:

Ist Zustand DB Citrix

Empfehlung:

Es ist zu empfehlen, dass die initial konfigurierte Prinzipal-Datenbank immer die Prinzipal-DB bleibt. Dadurch könnte solche Meldungen vermieden werden: Kontakt mit Datenbank 'CTX_DB_Site' auf 'SQL2017-01' konnte nicht hergestellt werden. Überprüfen Sie die Datenbankverbindungseinstellungen und -benutzerberechtigungen.

 


CTX140047 - How to Backup XenDesktop Current DBConnection Strings Using Registry

 

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.