Technisch

SQL Server 2016 → 2022/2025 Sechs Wege zum Ziel

🗺️ MIGRATIONSPFADE FÜR DBAs

📦 Die klassischen Migrationspfade

Parallel, Clean Install, In-place – die bekannten Wege
🔄 Parallel · Side-by-Side

Neuen Server mit SQL 2022/2025 aufsetzen, Datenbanken per Backup/Restore synchronisieren.

Risiko: Niedrig · ⏱️ Aufwand: Hoch
🧹 Clean Install

Alte Instanz deinstallieren, SQL neu installieren, Datenbanken aus Backup einspielen.

Risiko: Mittel · ⏱️ Aufwand: Mittel
⬆️ In-place Upgrade

Setup mit Upgrade-Option auf vorhandener Instanz ausführen.

Risiko: Hoch · ⏱️ Aufwand: Niedrig

➕ Erweiterte Optionen für spezielle Szenarien

Detach/Attach · dbatools · Copy-Database – wann sich diese lohnen
📎 Detach / Attach

Datenbanken vom alten Server abtrennen, Dateien (MDF/LDF) auf neuen Server kopieren, dort wieder anfügen.

✅ Vorteile

  • Sehr schnell bei großen Datenbanken (kein Backup/Restore)
  • Keine Zwischenspeicherung

❌ Nachteile

  • Datenbanken während Kopie offline
  • Kein einfaches Rollback (Quelle offline)
Risiko: Mittel · ⏱️ Dauer: Kurz (abhängig von Dateigröße)
🛠️ dbatools · Export

PowerShell-Modul dbatools für automatisierte Migration: Export-DbaUser, Copy-DbaDatabase, Start-DbaMigration.

✅ Vorteile

  • Automatisiert Logins, Jobs, Linked Server, Agent-Konfiguration
  • Weniger manuelle Fehler
  • Unterstützt parallele Übertragung

❌ Nachteile

  • Zusätzliche Software (PowerShell-Modul)
  • Lernkurve für komplexe Setups
Risiko: Niedrig · ⏱️ Aufwand: Mittel (Initiale Einrichtung)
📋 Copy-Database Wizard

SSMS-Assistent (kopiert Schemas, Daten, Logins, Jobs zwischen Instanzen).

✅ Vorteile

  • GUI-basiert, keine Skripte nötig
  • Wählt Methode (SMO oder Detach/Attach)

❌ Nachteile

  • Langsam bei großen DBs
  • Weniger flexibel als dbatools
  • Fehleranfällig bei komplexen Objekten
Risiko: Mittel · ⏱️ Dauer: Lang

🔧 Detach/Attach – Schritt für Schritt

Schnell, aber mit Downtime – wann sinnvoll?
  1. Datenbanken auf altem Server detachedUSE master; ALTER DATABASE [Name] SET OFFLINE; EXEC sp_detach_db 'Name';
  2. MDF/LDF-Dateien auf Zielserver kopieren – robuster Dateitransfer (z.B. Robocopy).
  3. Datenbanken auf neuem Server anfügenCREATE DATABASE ... FOR ATTACH;
  4. Logins, Jobs, Linked Server manuell nachziehen (oder mit dbatools).
-- Alte Datenbank abtrennen (auf Quelle)
USE master;
ALTER DATABASE AdventureWorks SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
EXEC sp_detach_db 'AdventureWorks';

-- Auf Ziel anfügen
CREATE DATABASE AdventureWorks ON 
(FILENAME = 'D:\Data\AdventureWorks.mdf'),
(FILENAME = 'E:\Log\AdventureWorks_log.ldf')
FOR ATTACH;
⚠️ Wichtig: Nach dem Detach ist die Datenbank auf der Quelle nicht mehr verfügbar. Ein Rollback ist nur über das erneute Anfügen der Dateien oder aus Backup möglich. Daher kein Verfahren für "nervöse" Umgebungen ohne guten Rückfallplan.

🛠️ dbatools – die PowerShell-Automatisierung

Professionelle Migration inkl. Logins, Jobs und Konfiguration

dbatools ist das De-facto-Standardtool für SQL-Migrationen in der Community. Es migriert nicht nur Datenbanken, sondern auch serverseitige Objekte.

# dbatools installieren (falls noch nicht)
Install-Module dbatools -Force

# Beispiel: komplette Migration inkl. Logins, Jobs, Linked Server, Credentials
Start-DbaMigration -Source sql2016 -Destination sql2025 -BackupRestore -MigrateLogins -MigrateJobs -MigrateLinkedServers -MigrateAgentAlerts

# Nur Benutzer/Logins exportieren (z.B. für Clean-Install-Szenario)
Export-DbaUser -SqlInstance sql2016 -Path C:\Migration\Logins.sql

# Datenbank inkl. aller Objekte kopieren (online, mit minimaler Downtime)
Copy-DbaDatabase -Source sql2016 -Destination sql2025 -Database AdventureWorks -BackupRestore -ReuseSourceFolderStructure
💡 Warum dbatools? Es erkennt automatisch orphaned users, migriert SQL-Agent-Aufträge, Operatoren, Warnungen, Backup-Devices – alles, was bei manuellen Migrationen gerne vergessen wird.

📋 Copy-Database Wizard – der GUI-Assistent

Keine Skripte, aber Einschränkungen

In SSMS: Tasks → Copy Database. Bietet zwei Methoden: Detach/Attach oder SMO (SQL Management Object). Gut für kleine bis mittelgroße Datenbanken (weniger als 200 GB).

