Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Migrace z Oracle na PostgreSQL — proč a jak

12. 02. 2014 2 min čtení CORE SYSTEMSdata

Oracle Database nás provází od roku 2003. Spolehlivý, výkonný, prověřený. Ale taky drahý. Když jsme spočítali licenční náklady za posledních deset let, číslo nás vyděsilo. Začali jsme hledat alternativu.

Proč PostgreSQL

Na seznamu kandidátů bylo několik databází: MySQL, MariaDB, PostgreSQL. MySQL jsme vyřadili kvůli nejistotě kolem Oracle vlastnictví. PostgreSQL nás přesvědčil svou enterprise-grade sadou funkcí — window functions, CTE, partial indexes, JSONB podpora. PostgreSQL 9.3 přinesl materialized views a zlepšený JSON support. Komunita kolem PostgreSQL je aktivní a profesionální.

Co jsme migrovali

Vybrali jsme interní systém pro správu projektů — přibližně 120 tabulek, 50 stored procedures, desítky views. Ne náš největší systém, ale dostatečně komplexní na ověření proveditelnosti.

Nástroje a přechod datových typů

Použili jsme Ora2Pg pro export schématu a dat. Ruční opravy: NUMBER → NUMERIC, VARCHAR2 → VARCHAR, trigger-based 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

Největší práce. Oracle-specifické funkce (NVL, DECODE, ROWNUM) jsme přepsali na COALESCE, CASE, ROW_NUMBER. Balíky (packages) nahrazeny schématy. Některé procedury jsme při přepisu zjednodušili — Oracle workaroundy už nebyly potřeba.

Výkon a monitoring

Na většině dotazů PostgreSQL srovnatelný s Oracle. EXPLAIN ANALYZE je fantastický nástroj — víc informací než Oracle EXPLAIN PLAN. Chybí nám Oracle Enterprise Manager a RAC clustering. pgAdmin je solidní, ale nedosahuje úrovně OEM.

Co je lepší v PostgreSQL

Cena: Nula korun za licence. Jednoduchost: Instalace za minuty, konfigurace v jednom souboru. JSONB: Ukládání a dotazování JSON dokumentů přímo v relační databázi.

Migrace se vyplatila

Po třech měsících práce běží náš projektový systém na PostgreSQL. Výkon je srovnatelný, provozní náklady výrazně nižší. Oracle zůstane pro nejkritičtější systémy, ale PostgreSQL je plnohodnotná enterprise databáze.

postgresqloraclemigraceenterprise