Migration von Oracle zu PostgreSQL
Einleitung
Dieses Seminar vermittelt die Methodik, Werkzeuge und Best Practices für eine erfolgreiche und sichere Datenbankmigration von Oracle zu PostgreSQL. Teilnehmer erlernen die fundamentalen Architekturunterschiede, das Mapping von Datentypen, die Konvertierung von komplexem PL/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 Oracle-Datenbanken (SQL, PL/SQL) sowie grundlegende Linux-Kenntnisse.
Detaillierte Inhalte
Architektur- und Konzeptvergleich
- Systemarchitektur: Oracle Instanz/Datenbank vs. PostgreSQL Cluster/Datenbank
- Speicherverwaltung: Tablespaces, Datafiles und das Speichermodell
- Nebenläufigkeit und Transaktionen: Oracle Undo-Segmente vs. PostgreSQL Multi-Version Concurrency Control (MVCC)
- Prozessarchitektur und Background-Prozesse im Vergleich
- Mapping von System-Views (Data Dictionary vs. Information Schema / pg_catalog)
Migrationsstrategien und Planung
- Phasen eines Migrationsprojekts (Assessment, Schema-Migration, Datenmigration, Code-Migration, Testing, Go-Live)
- Migrationsansätze: Big Bang, inkrementelle Migration und Parallelbetrieb
- Fallback- und Rollback-Szenarien
- Kompatibilitätsbewertung und Aufwandsschätzung
Werkzeuge für die Migration
- Einführung und Konfiguration von Ora2Pg
- Nutzung des AWS Schema Conversion Tool (SCT) zur Code-Analyse
- Übersicht kommerzieller Tools (z. B. EDB Migration Toolkit)
- Datenübertragung mit pgloader
Schema- und Strukturmigration
- Mapping der Datentypen (z. B.
NUMBERzuNUMERIC,VARCHAR2zuVARCHAR,DATEvs.TIMESTAMP) - Konvertierung von Tabellen, Constraints (Primary Keys, Foreign Keys, Check) und Sequenzen
- Übersetzung von Oracle-spezifischen Indizes (Bitmap-Indizes, Reverse Key, Function-based)
- Umsetzung von Tabellen-Partitionierung in PostgreSQL
- Umgang mit LOBs (Large Objects) und JSON-Datenstrukturen
Code-Migration: PL/SQL zu PL/pgSQL
- Syntaxunterschiede zwischen PL/SQL und PL/pgSQL
- Migration von Stored Procedures, Funktionen und Triggern (Statement- vs. Row-Level)
- Lösungsansätze für fehlende Oracle-Konzepte: Packages (Nutzung von Schemata), Autonomous Transactions,
DUAL-Tabelle - Konvertierung von expliziten und impliziten Cursorn
- Anpassung von Fehlerbehandlung (Exception Handling) und dynamischem SQL (
EXECUTE IMMEDIATE) - Übersetzung von Oracle-spezifischen Funktionen (
NVL,DECODE,SYSDATE,ROWNUM)
Datenübernahme und Replikation
- Initiale Datenmigration: Export/Import-Strategien und Bulk-Loading (
COPY) - Direkte Datenbankverbindungen über Foreign Data Wrapper (
oracle_fdw) - Nahezu Ausfallfreie Migration (Zero Downtime) und Change Data Capture (CDC)
- Einsatz von logischer Replikation, Debezium oder Oracle GoldenGate
Testing, Validierung und Go-Live
- Strategien zur Verifizierung der Datenkonsistenz und Vollständigkeit
- Funktionstests für migrierte Geschäftslogik
- Last- und Performancetests auf dem neuen System
- Cutover-Planung für den produktiven Wechsel
Performance-Optimierung und PostgreSQL-Betrieb
- Wichtige Tuning-Parameter in der
postgresql.conf(shared_buffers,work_mem,maintenance_work_mem) - Konfiguration und Optimierung des Autovacuum-Daemons zur Vermeidung von Bloat
- Anpassung von Backup- und Recovery-Strategien (Ablösung von RMAN durch pgBackRest oder Barman)
- Überwachung (Monitoring) von Performance und Sperren (Locks) in PostgreSQL
Dauer 3 Tage