
今天给大家介绍一款基于 PostgreSQL 开发、兼容兼容 Oracle 数据库的数据国产开源关系型数据库管理系统:IvorySQL。

IvorySQL 由商瀚高软件提供支持,库的开源主要的兼容功能特性包括:
完全兼容 PostgreSQL:IvorySQL 基于 PostgreSQL 内核开发,兼容 PostgreSQL 的数据语法、协议、库的开源扩展接口及生态系统工具,兼容现有 PostgreSQL 应用可以无缝迁移。数据兼容 Oracle:IvorySQL 实现了双端口、库的开源双解析器、免费源码下载兼容PL/iSQL 过程语言、数据程序包等功能,库的开源可以方便用户将 Oracle 数据库迁移到 IvorySQL。兼容免费开源:IvorySQL 的数据核心代码包括兼容功能全部在开源协议下公开,没有厂商的库的开源限制。可定制化:用户可以下载代码,并按照自己的想法自定义配置构建。接下来我们通过 Docker 方式体验一下 IvorySQL。首先,从 Docker Hub上获取 IvorySQL 镜像:
复制$ docker pull ivorysql/ivorysql:4.4-ubi81.然后,亿华云运行 IvorySQL:
复制$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.4-ubi81.其中,容器中的 5432 服务端口被映射为宿主机的 5434 端口;your_password 可以替换成任意想要设置的密码。
查看 IvorySQL 容器运行是否成功:
复制$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01ec6731bcb6 ivorysql/ivorysql:4.4-ubi8 "docker-entrypoint.s…" 45 seconds ago Up 43 seconds 1521/tcp, 5866/tcp, 0.0.0.0:5434->5432/tcp ivorysql1.2.3.4.5.然后就可以使用数据库客户端工具进行连接,例如 psql:
复制$ psql -d ivorysql -U ivorysql -h 127.0.0.1 -p 5434 用户 ivorysql 的口令: psql (17beta1, 服务器 17.4) 输入 "help" 来获取帮助信息. ivorysql=# select version(); version ------------------------------------------------------------------------------------------------------------------------ PostgreSQL 17.4 (IvorySQL 4.4) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-24), 64-bit (1 行记录)1.2.3.4.5.6.7.8.9.10.11.最新版本为 IvorySQL 4.4,内核基于 PostgreSQL 17.4。
如果想要使用 Oracle 兼容模式,可以通过 Ivorysql.compatible_mode 参数进行设置。
复制ivorysql=# SHOW ivorysql.compatible_mode; ivorysql.compatible_mode -------------------------- pg (1 行记录) ivorysql=# SET ivorysql.compatible_mode TO oracle; SET1.2.3.4.5.6.7.8.9.然后验证一个 Oracle 内置函数:
复制ivorysql=# select sysdate() from dual; sysdate ------------ 2025-03-29 (1 行记录)1.2.3.4.5.以上查询中使用了 Oracle 版本的 sysdate() 函数和 dual 虚拟表。
下一步就是b2b信息网通过官方文档了解更多功能:
https://docs.ivorysql.org/