内容提要
本文介绍了将基于PostgreSQL的开源数据库IvorySQL集成到Neon垂直自动扩展平台的过程,并体验了IvorySQL提供的与Oracle兼容的功能。未来的工作包括将Neon的Postgres-16更改合并到IvorySQL作为无服务器分支,将IvorySQL3作为Neon存储库的子模块,并使用单独的存储节点构建IvorySQL3计算节点,以便用户可以指定超过PostgreSQL 14/15/16的IvorySQL计算节点,享受与Oracle兼容的功能。
延伸解读
IvorySQL 与 Neon 自动扩展的集成价值
IvorySQL 基于 PostgreSQL 并兼容 Oracle,而 Neon 提供垂直自动扩展能力。将两者结合,用户可以在自动调整计算资源的平台上运行 IvorySQL,从而在享受动态资源管理的同时,利用 IvorySQL 的 Oracle 兼容特性,如 PL/iSQL 和 Oracle 风格包。这为从 Oracle 迁移到 PostgreSQL 生态的用户提供了更平滑的路径,并减少了手动调优的需求。
集成步骤的关键点与注意事项
集成过程涉及创建 IvorySQL 虚拟机示例、部署文件、修改 Makefile 以及加载 liboracle_parser 库。其中,加载库需在 postgresql.conf 中添加 shared_preload_libraries 配置,这是启用 Oracle 兼容功能的重要步骤。用户需注意版本匹配,文章基于 autoscaling v0.28.1 和 IvorySQL 3.2,不同版本可能需调整。此外,使用 kind 搭建本地 Kubernetes 集群是测试自动扩展的前提。
自动扩展的体验与操作方式
通过运行基准测试脚本,用户可以观察到 IvorySQL 在 Neon 自动扩展下 TPS 随负载动态变化。文章展示了使用 kubectl patch 或 edit 命令调整 CPU 资源(如将 use 值改为 0.25)来手动触发扩展,这有助于理解自动扩展的响应机制。同时,通过串口控制台登录虚拟机,可以方便地测试 Oracle 兼容特性,如使用 DUAL 表查询 sysdate,避免了复杂的 Kubernetes 命令。
未来工作与潜在影响
未来计划包括将 Neon 的 Postgres-16 更改合并到 IvorySQL 作为无服务器分支,将 IvorySQL3 作为 Neon 仓库的子模块,以及使用独立存储节点构建 IvorySQL3 计算节点。这些改进旨在让用户能够指定 IvorySQL 计算节点,而不仅限于 PostgreSQL 14/15/16,从而更灵活地享受 Oracle 兼容功能。这可能会进一步简化部署并提升 IvorySQL 在云原生环境中的适用性。
Q&A
IvorySQL是什么?
IvorySQL是一个基于PostgreSQL的开源数据库,兼容Oracle,支持PL/iSQL语言和Oracle风格的包。
如何将IvorySQL集成到Neon自动扩展平台?
集成IvorySQL到Neon平台的步骤包括创建虚拟机示例、部署文件和加载库等。
Neon的自动扩展功能有什么优势?
Neon的自动扩展功能可以动态调整计算资源,减少人工干预,提高资源利用效率。
用户如何体验IvorySQL的自动扩展功能?
用户可以通过简单的命令运行IvorySQL并观察事务每秒(tps)的自动增加来体验自动扩展功能。
未来IvorySQL的工作计划是什么?
未来的工作包括将Postgres-16更改合并到IvorySQL,作为无服务器分支,并将IvorySQL3作为Neon存储库的子模块。
IvorySQL如何支持Oracle兼容性?
IvorySQL通过提供“compatible_db”切换开关,支持Oracle的PL/SQL语法和Oracle风格的包,简化从Oracle数据库的迁移。