Migration von Citrix Datenbanken

Mit der neuesten Citrix Virtual Apps & Desktops (CVAD) LTSR Version wurden ältere SQL-Server-Versionen abgekündigt. Wer seine Umgebung stabil und supportfähig halten möchte, kommt um eine Migration der Citrix-Datenbanken (Site, Logging, Monitoring) auf moderne SQL-Server (2019/2022) nicht herum. Ob Cluster, Always On oder Spiegelung – das Vorgehen bleibt im Kern gleich. In diesem Beitrag zeige ich Schritt für Schritt, wie die Migration sicher gelingt.

1. Voraussetzungen

  • Vollständige Backups aller Citrix-Datenbanken
  • Backups/VM-Snapshots der Delivery Controller (DDCs)
  • Neuer SQL Server (Cluster, Always On oder Mirror)
  • Gleiche SQL-Version auf Principal und Mirror

1.1 Backups erstellen

Bevor du mit der Migration beginnst, steht das Wichtigste an erster Stelle: saubere, verifizierte Backups.
Klingt banal, aber wer einmal eine Citrix-Site ohne funktionierendes Backup wiederherstellen musste, weiß, warum dieser Schritt entscheidend ist.

Erstelle vollständige Datenbank-Backups aller Citrix-Datenbanken:

  • Monitoring-Datenbank (z. B. CitrixMonitoring)
  • Site-Datenbank (z. B. CitrixSite)
  • Logging-Datenbank (z. B. CitrixLogging)

1.1.1 Schritt-für-Schritt in SSMS (GUI)

  • SQL Server Management Studio (SSMS) starten und am Quell-SQL verbinden (Windows/SQL-Auth)
  • Im Objekt-Explorer die erste DB auswählen (z. B. CitrixLogging)
  • Rechtsklick auf die DB → TasksBackup…
  • Backup type auf Full stellen
  • Unter Destination ggf. Einträge entfernen, dann Add… → Datei wählen, z. B. D:\Backups\CitrixLogging_Full_YYYYMMDDHHmm.bak
  • Reiter Media Options
    • Verify backup when finished (Backup nach Abschluss prüfen)
    • Perform checksum before writing to media (falls verfügbar)
  • Reiter Backup Options
    • Compress backup (kleinere, schnellere Backups)
  • OK klicken → Erfolgsmeldung abwarten
  • Das Ganze für Site-DB und Monitoring-DB wiederholen (CitrixSite, CitrixMonitoring o. ä.)
  • Transaktionsprotokoll-Backups erstellen (Recovery Model Full!):
    • Wieder Tasks → Backup…, Backup type = Transaction Log, Ziel: *.trn
    • Optional: mehrere Log-Backups bis zum Migrationszeitpunkt sichern
  • Backupdateien auf eine Freigabe kopieren, die der neue SQL-Server lesen kann

1.1.2 T-SQL Alternative

2. Datenbank-Wiederherstellung

Nach dem Backup folgt der eigentliche Migrationsschritt: das Wiederherstellen (Restore) der Citrix-Datenbanken auf dem neuen SQL-Server.
Dabei spielt es keine Rolle, ob du eine Standalone-Instanz, einen Cluster oder Always On verwendest – das Vorgehen bleibt im Kern gleich.

2.1.1 Restore auf neuem Principal (GUI)

  • Am neuen SQL-Server in SSMS verbinden
  • Objekt-Explorer: Rechtsklick DatabasesRestore Database…
  • Source = DeviceAdd… → Full-Backup *.bak wählen
    • Destination prüfen (DB-Name unverändert lassen)
  • Reiter Files: Pfade ggf. an neue Laufwerke anpassen
  • Reiter Options:
    • RESTORE WITH RECOVERY (Standard)
    • „Overwrite the existing database“ nur wenn wirklich nötig
  • OK → Erfolgsmeldung. Danach ggf. das letzte Log-Backup einspielen (nur wenn du bis T-Zeitpunkt gehen willst)

2.1.2 Restore per T-SQL

2.2 Logins & Berechtigungen

