PostgreSQL数据库技术峰会北京站活动回顾|IvorySQL 双解析器架构下的兼容性创新实践

5 阅读3分钟

2025年4月22日,由中国开源软件推进联盟PG分会主办,PostgreSQL ACE/PG分会北京&天津用户组负责人刘华阳联合发起的“PostgreSQL数据库技术峰会北京站”落幕。

file

本次活动以“PG与AI融合”为主题,结合当下AI大模型应用、国产化趋势,邀请社群技术专家围绕产品特性、应用案例、运维经验、技术演进、行业方向等进行分享,推动PostgreSQL在中国的发展。

IvorySQL 受邀参与了本次活动:IvorySQL 研发工程师矫顺田为大家带来了主题分享——《IvorySQL V4:双解析器架构下的兼容性创新实践》。

file

分享内容回顾

在本次分享中,主要分享了以下内容:

IvorySQL 通过双解析器架构(PG/Oracle解析器)实现Oracle语法兼容,支持1521端口默认Oracle模式与5432端口PG模式自由切换;新增Package包管理、不可见列、XML函数等Oracle兼容功能,提升PL/SQL迁移效率;结合Stackgres和Data Bene合作推动全球化社区生态,强化金融场景核心系统替换能力。

以下是具体内容:

一、兼容性全景

  1. 核心兼容特性

    • Oracle 兼容框架
      • 支持 PL/iSQL、Oracle Package(包管理)、不可见列(显式引用访问)、XML 函数(新增 11 个函数)、序列(CACHE/SCALE/SESSION 等选项)等。
    • 关键创新
      • 不可见列:通过 ALTER TABLE 控制列的可见性,支持应用无缝升级。
      • Oracle Package:支持包级别权限控制、缓存机制,提升模块化开发效率。
  2. 实际项目案例(国内某金融系统)

    • 目标:替换 Oracle 存储过程,解决总账等核心系统需求。
    • 成果
      • 兼容 Oracle 分区索引、集合数据类型、系统视图等,性能与稳定性达标。
      • 攻克海量数据读取内存溢出问题,深度支持 Oracle Package 功能。

二、双解析器架构设计

  1. 架构概览

    • 基于 PostgreSQL 17:扩展双解析器(PG SQL 解析器 + Oracle SQL 解析器)、双端口(5432 默认 PG 模式,1521 默认 Oracle 模式)。
    • 动态切换兼容模式:通过 compatible_mode 参数或端口选择解析器,降低语法干扰。
  2. 关键技术实现

    • 解析器钩子机制:通过 sql_raw_parser 动态绑定 ora_raw_parserstandard_raw_parser
    • 插件化设计:内置 IvorySQL_ORA 插件,实现 Oracle 数据类型、系统视图、MERGE 命令等兼容功能。

三、社区发展与未来展望

  1. 未来技术方向

    • 增强 NLS 参数、PL/iSQL、Force View 等功能兼容性。
    • 基于 PostgreSQL 18 开发 IvorySQL V5,优化云原生支持。
  2. 全球化合作

    • OnGres(西班牙):将 IvorySQL 集成至云原生产品 StackGres,简化部署流程。
    • Data Bene(法国):推动 Oracle 迁移项目与社区共建。
  3. 社区参与激励

    • 贡献方式:源码提交、文档维护、BUG 修复、技术日志撰写等。
    • 奖励机制:荣誉证书、限量周边(卫衣、背包、马克杯等)。

作为一款基于 PostgreSQL 并深度兼容 Oracle 的开源数据库系统,IvorySQL 始终怀抱开源热情,致力于开源社区建设。未来,期待更多技术爱好者加入进来,为 IvorySQL 社区发展壮大提供源源不断的动力!

  • 关于 IvorySQL - IvorySQL 是由瀚高股份主导研发的一款开源的兼容 Oracle 的 PostgreSQL。IvorySQL 与 PostgreSQL 国际社区紧密合作,保持与最新 PG 版本内核同步,为用户提供便捷的升级体验。基于双 Parser 架构设计,100% 与原生 PostgreSQL 兼容,支持丰富的 PostgreSQL 周边工具和扩展,并根据用户需求提供定制化工具。同时,IvorySQL 提供更全面灵活的 Oracle 兼容功能,具备高度的 SQL 和 PL/SQL 兼容性能够为企业构建更加高效、稳定和灵活的数据库解决方案。 官网:www.ivorysql.org GitHub(欢迎点击 star 收藏哦):github.com/IvorySQL/Iv… 社群:微信搜索“ivorysql_official” 添加小助理进群

本文由博客一文多发平台 OpenWrite 发布!