Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Migration von Oracle zu PostgreSQL — Warum und wie

12. 02. 2014 2 Min. Lesezeit CORE SYSTEMSdata
Migration von Oracle zu PostgreSQL — Warum und wie

Oracle Database begleitet uns seit 2003. Zuverlässig, performant, bewährt. Aber auch teuer. Als wir die Lizenzkosten der letzten zehn Jahre zusammenrechneten, erschreckte uns die Summe. Wir begannen nach einer Alternative zu suchen.

Warum PostgreSQL

Es standen mehrere Kandidaten auf der Liste: MySQL, MariaDB, PostgreSQL. MySQL schieden wir wegen der Unsicherheit rund um Oracles Eigentümerschaft aus. PostgreSQL überzeugte uns mit seinem Enterprise-tauglichen Funktionsumfang — Window Functions, CTEs, partielle Indizes, JSONB-Unterstützung. PostgreSQL 9.3 brachte Materialized Views und verbesserten JSON-Support. Die PostgreSQL-Community ist aktiv und professionell.

Was wir migriert haben

Wir wählten ein internes Projektmanagementsystem — etwa 120 Tabellen, 50 Stored Procedures und Dutzende Views. Nicht unser größtes System, aber komplex genug, um die Machbarkeit zu überprüfen.

Tools und Datentypkonvertierung

Wir nutzten Ora2Pg zum Export von Schema und Daten. Manuelle Korrekturen: NUMBER → NUMERIC, VARCHAR2 → VARCHAR, trigger-basiertes Auto-Increment → SERIAL.

-- Oracle
CREATE TABLE projects (
    id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    name VARCHAR2(200) NOT NULL,
    created_date DATE DEFAULT SYSDATE
);

-- PostgreSQL
CREATE TABLE projects (
    id SERIAL PRIMARY KEY,
    name VARCHAR(200) NOT NULL,
    created_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

PL/SQL → PL/pgSQL

Der arbeitsintensivste Teil. Oracle-spezifische Funktionen (NVL, DECODE, ROWNUM) wurden mit COALESCE, CASE und ROW_NUMBER umgeschrieben. Packages wurden durch Schemas ersetzt. Einige Prozeduren wurden bei der Umschreibung vereinfacht — Oracle-Workarounds waren nicht mehr nötig.

Performance und Monitoring

Bei den meisten Abfragen ist PostgreSQL mit Oracle vergleichbar. EXPLAIN ANALYZE ist ein fantastisches Tool — es liefert mehr Informationen als Oracles EXPLAIN PLAN. Wir vermissen den Oracle Enterprise Manager und RAC Clustering. pgAdmin ist solide, erreicht aber nicht das Niveau von OEM.

Was in PostgreSQL besser ist

Kosten: Null Lizenzgebühren. Einfachheit: Installation in Minuten, Konfiguration in einer Datei. JSONB: Speicherung und Abfrage von JSON-Dokumenten direkt in der relationalen Datenbank.

Die Migration hat sich gelohnt

Nach drei Monaten Arbeit läuft unser Projektmanagementsystem auf PostgreSQL. Die Performance ist vergleichbar, die Betriebskosten deutlich niedriger. Oracle bleibt für unsere kritischsten Systeme, aber PostgreSQL ist eine vollwertige Enterprise-Datenbank.

postgresqloraclemigraceenterprise
Teilen:

CORE SYSTEMS

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.

Brauchen Sie Hilfe bei der Implementierung?

Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.

Kontaktieren Sie uns