-- SMO-Methode im Hintergrund: Transfer-Objekt
-- Assistent generiert intern ein SSIS-Paket, das die Daten überträgt.
⚠️ Nachteil: Der Assistent kann bei komplexen Datenbanken (z.B. mit Service Broker, Full-Text, Replikation) fehlschlagen. Keine gute Wahl für Always On oder große Data Warehouses.

⚠️ Wichtig master-Datenbank nicht einfach restoren!

Warum das Restoren der alten master auf einer neuen Version gefährlich bzw. falsch ist
🚫 Alte master-Datenbank auf neuer SQL-Version wiederherstellen? Das ist kein unterstützter Migrationspfad!

Die master-Datenbank enthält versionierungsspezifische Systemtabellen, Metadaten und interne Strukturen. Eine RESTORE DATABASE master von SQL Server 2016 auf 2022/2025 führt zu Instanz-Startproblemen, Korruptionsmeldungen und nicht unterstützten Zuständen. Microsoft erlaubt kein Downgrade oder direktes Restoren von Systemdatenbanken zwischen Hauptversionen.

✅ Richtig: Alle serverseitigen Objekte (Logins, Jobs, Linked Server, Endpoints) müssen skriptbasiert oder mit Tools (dbatools) übertragen werden. Die Systemdatenbanken werden bei der Installation/Upgrade neu erzeugt.

-- Statt master zu restoren: Logins mit Skript übertragen
-- Auf Quelle: EXEC sp_help_revlogin; (gibt CREATE LOGIN-Skripte aus)
-- Auf Ziel: Skript ausführen

-- Oder mit dbatools:
Export-DbaLogin -SqlInstance sql2016 -Path C:\Migration\Logins.sql

🔗 Herausforderung: Linked Server migrieren

Häufige Stolperfalle bei allen Migrationspfaden

Linked Server sind oft der Grund für fehlgeschlagene Migrationsprojekte, da sie externe Abhängigkeiten enthalten (Provider, Authentifizierung, feste Server-Namen).

📋 Manuelle Migration

-- Skript für Linked Server generieren (auf Quelle)
SELECT 'EXEC master.dbo.sp_addlinkedserver @server = N''' + name + ''', @srvproduct=N''' + product + ''', @provider=N''' + provider + ''', @datasrc=N''' + data_source + ''';' 
FROM sys.servers WHERE is_linked = 1;

-- Logins für Linked Server sichern
SELECT 'EXEC sp_addlinkedsrvlogin @rmtsrvname = N''' + name + ''', @useself = N''False'', @locallogin = NULL, @rmtuser = N''' + remote_name + ''', @rmtpassword = '''''' FROM sys.linked_logins;

🛠️ dbatools (empfohlen)

# Linked Server exportieren und importieren
Export-DbaLinkedServer -SqlInstance sql2016 -Path C:\Migration\LinkedServers.xml
Import-DbaLinkedServer -SqlInstance sql2025 -Path C:\Migration\LinkedServers.xml

# In einer Komplettmigration:
Start-DbaMigration -Source sql2016 -Destination sql2025 -LinkedServers
🔐 Typische Probleme: Unterschiedliche SQL-Versionen auf den Zielsystemen, fehlende OLE DB-Provider (z.B. für Oracle, DB2), Kerberos-Authentifizierung mit SPNs. Nach der Migration unbedingt jeden Linked Server testen!

📊 Alle sechs Optionen im Vergleich

Entscheidungshilfe basierend auf Datenbankgröße, Downtime-Toleranz und Automatisierung
MethodeDowntimeAutomatisierungRollbackBeste für
🔄 Parallel (Side-by-Side)MinutenMittelEinfachProduktion, große DBs, minimale Ausfallzeit
🧹 Clean InstallStundenManuellKomplexDev/Test, Systeme mit geringen Anforderungen
⬆️ In-place Upgrade30-90 MinAutomatischSnapshot nötig24/7 mit VM-Snapshot, kleine bis mittlere DBs
📎 Detach/AttachVariabel (Dateikopie)ManuellSchwierigSehr große DBs (TB), wenig Änderungen
🛠️ dbatoolsMinuten–StundenVoll (PowerShell)MöglichWiederholbare, automatisierte Migrationen, inkl. aller Objekte
📋 Copy-Database WizardLangGUIMittelKleine DBs, seltene Migrationen ohne Skripterfahrung

⚖️ Entscheidungsmatrix – welche Methode wählen?

🏆 Produktivkritische Systeme

Parallel (Side-by-Side) oder dbatools – minimales Risiko, voller Rollback. Bei sehr großen Datenbanken zusätzlich Detach/Attach erwägen.

⚡ Zeitdruck + Snapshot vorhanden

In-place Upgrade – schnell, aber nur mit VM-Snapshot und DMA-Prüfung.

🧪 Dev/Test / kleinere Instanzen

Clean Install + dbatools – sauber, übt den Prozess für die Produktion.

📦 Single One-Off Migration ohne Wiederholung

Copy-Database Wizard – für kleine DBs (< 50 GB) mit GUI-Bedienung geeignet.

© 2026 – DBA-Perspektive | Alle Angaben ohne Gewähr. Testen Sie jede Migration zuerst in einer nicht-produktiven Umgebung.
dbatools: https://dbatools.io | SQL Server Migration Assistant (DMA) empfohlen.
Nächster Always Encrypted mit Secure Enclaves – Der vollständige Leitfaden Enklaven verstehen & konfigurieren: Die Zukunft von Always Encrypted
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Advertisement
If you accept, the ads on the page will be adapted to your preferences.
Google Ad
Save