IvorySQL3.0:基于PG16.0最新内核,实现兼容Oracle数据库再升级

Oracle作为全球最大的数据库厂商之一,具有较高的市场知名度和份额。但随着数据处理需求日益增长,使用Oracle的企业可能面临一些挑战,如数据库复杂性、高昂维护成本、数据迁移和集成问题等,难以满足企业实时数据处理需求,进而导致数据处理不及时、不准确等问题。因此,企业需要更高效、灵活和实时的数据处理解决方案来满足不断扩大的数据处理需求。在这个节点上,企业具备高性价比的Oracle替代方案,对于明确未来提升的路径,具有重要而深远的意义

针对这些挑战,IvorySQL提供了一种解决方案,以全球最先进的开源数据库PostgreSQL为基础,最大限度兼容Oracle,提供更好的数据库迁移服务。选择IvorySQL,不仅可以实现与Oracle的兼容,降低迁移成本和风险,还可以享受其卓越的性能与稳定性、可扩展性及更好的数据库兼容性、方便且丰富的管理功能和工具以及开源和社区的支持等优势

截至目前,IvorySQL已成功发布10个版本,最新IvorySQL3.0版本基于PostgreSQL16.0最新内核,扩展了更多企业级特性。相比PostgreSQL社区版,3.0在Oracle兼容性和易用性方面显著提升,为适应容器化和云端环境提供了更为全面的支持,同时具备更完善的特性和创新功能,高度的SQL和PL/SQL兼容性

#1 IvorySQL3.0总体架构

IvorySQL3.0拥有丰富的特性与核心技术,包含兼容性、高性能、安全性异构数据库访问等特性。其总体架构如下图所示。

图1 IvorySQL3.0总体架构

IvorySQL3.0基于与PostgreSQL差异最小化的原则来实现与Oracle兼容的特性。通过实现双parser和双端口接收外部请求,并在原有架构基础上扩展PL/iSQL框架,同时通过插件IvorySQL_ORA来实现兼容性功能。这种设计使得3.0能够提供与Oracle数据库相似的特性和行为,同时保持与PostgreSQL的兼容性。通过这种方式,IvorySQL3.0可以为用户提供更加灵活和高效的数据库解决方案。

#2 Oracle兼容性

>>>更全面的Oracle兼容能力

为了方便用户更顺利迁移到IvorySQL,我们在3.0新版本中新增多个兼容性升级功能:

1)在SQL兼容方面,新增兼容Oracle MERGE 命令、 Oracle q转义和Oracle like。

2)在PL/SQL兼容方面,新增兼容Oracle匿名块,解决PL/SQL创建函数/存储过程存在的问题,以及支持在SQL parser中创建函数或过程支持嵌套子过程。

3)新增兼容btree_gist索引、兼容btree_gin索引、兼容Oracle内置数据类型与内置函数。

4)另外,还在action中增加meson编译,添加了兼容的测试用例、contrib回归、Oracle数据类型GIN索引操作、Oracle数据类型Gist索引操作和PL/iSQL扩展。

#3 IvorySQL3.0主要特性

>>>IvorySQL3.0采用多进程模式,以确保在高并发情况下数据库的稳定性和扩展性。客户端经过鉴权认证与守护进程建立连接后,将与数据库实例的共享内存区进行交互。后台写进程、日志写进程、状态收集进程、自动清理进程等后台进程将维护数据库实例的内存结构,确保数据库的访问性能和数据安全性。这些后台进程的协同工作使得IvorySQL3.0在处理大量并发请求时能够保持高效和稳定。

>>>此外,IvorySQL3.0引入了双端口服务模式,支持双parser架构,有效地结合了Oracle兼容功能和PostgreSQL原生功能。这种设计允许IvorySQL 3.0在提供Oracle兼容功能的同时,保持PostgreSQL的原生功能。为了增强与Oracle的兼容性,IvorySQL3.0 还特别提供了PL/iSQL语言处理模块。这一模块化设计在提升Oracle兼容性的同时,保证了与PostgreSQL的完美结合。

>>>IvorySQL3.0 不仅继承了传统关系型数据库的所有优秀特性,如严格遵循ACID原则,还通过采用多版本并发控制(MVCC)、事务日志和约束技术,满足了高事务处理要求的行业和场景。同时,通过对JSON/JSONB的原生支持,IvorySQL3.0融合了NoSQL的灵活性,提供了更多样化的数据存储选项。这种独特的设计让IvorySQL3.0在保持关系型数据库的强大功能基础上,能够适应现代应用对数据存储的多样化需求,为用户提供了一个既灵活又高效的数据库解决方案。

