Zuletzt aktualisiert:
Beim Upgrade einer Citrix-Umgebung auf CVAD 2507 LTSR kann man über einen ziemlich unscheinbaren Stolperstein laufen.
Der SQL Server ist aktuell.
SQL Server 2019 wird verwendet.
Alles sieht sauber aus.
Und trotzdem scheitert das Citrix Site Upgrade aufgrund der SQL-Anforderungen.
Die Ursache kann in der Datenbank selbst liegen.
Ein SQL Server Upgrade hebt nämlich nicht automatisch den Compatibility Level bestehender Datenbanken an.
So kann die Umgebung beispielsweise aussehen:
SQL Server: 2019
Citrix Site DB: Compatibility Level 110
Citrix Monitoring DB: Compatibility Level 110
Citrix Logging DB: Compatibility Level 110
Und 110 bedeutet:
👉 SQL Server 2012
Der SQL Server lebt also 2019 – die Citrix-Datenbank denkt noch, wir hätten 2012. 😄
Schnell geprüft:
SELECT
name AS DatabaseName,
compatibility_level AS CompatibilityLevel
FROM sys.databases
ORDER BY name;
Die wichtigsten Levels:
110 = SQL Server 2012
120 = SQL Server 2014
130 = SQL Server 2016
140 = SQL Server 2017
150 = SQL Server 2019
160 = SQL Server 2022
170 = SQL Server 2025
Bei einem SQL Server 2019 kann der Compatibility Level beispielsweise angepasst werden mit:
ALTER DATABASE [CitrixSite]
SET COMPATIBILITY_LEVEL = 150;
GO
ALTER DATABASE [CitrixLogging]
SET COMPATIBILITY_LEVEL = 150;
GO
ALTER DATABASE [CitrixMonitoring]
SET COMPATIBILITY_LEVEL = 150;
GO
⚠️ Natürlich nicht einfach blind ausführen.
Vorher:
✅ Citrix-/SQL-Supportmatrix prüfen
✅ Datenbanken sichern
✅ tatsächliche DB-Namen kontrollieren
✅ Wartungsfenster verwenden
✅ anschließend Compatibility Level und Citrix Site testen
Und noch ein zweiter Punkt aus der Praxis:
Beim CVAD 2507 Site Upgrade sollte auch das verwendete SQL-/Upgrade-Konto geprüft werden. Fehlende Berechtigungen für notwendige Änderungen innerhalb der Citrix-Datenbanken können ebenfalls für interessante Fehlersuche sorgen.
Mein neuer Citrix Pre-Upgrade-Check
Vor einem größeren CVAD-Upgrade gehört deshalb für mich inzwischen neben Controller-, VDA-, StoreFront- und SQL-Version auch dieser kleine Query dazu:
SELECT name, compatibility_level
FROM sys.databases;
Dauert 10 Sekunden.
Kann einem aber eine ziemlich lange Fehlersuche während des Wartungsfensters ersparen.
Finding in the Wild. 🔎
Manchmal ist nicht der SQL Server zu alt.
Sondern nur die Datenbank, die vergessen hat, welches Jahr wir haben. 😄