Die Veröffentlichung der Version 5.0 des IvorySQL-Projekts, das eine PostgreSQL-Datenbank-Edition entwickelt, die mit Anwendungen kompatibel ist, die fĂŒr Oracle-Datenbanken entwickelt wurden. IvorySQL bietet die Möglichkeit, als transparente Alternative zur neuesten Version von PostgreSQL zu fungieren, deren Unterscheidungsmerkmal die Einstellung âcompatible_dbâ ist, die den KompatibilitĂ€tsmodus mit Oracle umfasst. Der Code ist in C geschrieben und unter der Lizenz Apache 2.0 verfĂŒgbar.
IvorySQL implementiert die prozedurale Sprache PL/iSQL, die die PL/SQL-Syntax in Oracle nachahmt, unterstĂŒtzt Oracle-Stil Pakete und Paketoperationen wie âCREATE PACKAGEâ. Ein mit Oracle kompatibles Funktions- und Typset wird bereitgestellt, und die spezifische Oracle-Syntax fĂŒr Operationen, AusdrĂŒcke und Operatoren wie ALTER TABLE, DELETE, UPDATE, CONNECT BY (hierarchische Abfragen), GROUP BY, UNION und MINUS wird ebenfalls unterstĂŒtzt.
In der neuen Version:
- Der Ăbergang zur Codebasis von PostgreSQL 18 wurde vollzogen.
- Die KompatibilitĂ€t mit Oracle-Datenbanken wurde verbessert: UnterstĂŒtzung fĂŒr verschachtelte Unterprogramme, ROWID, NLS- und OUT-Parameter, die Ăbersetzung leerer Zeichenfolgen in NULL, das Wechseln von Parsern in AbhĂ€ngigkeit von Sitzungen, GB18030-Kodierungen sowie die Funktionen SYS_GUID, SYS_CONTEXT und USERENV wurden implementiert.
- Oracle-kompatible Operatoren wie INSTR, FORCE VIEW und LIKE wurden hinzugefĂŒgt.
- Die Möglichkeiten von PL/iSQL wurden erweitert: UnterstĂŒtzung fĂŒr CALL-Syntax, %ROWTYPE und %TYPE wurde hinzugefĂŒgt.
- VollstĂ€ndige UnterstĂŒtzung fĂŒr Docker Compose, Docker Swarm und Kubernetes mit dem Paketmanager Helm wurde realisiert. In IvorySQL Operator 5.0 und IvorySQL Cloud 5.0 wurden Tools zur visuellen Verwaltung des Lebenszyklus hinzugefĂŒgt.
- Die UnterstĂŒtzung fĂŒr zehn Erweiterungen von PostgreSQL wurde sichergestellt: pg_cron, pgAudit, PostGIS, pgRouting, PGroonga, ddlx, pgsql-http, system_stats, plpgsql_check und pgvector.
- Installationspakete fĂŒr die Architekturen X86_64, ARM64, MIPS und LoongArch wurden erstellt.
- Eine Online-Umgebung fĂŒr die Arbeit mit IvorySQL ĂŒber den Browser wurde vorbereitet, wodurch die Installation von IvorySQL auf dem eigenen System ĂŒberflĂŒssig wird.
ZusĂ€tzlich kann die Veröffentlichung der SynchDB-Erweiterung 1.3 erwĂ€hnt werden, die fĂŒr die Replikation von Daten in PostgreSQL aus einer oder mehreren externen Datenbanken wie MySQL, MS SQLServer und Oracle gedacht ist. Diese externen Datenbanken fungieren als Datenquellen, die direkt in eine Ziel-Datenbank auf Basis von PostgreSQL ĂŒbertragen werden, ohne dass zusĂ€tzliche Schichten fĂŒr die Orchestrierung des Daten-Synchronisationsprozesses erforderlich sind (alle Synchronisationsoperationen werden von der SynchDB-Erweiterung verarbeitet). Der Code des Projekts ist in C und Java geschrieben und steht unter der Lizenz Apache 2.0.
Das System umfasst folgende Komponenten:
- Debezium Runner Engine â eine Java-Engine, die Module zur Verarbeitung von Ănderungsdatenströmen aus verschiedenen DBMS (MySQL, MS SQLServer und Oracle) bereitstellt und die erhaltenen Daten im universellen JSON-Format ĂŒbertrĂ€gt.
- SynchDB Worker â startet Instanzen der Debezium Runner Engine zur Replikation von Daten aus bestimmten DBMS, empfĂ€ngt von ihnen Ănderungen im JSON-Format und ĂŒbergibt sie an das Modul Format Converter.
- SynchDB Launcher â erstellt und beendet die SynchDB-Handler, wobei die PostgreSQL-API zum Starten von Hintergrundprozessen verwendet wird.
- Format Converter â analysiert den Ănderungsstrom im JSON-Format, wandelt externe Datentypen und DDL-Anfragen in PostgreSQL-kompatible Typen und Anfragen um.
- Replication Agent â verarbeitet die Ausgabe im Format HeapTupleData aus dem Format Converter und ruft Methoden zum EinfĂŒgen von Daten in PostgreSQL auf.

In SynchDB 1.3 wurde eine neue Snapshot-Engine implementiert, die auf FDW (Foreign Data Wrapper) basiert und die Zusammenarbeit mit OpenLog Replicator unterstĂŒtzt. Im Vergleich zur alten Debezium-basierten Engine ermöglicht die neue Engine eine signifikante Verbesserung der Leistung und eine Reduzierung der Verzögerungen bei der Replikation von Daten aus groĂen Oracle-Datenbanken. DarĂŒber hinaus bietet die neue Version zusĂ€tzliche Ansichten mit Statistiken (synchdb_genstats, synchdb_snapstats und synchdb_cdcstat), die UnterstĂŒtzung fĂŒr die MODIFY- und DEFAULT ON NULL-AusdrĂŒcke im OpenLog Replicator und die UnterstĂŒtzung fĂŒr die DBMS PostgreSQL 18 und IvorySQL 5.
Quelle: opennet.ru
