Die Detach-Attach-Methode ist die schnellste Möglichkeit, große SQL Server-Datenbanken zwischen Instanzen zu migrieren – besonders wenn Backup/Restore zu langsam wäre oder kein ausreichend schnelles Netzwerk vorhanden ist.
Voraussetzungen und Planung
- Wartungsfenster einplanen (Datenbank ist während Migration offline)
- Dateigrößen prüfen: Genug Speicherplatz auf Zielserver?
- SQL Server-Versionskompatibilität sicherstellen (nur vorwärts kompatibel)
- Logins auf Zielserver bereits vorhanden (SID-Matching)?
Schritt 1: Datenbank detachen
-- Alle Verbindungen trennen
ALTER DATABASE MyDatabase SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
-- Datenbank detachen (true = Update Statistics)
EXEC sp_detach_db 'MyDatabase', 'true';
-- Datenbankdateien sind jetzt frei zum Kopieren:
-- C:DataMyDatabase.mdf
-- C:DataMyDatabase.ldf
Schritt 2: Dateien kopieren und anhängen
-- Dateien auf Zielserver kopieren (robocopy für große Dateien empfohlen)
-- robocopy SourceDir TargetDir MyDatabase.mdf MyDatabase.ldf /Z /MT:8
-- Auf dem Zielserver anhängen:
CREATE DATABASE MyDatabase ON
PRIMARY (FILENAME = 'D:DataMyDatabase.mdf'),
(FILENAME = 'D:DataMyDatabase.ldf')
FOR ATTACH;
Massenmigration: Scripted Approach
-- Script zur Massenmigration aller User Databases
SELECT
'EXEC sp_detach_db ''' + name + ''', ''true'';'
FROM sys.databases
WHERE database_id > 4 -- Systemdatenbanken ausschließen
AND state = 0; -- Nur Online-Datenbanken
Detach-Attach ist ideal für große Datenbanken (100GB+), wo Backup/Restore Stunden dauern würde. Die Downtime entspricht der Zeit zum Kopieren der Datenbankdateien plus wenige Minuten für Detach/Attach-Operationen.








