PowerShell WinForms-Tool zur zweiphasigen SQL Server Datenbankmigrationen — entwickelt von dtcSoftware (Uwe Janke).
SQLMigration ist eine grafische PowerShell-Anwendung (WinForms) für SQL Server Migrationen in komplexen Netzwerkumgebungen. Das Tool unterstützt direkte Migrationen (Quell- und Zielserver erreichbar) sowie zweiphasige Migrationen über eine Zustandsdatei — für Umgebungen ohne direkte Netzwerkverbindung zwischen den Servern.
Version: 1.1 | Getestet auf: Windows Server 2022 / SQL Server 2022
- WinForms GUI: Rollenauswahl (Quelle / Ziel / Automatisch) beim Start, zeigt nur die jeweils relevante Seite
- Zweiphasige Migration: Phase 1 auf dem Quellserver (Backup/Export), Phase 2 auf dem Zielserver (Restore/Import) — State-Übergabe per JSON-Datei über Exchange-Pfad
- Automatische Szenario-Erkennung: Zielserver TCP-erreichbar → Direct-Modus; nicht erreichbar → TwoPhase-Modus
- Mehrere Migrationsmethoden:
- Backup / Restore
- Detach / Attach
- Migrierbare Objekte: Datenbanken, Logins, SQL Agent Jobs, Linked Server, SSIS-Pakete
- State Management: JSON-basierte Zustandsdatei für getrennte Netzwerke
- WhatIf-Modus: Vollständige Simulation ohne tatsächliche Änderungen
- Strukturiertes Logging: Alle Schritte werden protokolliert
- dbaTools-Integration: Verbindungsmanagement und SQL-Operationen
| Anforderung | Mindestversion |
|---|---|
| Windows Server | 2022 |
| SQL Server | 2022 |
| PowerShell | 5.1 |
| dbaTools | 2.0 |
# Interaktiv starten (Rollenauswahl per Dialog)
.\SQL-Migration.ps1
# Rolle per Parameter vorgeben
.\SQL-Migration.ps1 -Role Source
.\SQL-Migration.ps1 -Role Target
.\SQL-Migration.ps1 -Role Auto
# Konfigurationsdatei angeben
.\SQL-Migration.ps1 -ConfigFile "C:\Migration\migration.config.json"| Modus | Beschreibung |
|---|---|
Source |
Nur Phase 1 — Backup/Export auf Quellserver |
Target |
Nur Phase 2 — Restore/Import auf Zielserver |
Auto |
Erkennt automatisch: Zustandsdatei vorhanden → Target, sonst → Source |
SQLMigration/
├── SQL-Migration.ps1 # Hauptskript (WinForms GUI + Steuerlogik)
├── migration.config.json # Konfiguration (Pfade, Optionen)
└── modules/
├── Connect-SqlServer.psm1 # Verbindungsmanagement (Windows/SQL-Auth)
├── Get-SqlObjects.psm1 # Inventarisierung migrierbarer Objekte
├── Invoke-Migration.psm1 # Migrationsdurchführung (Backup/Restore, Detach/Attach)
├── Invoke-MigrationState.psm1 # State-Management (JSON-Zustandsdatei)
└── Write-MigrationLog.psm1 # Logging
Die migration.config.json steuert:
- Exchange-Pfad für zweiphasige Migrationen
- Standard-Migrationsmethode
- Logging-Pfad
- WhatIf-Modus
- Artikel: SQL Server Migration Automation
- Website: www.powershelldba.de
- Entwickler: Uwe Janke, Senior IT-Spezialist / SQL Server DBA