Foi lançado o projeto IvorySQL 5.0, que desenvolve uma edição do SGBD PostgreSQL, garantindo compatibilidade com aplicações projetadas para trabalhar com o SGBD Oracle. No IvorySQL, foi anunciada a possibilidade de atuar como uma substituição transparente para a última versão do PostgreSQL, cuja principal diferença reside na configuração 'compatible_db', que inclui o modo de compatibilidade com Oracle. O código é escrito em C e é distribuído sob a licença Apache 2.0.
O IvorySQL implementa a linguagem procedural PL/iSQL, que replica a sintaxe do PL/SQL no Oracle, suporta pacotes no estilo Oracle e operações com pacotes, como "CREATE PACKAGE". Um conjunto de funções e tipos compatível com o Oracle é fornecido, além do suporte à sintaxe específica do Oracle para operações, expressões e operadores, como ALTER TABLE, DELETE, UPDATE, CONNECT BY (consultas hierárquicas), GROUP BY, UNION e MINUS.
Na nova versão:
- A transição para a base de código do PostgreSQL 18 foi concluída.
- A compatibilidade com o SGBD Oracle foi aprimorada: foi implementado suporte a subprogramas aninhados, ROWID, parâmetros NLS e OUT, conversão de strings vazias em NULL, troca de analisadores vinculados a sessões, codificações GB18030, e funções SYS_GUID, SYS_CONTEXT e USERENV.
- Foram adicionados operadores compatíveis com Oracle: INSTR, FORCE VIEW e LIKE.
- As capacidades do PL/iSQL foram ampliadas: suporte à sintaxe CALL, %ROWTYPE e %TYPE.
- Implementado suporte total para Docker Compose, Docker Swarm e Kubernetes com o gerenciador de pacotes Helm. O IvorySQL Operator 5.0 e o IvorySQL Cloud 5.0 incluem ferramentas para gerenciamento visual do ciclo de vida.
- Foi garantido suporte para dez extensões do PostgreSQL: pg_cron, pgAudit, PostGIS, pgRouting, PGroonga, ddlx, pgsql-http, system_stats, plpgsql_check e pgvector.
- Pacotes de instalação foram criados para as arquiteturas X86_64, ARM64, MIPS e LoongArch.
- Um ambiente online foi preparado para trabalhar com o IvorySQL a partir do navegador, permitindo o uso sem a necessidade de instalar o IvorySQL no seu sistema.
Além disso, é importante mencionar o lançamento da extensão SynchDB 1.3, destinada à replicação de dados no PostgreSQL a partir de um ou mais SGBDs externos, como MySQL, MS SQLServer e Oracle. Esses SGBDs externos servem como fontes de dados que são transferidos diretamente para um único banco de dados de destino baseado em PostgreSQL, sem a necessidade de camadas adicionais para orquestrar o processo de sincronização de dados (todas as operações de sincronização são processadas pela extensão SynchDB). O código do projeto é escrito em C e Java, e é distribuído sob a licença Apache 2.0.
O sistema inclui os componentes:
- Debezium Runner Engine — um motor em Java que fornece módulos para processar fluxos de alterações de dados de vários bancos de dados (MySQL, MS SQLServer e Oracle) e transmitir os dados recebidos em um formato JSON universal.
- SynchDB Worker — inicia instâncias do Debezium Runner Engine para replicar dados de bancos de dados específicos, recebe deles as alterações no formato JSON e as envia para o módulo Format Converter.
- SynchDB Launcher — cria e finaliza os manipuladores do SynchDB, utilizando a API do PostgreSQL para iniciar processos em segundo plano.
- Format Converter — analisa o fluxo de alterações em formato JSON, transforma tipos de dados externos e consultas DDL em tipos e consultas compatíveis com PostgreSQL.
- Replication Agent — processa a saída em formato HeapTupleData do Format Converter e inicia métodos para inserir dados no PostgreSQL.

No SynchDB 1.3 foi implementado um novo mecanismo de formação de snapshots, baseado em FDW (Foreign Data Wrapper) e que suporta a operação com OpenLog Replicator. Comparado com o antigo mecanismo baseado em Debezium, o novo mecanismo permite um aumento significativo na performance e redução da latência na replicação de dados de grandes bancos de dados Oracle. Além disso, na nova versão, foram oferecidas visualizações adicionais com estatísticas (synchdb_genstats, synchdb_snapstats e synchdb_cdcstat), no OpenLog Replicator foi adicionada a suporte a expressões MODIFY e DEFAULT ON NULL, e a compatibilidade com os SGBDs PostgreSQL 18 e IvorySQL 5 foi incorporada.
Fonte: opennet.ru