#4 IvorySQL3.0开源云平台

利用开源云平台的集成,IvorySQL3.0能够提供更灵活、高效的数据库解决方案。开源云平台的图形界面允许用户一键搭建IvorySQL数据库,并提供了直观的管理工具和监控工具。开源云平台简化了数据库的部署、备份恢复、磁盘扩容等繁琐操作,从而实现资源合理调度和分配,为用户提供了一个便捷、高效且易于维护的数据库解决方案。

>>>即将推出的开源云平台功能

>>>未来展望:

未来,IvorySQL将成为不仅限于关系型开源数据库系统,其生态系统还将包括多个与云相关的开源项目。

例如,Ivory-Operator项目将致力于实现Kubernetes环境下实现IvorySQL的自动化部署和运维,而Ivory-containers项目则将提供在容器环境中运行IvorySQL所需的各种工具和模板。

此外,瀚高的无服务器系统HGNeon也正在适配 IvorySQL3.0,提供基于 IvorySQL 的无服务器解决方案。这些项目的推出将大大扩展IvorySQL的应用范围,并为用户提供更加便捷、高效和灵活的数据库服务。

#5 写在最后

IvorySQL3.0是瀚高股份的核心研发团队在深入研究和掌握PostgreSQL16.0最新内核的基础上,融合公司多年对Oracle数据库兼容特性研发及运维管理的经验,为用户精心打造的一款专为核心OLTP业务而设计的开源关系型数据库。目前,IvorySQL成功探索了基于开源数据库产品的国产化替代技术的路径,并完成了金融行业核心业务系统的去“O”新实践

在此,我们衷心感谢每一位用户和开发者们在IvorySQL3.0版本的发展中所作的卓越贡献和持续支持,让IvorySQL变得更加简单易用。未来,我们将持续构建产品及社区生态,拓展合作伙伴,共同推动社区生态系统繁荣发展。为用户提供更加优质、高效、安全的产品和服务,同时积极倾听并响应用户和开发者的需求和声音。共同推动企业数字化转型,构建更加高效、稳定和灵活的平滑去“O”解决方案。

>>>立即体验IvorySQL 3.0

点击文末的 “链接”,开启您的IvorySQL3.0 Release Notes探索之旅,深入了解更多独家特性。

GitHub链接:

https://github.com/IvorySQL/IvorySQL

Gitee链接:

https://gitee.com/IvorySQL/IvorySQL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/202077.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

练习八-利用有限状态机进行时序逻辑的设计

利用有限状态机进行时序逻辑的设计 1,任务目的:2,RTL代码,及原理框图3,测试代码,输出波形 1,任务目的: (1)掌握利用有限状态机实现一般时序逻辑分析的方法&am…

第二十章 多线程

20.2创建线程 20.2.1继承Thread类 Thread类是Java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建议Thread实例。 public class ThreadTest extedns Thread{} run方法格式: public void run(){} 20.1让线…

matplotlib

设置中文字体,图片大小,分辨率,中文负号 符号 x轴和y轴 设置x轴和y轴的刻度 字体大小 线条样式 绘制多个线条 图例 显示每个坐标值 gca 分辨率 画布尺寸 创建图形对象 不能直接使用区域对象作画 绘制多子图 均等的划分画布 柱状图 同一位置多…

Ocam——自由录屏工具~

当我们想要做一些混剪、恶搞类型的视频时,往往需要源影视作品中的诸多素材,虽然可以通过裁减mp4文件的方式来获取片段,但在高画质的条件下,mp4文件本身通常会非常大,长此以往,会给剪辑工作带来诸多不便&…

GDB Debugging Notes

1 Debugging programs using gdb 1.1 gdb简介 gdb是一个功能强大的调试工具,可以用来调试C程序或C程序。在使用这个工具进行程序调试时,主要涉及下面几个方面的操作: 启动程序:在启动程序时,可以设置程序运行环境。设置断点:程序…

使用kafka_exporter监控Kafka

prometheus 监控 kafka 常见的有两种开源方案,一种是传统的部署 exporter 的方式,一种是通过 jmx 配置监控, 项目地址: kafka_exporter:https://github.com/danielqsj/kafka_exporterjmx_exporter:https://github.com/prometheus/jmx_exporter本文将采用kafka_exporter方…

matlab使用scatter函数画图时报错“数组索引必须为正整数或逻辑值”解决办法

