Migration von SQL Server zu PostgreSQL

Dieses Seminar vermittelt die Methodik, Werkzeuge und Best Practices für eine erfolgreiche Datenbankmigration von Microsoft SQL Server zu PostgreSQL. Teilnehmer erlernen die fundamentalen Architekturunterschiede, das Mapping von Datentypen, die Konvertierung von T-SQL-Code zu PL/pgSQL sowie Strategien für die reibungslose Datenübernahme, das Testing und die abschließende Performance-Optimierung im PostgreSQL-Betrieb.

Zielgruppe & Voraussetzungen

  • Zielgruppe: Datenbankadministratoren (DBAs), Datenbankentwickler, Systemarchitekten und Migrationsberater.
  • Voraussetzungen: Fundierte Erfahrungen in der Administration und Entwicklung mit Microsoft SQL Server (T-SQL) sowie grundlegende relationale Datenbankkenntnisse.

Detaillierte Inhalte

Architektur- und Konzeptvergleich

  • Systemarchitektur: SQL Server Instanz/Datenbanken vs. PostgreSQL Cluster/Datenbanken
  • Speichermodell: Filegroups und Transaktionsprotokolle vs. Tablespaces und WAL (Write-Ahead Logging)
  • Nebenläufigkeit: Locking/Blocking in SQL Server vs. Multi-Version Concurrency Control (MVCC) in PostgreSQL
  • Temporäre Objekte: tempdb und #temp-Tabellen vs. lokale temporäre Tabellen in PostgreSQL
  • Systemkataloge: System Views (sys.*) vs. Information Schema und pg_catalog

Migrationsstrategien und Werkzeuge

  • Phasen eines Migrationsprojekts (Assessment, Schema, Daten, Code, Testing, Cutover)
  • Migrationsansätze: Big Bang vs. Phasenweise Migration
  • Werkzeuge zur automatisierten Migration: AWS Schema Conversion Tool (SCT), pgloader
  • Übersicht alternativer Ansätze (z. B. Babelfish for PostgreSQL)
  • Kompatibilitätsbewertung und Aufwandsschätzung

Schema- und Strukturmigration

  • Mapping der Datentypen (z. B. DATETIME zu TIMESTAMP, BIT zu BOOLEAN, VARCHAR(MAX) zu TEXT, UNIQUEIDENTIFIER zu UUID)
  • Konvertierung von IDENTITY-Spalten zu SERIAL oder GENERATED ALWAYS AS IDENTITY
  • Übertragung von Constraints (Primary Key, Foreign Key, Check, Unique)
  • Index-Architektur: Clustered Indexes (SQL Server) vs. Heap Tables mit B-Tree Indexes (PostgreSQL)
  • Implementierung von Partitionierung und berechneten Spalten (Computed Columns)
  • Umgang mit Case-Sensitivity und Collation-Unterschieden

Code-Migration: T-SQL zu PL/pgSQL

Wer PL/pgSQL nicht nur portieren, sondern von Grund auf lernen möchte, findet das im Seminar PL/pgSQL-Programmierung.

  • Syntaxunterschiede zwischen T-SQL und PL/pgSQL
  • Migration von Stored Procedures, UDFs und Triggern
  • Transaktionssteuerung: Implizite/Explizite Transaktionen und Fehlerbehandlung (TRY...CATCH zu EXCEPTION-Blöcken)
  • Ersetzen von T-SQL-Spezifika: ISNULL/COALESCE, GETDATE() zu CURRENT_TIMESTAMP, TOP zu LIMIT/OFFSET
  • Konvertierung von temporären Tabellenvariablen (@table) und Cursorn
  • Lösungsansätze für fehlende globale Variablen (z. B. @@ROWCOUNT, @@ERROR)
  • Anpassung von dynamischem SQL (sp_executesql zu EXECUTE)

Datenübernahme und Synchronisation

  • Initiale Datenmigration: Massendatenexport/-import (von BCP zu COPY)
  • Direkte Datenbankverbindungen: Einsatz des TDS Foreign Data Wrappers (tds_fdw) als Ersatz für Linked Servers
  • Change Data Capture (CDC) und logische Replikation für ausfallarme Migrationen (Zero Downtime)
  • Behandlung von Zeichensatz- und Encoding-Problemen während des Transfers

Testing, Validierung und Go-Live

  • Strategien zur Verifizierung der Datenkonsistenz (Row Counts, Hash-Summen)
  • Funktionstests für migrierte Geschäftslogik und Schnittstellen
  • Last- und Performancetests auf dem neuen System
  • Cutover-Planung und Rollback-Szenarien

Performance-Optimierung und PostgreSQL-Betrieb

  • Wichtige Tuning-Parameter in der postgresql.conf im Vergleich zu sp_configure
  • Das Autovacuum-Konzept als Ersatz für SQL Server Index-Rebuild- und Statistik-Wartungspläne
  • Performance-Analyse: SQL Server Profiler / Extended Events vs. pg_stat_statements und EXPLAIN ANALYZE
  • Anpassung von Backup- und Recovery-Strategien (Ablösung von SQL Server Backups durch pg_dump und kontinuierliche Archivierung/pgBackRest)

Dauer 3 Tage



Häufige Fragen (FAQ)

Was sind die größten Fallstricke bei der Migration von SQL Server zu PostgreSQL?

Die wichtigsten Unterschiede liegen im Transaktions- und Sperrverhalten (SQL Server sperrt per Default lesend via Shared Locks, PostgreSQL nutzt MVCC ohne Leseblockaden), in der Syntax von T-SQL vs. PL/pgSQL sowie in temporären Tabellen und Tabellenvariablen. Im Seminar analysieren wir diese Unterschiede praxisnah und zeigen performante Äquivalente in PostgreSQL.

Welche Tools eignen sich am besten für den Datentransfer von SQL Server?

Für automatisierte Schema- und Datenübernahmen setzen wir vor allem pgloader und AWS SCT ein. pgloader glänzt durch hohe Geschwindigkeit beim Bulk-Loading und automatisches Type-Casting, während für kontinuierliche Replikation oder minimale Ausfallzeiten Foreign Data Wrapper (tds_fdw) und CDC-Werkzeuge (z. B. Debezium) geschult werden.

Können wir das Seminar mit unseren eigenen SQL-Server-Datenbanken durchführen?

Ja. Bei Inhouse-Schulungen arbeiten wir auf Wunsch direkt an Ihren realen Schemata, Stored Procedures und T-SQL-Skripten. Wir klären vorab den Migrationsgrad und prüfen typische Problemstellen vertraulich unter NDA.

Findet das Seminar inhouse oder remote statt?

Wir bieten das 3-Tage-Seminar flexibel als Inhouse-Training bei Ihnen vor Ort (in Köln, NRW und bundesweit) sowie als interaktive Remote-Schulung für verteilte Entwicklerteams an.

Individuell anfragen