Nach dem Restore müssen die Delivery Controller (DDC)-Maschinenkonten wieder Zugriff auf die neuen Datenbanken bekommen.
Da SQL-Server-Logins serverweit sind, werden sie beim Backup/Restore nicht mitkopiert – du musst sie also manuell anlegen.

Anschließend in jeder Citrix-Datenbank (Site, Logging, Monitoring) die passenden Rollen vergeben:

2.3 Optional: Seeding für Always On / Spiegelung

Wer seine Citrix-Datenbanken hochverfügbar betreiben will, kann sie in eine Always On Availability Group oder eine klassische Datenbankspiegelung einbinden.

Bei Always On gilt:
Alle beteiligten Replikas müssen identische Datenbanken besitzen, die mit NORECOVERY wiederhergestellt wurden.
Das nennt man Seeding — also das initiale Befüllen der sekundären Replikas.

Danach dieselben Schritte für Logging und Monitoring Datenbank durchführen.
Sobald alle DBs im Zustand RESTORING sind, kannst du sie der Availability Group hinzufügen.

Falls du noch mit klassischer SQL-Spiegelung (Mirroring) arbeitest, ist das Vorgehen ähnlich:
Auch hier muss die sekundäre Datenbank mit NORECOVERY wiederhergestellt werden.

Dann auf dem Principal:

Und auf dem Mirror:

Sobald der Status „Synchronized“ erreicht ist, kannst du die anderen Citrix-Datenbanken identisch hinzufügen.

3. Delivery Controller vorbereiten

Bevor du die neuen Datenbankverbindungen setzen kannst, müssen die Delivery Controller (DDCs) vorbereitet werden.
Das Ziel: Alle bestehenden Verbindungen zur alten SQL-Umgebung sauber trennen, Logging und Monitoring kurzzeitig deaktivieren, und damit verhindern, dass Citrix-Dienste in der Migrationsphase fehlerhafte Daten schreiben.

3.1 Monitoring & Logging deaktivieren

Zunächst sollten alle Telemetrie- und Protokollierungsdienste pausiert werden.
Das verhindert unnötige Schreibvorgänge während des Wechsels der Datenbankverbindungen.

Damit werden sowohl das Citrix Monitoring als auch das Configuration Logging temporär abgeschaltet.
Sobald die Migration abgeschlossen ist, aktivierst du beide Funktionen wieder.

3.2 Alte DB-Verbindungen trennen

Jetzt müssen die alten DB-Verbindungen der Controller aufgelöst werden.
Die Citrix-Dienste (Broker, Config, Logging, Monitoring usw.) halten jeweils eigene SQL-Connectionstrings, die du einzeln auf null setzen musst.

Dazu zunächst das Citrix-Modul laden:

Dann alle bestehenden Verbindungen löschen:

Nach diesen Befehlen bestehen keine aktiven SQL-Verbindungen mehr zwischen den Citrix-Diensten und der alten Datenbankumgebung.

  • Führe diese Schritte auf allen Delivery Controllern aus (DDC01, DDC02, DDC03 etc.).
  • In einem laufenden Cluster spielt die Reihenfolge keine Rolle – du kannst Controller einzeln umstellen.
  • Wenn du sicher gehen willst, führe vorher Get-BrokerServiceStatus aus, um zu prüfen, ob die Dienste sauber laufen.

Alle Controller sind jetzt von der alten Datenbank getrennt, Logging & Monitoring pausiert.

Damit ist die Umgebung bereit, um im nächsten Schritt die neuen Verbindungen zum neuen SQL-Server zu setzen.

4. Neue Verbindungen konfigurieren

Nachdem die alten Datenbankverbindungen getrennt wurden, können nun die neuen Connection Strings auf den Delivery Controllern gesetzt werden.
Dieser Schritt verknüpft die Citrix-Dienste wieder mit ihren jeweiligen Datenbanken — jetzt aber auf dem neuen SQL-Server.

Zuerst definierst du den Ziel-SQL-Server und die neuen Datenbanknamen.
Achte darauf, dass der SQL-Server-Name entweder direkt auf den neuen Server oder — bei Always On — auf den Listener zeigt.