一、背景 在使用matlab的scatter函数画图时报错“数组索引必须为正整数或逻辑值”。 scatter函数说明:scatter(x,y) 在向量 x 和 y 指定的位置创建一个包含圆形标记的散点图。 二、解决办法 如果使用scatter函数时报上述错误,尝试将连续函数先转换为函…

ubuntu编译sqlite3并使用

SQLite3是一种轻量级的关系型数据库管理系统,它是在C语言基础上实现的。SQLite3具有许多优点,例如: 1.灵活:它可以在多种操作系统上运行,并且可以将多个数据库文件合并成一个文件。 2.易于使用:SQLite3使用…

Centos上安装Docker和DockerCompose

安装Docker Docker可以运行在MAC,Windows,CtenOS,UBUNTU等操作系统上。目前主流的版本有Docker CE和Docker EE,CE是免费的开源Docker版本,适用于开发人员和小型团队,EE是适用于企业的容器化解决方案。它基于Docker CE…

如何判断交流回馈老化测试负载是否合格?

交流回馈老化测试负载是用于模拟实际工作环境中设备运行状态的测试工具,主要用于检测设备的耐久性和稳定性。 负载性能:需要检查负载的性能是否符合设计要求,这包括负载的功率、电流、电压等参数是否在规定的范围内,以及负载的工作…

可编程交流回馈式负载箱在电源设备中的应用

可编程交流回馈式负载箱可以用于测试电源设备的输出能力,通过在负载箱中设置不同的负载条件,可以模拟不同的工作负载情况,从而测试电源设备在不同负载下的输出能力和稳定性。这对于电源设备的设计和生产非常重要,可以帮助制造商评…

打造高效医患沟通:陪诊小程序开发技术指南

随着科技的不断发展,陪诊小程序作为医患沟通的新工具逐渐成为关注焦点。本文将带领你通过使用React和Node.js技术栈,构建一个功能强大且用户友好的陪诊小程序,实现医患互动的便捷和高效。 1. 准备工作 确保你的开发环境中已安装了Node.js和…

037、目标检测-算法速览

之——常用算法速览 目录 之——常用算法速览 杂谈 正文 1.区域卷积神经网络 - R-CNN 2.单发多框检测SSD,single shot detection 3.yolo 杂谈 快速过一下目标检测的各类算法。 正文 1.区域卷积神经网络 - R-CNN region_based CNN,奠基性的工作。…

原来 TinyVue 组件库跨框架(Vue2、Vue3、React、Solid)是这样实现的?

本文由 TinyVue 组件库核心成员郑志超分享,首先分享了实现跨框架组件库的必要性,同时通过演示Demo和实际操作向我们介绍了如何实现一个跨框架的组件库。 前言 前端组件库跨框架是什么? 前端组件库跨框架是指在不同的前端框架(如…

类加载过程

Java类加载过程包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)五个阶段。这些阶段是按照顺序逐步执…

7种SQL的进阶用法

1.自定义排序(ORDER BY FIELD) 在MySQL中ORDER BY排序除了可以用ASC和DESC之外,还可以使用自定义排序方式来实现。 CREATE TABLE movies ( id INT PRIMARY KEY AUTO_INCREMENT, movie_name VARCHAR(255), actors VARCHAR(255), price DEC…

【Docker】从零开始:2.Docker三要素

【Docker】从零开始:2.Docker三要素 DockerDocker支持的系统CentOS DockerDocker三要素Docker镜像(Image):Docker容器(Container):1.从面向对象角度2.从镜像容器角度 Docker仓库(Repository) 总结 Docker docker官网:http://www.docker.com 仓库-Docker…

UI for Apache Kafka

文章Overview of UI Tools for Monitoring and Management of Apache Kafka Clusters | by German Osin | Towards Data Science中介绍了8种常见的kafka UI工具,这些产品的核心功能对比信息如下图所示, 通过对比发现 UI for Apache Kafka 功能齐全且免费,因此可以作为我们的首…

【开源】基于JAVA的高校实验室管理系统

项目编号: S 015 ,文末获取源码。 \color{red}{项目编号:S015,文末获取源码。} 项目编号:S015,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实…

spring boot零配置

spring boot是如何选择tomcat还是Jett作为底层服务器的呢? springboot通过ServletWebServerApplicationContext的onRefresh()方法,会创建web服务 protected void onRefresh() {super.onRefresh();try {// 创建web服务createWebServer();}catch (Throwab…