Wenn du Always On einsetzt, verwende unbedingt den Listener-Namen (z. B. SQL-LISTENER.DOMAIN.LOCAL) so bleiben deine Controller auch bei einem Failover verbunden, ohne dass du später Connection Strings anpassen musst.

4.1 Site-DB setzen

Jetzt stellst du die Verbindung zur neuen Site-Datenbank her.
Diese ist der Kern deiner Citrix-Umgebung und muss zuerst gesetzt werden.

Alle zentralen Citrix-Dienste (Broker, Config, Prov, Hyp, usw.) sind damit wieder mit der Site-DB verbunden.

4.2 Logging & Monitoring setzen

Als Nächstes folgen die beiden sekundären Datenbanken:
Configuration, Logging und Monitoring.

Mit dieser Sequenz stellst du sicher, dass beide Dienste sauber auf die neuen Datenbanken zeigen und keine alten Connection Strings mehr aktiv sind.

4.3 Verbindung prüfen

Nach dem Setzen der neuen Verbindungen ist ein kurzer Funktionstest Pflicht.
Überprüfe den Status aller Citrix-Dienste:

Alle Services sollten den Status OK zurückgeben und auf den neuen SQL-Server verweisen.

Wenn du mehrere Delivery Controller hast, wiederhole diese Schritte auf allen Knoten. Prüfe anschließend per Get-LogDBConnection und Get-MonitorDBConnection, ob wirklich alle Controller dieselben Connection Strings nutzen. Unterschiedliche Connection Strings führen später oft zu Synchronisationsproblemen zwischen den Services.

4.4 Logging & Monitoring wieder aktivieren

Wenn alle Verbindungen erfolgreich gesetzt wurden, kannst du die zuvor deaktivierten Dienste wieder einschalten:

Damit ist die Citrix-Site wieder voll funktionsfähig und produktionsbereit.

5. Fazit

Die Migration der Citrix-Datenbanken ist kein Hexenwerk – aber sie verlangt Disziplin, ein sauberes Vorgehen und ein Verständnis für die internen Abhängigkeiten der Citrix-Dienste.
Wer planlos „einfach restored“, riskiert fehlerhafte Verbindungen, defekte Logging-Datenbanken oder abgebrochene Monitoring-Sessions.
Mit dem oben beschriebenen strukturierten Ablauf bleibt die Migration dagegen transparent, sicher und reproduzierbar.

Wichtig ist vor allem:

  • Backups prüfen, bevor du loslegst.
  • Datenbanken in der richtigen Reihenfolge wiederherstellen.
  • Controller-Verbindungen kontrolliert trennen und neu setzen.
  • Am Ende alle Services testen – lieber einmal zu viel als zu wenig.

Besonders in produktiven Enterprise-Umgebungen empfiehlt es sich, die Schritte vorher in einer Testfarm zu simulieren und die Connection Strings zu dokumentieren.
So lassen sich Fehler im Live-System vermeiden, und du kannst bei Problemen jederzeit Rollbacken.

Wer darüber hinaus Always On oder SQL-Spiegelung nutzt, profitiert von echter Hochverfügbarkeit und stellt sicher, dass seine Citrix-Site auch bei SQL-Ausfällen weiterarbeitet, ohne dass die Benutzer es merken.

Kurz gesagt:
Eine saubere Citrix-Datenbankmigration ist weniger eine technische Herausforderung als eine Frage der Vorbereitung und Sorgfalt.
Wer die Schritte beherrscht, hat nicht nur ein stabiles System, sondern auch die perfekte Vorlage für künftige Updates oder SQL-Wechsel.

Checkliste für NetScaler (Citrix ADC) CVE-2025-5777 & CVE-2025-6543

Am 17. Juni 2025 veröffentlichte Citrix eine Sicherheitsmeldung zu CVE-2025-5777, gefolgt von CVE-2025-6543 am 25. Juni 2025. Beide Schwachstellen gelten als kritisch und werden aktiv ausgenutzt..

Die Bedrohungslage

  • CVE-2025-5777: Kritische Schwachstelle durch unzureichende Eingabevalidierung → führt zu Memory Overread
  • CVE-2025-6543: Ermöglicht Memory Overflow, was zu DoS oder Codeausführung führen kann → Exploits vorhanden !

⚠️ Wichtig: Ein Update allein reicht nicht aus. Alle aktiven ICA- und PCoIP-Sitzungen müssen manuell beendet werden, um die Sicherheitslücke vollständig zu schließen.

„Checkliste für NetScaler (Citrix ADC) CVE-2025-5777 & CVE-2025-6543“ weiterlesen

New Microsoft Teams (Version 2) in Citrix installieren

Die New Teams Version (Manchmal auch Teams 2.0 genannt) wird ab 1 Juli 2024 der neue Standard für die Kommunikationsplattform von Microsoft. Am 1 Oktober 2024 erreicht der Classical Teams Client im VDI Kontext sein End of Support und nach neusten Nachrichten am 1 Juli 2025 sein End of availability Date. Diese Abschlussdaten wurden die letzten Wochen mehrfach angepasst.

Timeline VDI Clients
„New Microsoft Teams (Version 2) in Citrix installieren“ weiterlesen

Checkliste für NetScaler (Citrix ADC) CVE-2023-4966

Citrix hat vor einiger Zeit (10.10.2023) eine Warnung über eine kritische Sicherheitslücke (CVE-2023-4966) in allen NetScaler (Citrix ADC) & Gateway Systemen veröffentlicht. Es sind mehrere funktionierende Exploits veröffentlicht.

Hier ist zu beachten, das ein reines updaten der Systeme nicht ausreicht. Es müssen auch noch die Connection Tokens zurückgesetzt werden.

Wichtig ! Es gibt keine Patches für NetScaler (Citrix ADC) Version 12.1 oder älter. Diese Systeme haben ihr EOL erreicht und werden daher nicht mehr mit dem nötigen Fix bestückt. In diesem Fall bitte ein Update auf die neuste 13.0, 13.1 oder 14.1 Version durchführen.

Die Sicherheitslücke ermöglichen eine anonyme Ausführung von Remotecode und dadurch nicht authentifizierten Angreifern verschiedene Maschinen mit Root Rechten zu übernehmen.

„Checkliste für NetScaler (Citrix ADC) CVE-2023-4966“ weiterlesen

SAML Authentifizierung zwischen Citrix & Microsoft mit Azure MFA

Aktualisierung auf die neuste Cloud Navigation.


Als Folge der zunehmenden Projekte gibt es hier ein kleines How To mit den folgenden Punkten:

  • Azure AD Seamless Single Sign-On (PTA / PHS)
  • SAML Authentifizierung (Azure AD als IdP & NetScaler Gateway als SP)
  • Citrix Federated Authentication Service (FAS)
  • Microsoft Azure Multi-Factor-Authentication mit Conditional Access

Voraussetzungen

  • Voll funktionsfähige Citrix Virtual Apps and Desktop Umgebung (Mindestens StoreFront & DDC Version 7.9)
  • NetScaler (Citrix ADC) mit funktionsfähiger Basiskonfiguration & aktivierter Enterprise oder Platinum Lizenz (Minimum Version 12.1 Build 50+ für native Workspace App & für Browser Zugriff Minimum Version 11.1)
  • Konfigurierter Unified Gateway vServer
  • Interne und externe DNS Einträge für Unified Gateway vServer (z.B. citrix.deyda.net)
  • Zertifikate für DNS Einträge (am einfachsten sind Wildcard-Zertifikate)
  • Bestehender Azure Tenant mit Azure-AD Basiskonfiguration (Domain, AAD Sync) & aktivierter Azure AD Premium-Lizenz
  • Installierte & Konfigurierte AD Connect Version (Minimum Version 1.1.644.0)
  • Firewall Freigabe für *.msappproxy.net auf Port 443
  • Domänen Administrator Zugangsdaten für die Domänen, die sich über Azure Connect mit Azure AD verbinden
  • Installierte Authenticator App auf dem Test User Mobilgerät
„SAML Authentifizierung zwischen Citrix & Microsoft mit Azure MFA“ weiterlesen